Sub-Models¶
Sub-models let you assign different interaction strengths to different groups of parameters. This controls the trade-off between coverage thoroughness and test suite size.
When to Use Sub-Models¶
Use sub-models when:
- Some parameter groups are more critical and need higher-order coverage
- You want to reduce test case count by lowering coverage for less critical parameters
- Different subsystems interact independently
How It Works¶
By default, all parameters use the global order (typically 2 for pairwise). Sub-models let you raise the interaction strength for specific parameter groups that are more critical, while the rest of the model stays at pairwise. The sub-model order is typically higher than the global order — if it were the same, there would be no reason to create a sub-model.
Example¶
You are testing a network appliance with five two-level configuration parameters:
| Parameter | Values |
|---|---|
| Firewall | Enabled, Disabled |
| VPN | Enabled, Disabled |
| Encryption | AES-128, AES-256 |
| Logging | On, Off |
| Compression | On, Off |
With the global order set to 2 (pairwise), every pair of parameter values is covered. But suppose Firewall, VPN, and Encryption interact in complex ways — a bug might only appear when all three have a specific combination. Pairwise testing would miss that because it only guarantees pairs, not triples.
By creating a sub-model for those three critical parameters at order 3, you get full 3-way coverage for the security-related settings while keeping pairwise coverage for the rest:
Firewall: Enabled, Disabled
VPN: Enabled, Disabled
Encryption: AES-128, AES-256
Logging: On, Off
Compression: On, Off
{ Firewall, VPN, Encryption } @ 3
The global order remains 2, so Logging and Compression are still covered at pairwise. But every combination of (Firewall, VPN, Encryption) is guaranteed to appear — all 8 triples are covered.
Without the sub-model, setting the global order to 3 for everything would produce more test cases to cover all 3-way interactions among all five parameters. With the sub-model, you only pay the cost of 3-way coverage where it matters.
PICT Syntax¶
{ Param1, Param2, Param3 } @ 3
The number after @ is the interaction strength for that group. It should be higher than the global order — otherwise the sub-model has no effect.
Rules¶
- A sub-model must have at least 2 parameters
- The order cannot exceed the number of parameters in the sub-model
- A parameter can belong to multiple sub-models
- Parameters not in any sub-model use the global order
- Sub-models are one level deep (no nesting)
In the UI¶
See UI Guide: Sub-Models Tab for how to create and manage sub-models visually.