Skip to content

Home / Concepts / Sub-Models

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.