Static testing, analysis & design

/qa:combinatorial

Combinatorial test design

Cover a many-parameter feature with pairwise, classification-tree or orthogonal-array cases — strong interaction coverage with far fewer tests than exhaustive.

USAGE/qa:combinatorial <feature with multiple parameters>
Static testing, analysis & designCTFL v4.0 §1.4 (design) · CTAL-TA (combinatorial, Advanced)Manual

What it does

Models each parameter and its partitions/constraints, computes the full Cartesian size, generates a constraint-honoring combinatorial set at the chosen strength, adds boundary/negative supplements, and reports the reduction and interaction-coverage metrics with per-case traceability.

When to use it

Several inputs/options combine and exhaustive testing is infeasible (Principle 2).

Prerequisites

qa.config.yml (paths.docs_dir, risk_areas drive strength raises); a multi-parameter feature, or empty to default to the highest-priority risk_areas.critical entry with multiple inputs.

Output

ISO/IEC/IEEE 29119-3 Test Case Specification -> docs/COMBINATORIAL-<feature>.md.

Mechanics

How it works

  1. Model parameters: partitions (EP first), invalid values, and constraints
  2. Compute the full Cartesian size as the reduction baseline
  3. Choose technique and strength by rule (pairwise default; raise to 3-wise only for critical/high)
  4. Generate the combination set honoring every constraint
  5. Add boundary/negative cases combinatorics won't catch
  6. Record per-case traceability + report reduction % and n-way interaction coverage

Why it works

The theory behind it

Combinatorial techniques are Advanced (CTAL-TA) black-box — pairwise/classification tree were removed from CTFL v4.0 Foundation. A direct realization of Principle 2: most defects involve one or two factors, so all-pairs coverage catches them without the combinatorial explosion.

CTFL v4.0 §1.4 (design) · CTAL-TA (combinatorial, Advanced)

Example

See it in use

combinatorial
> /qa:combinatorial "checkout: 3 payment methods × 2 shipping × 4 countries"

✓ Correct when It gives a pairwise/classification-tree set far smaller than the 24 exhaustive combos while covering all pairs, with the reduction % and interaction coverage stated.