Test Combination Generator

Turn factors and levels into a test matrix. Generates the full cartesian product and a pairwise set that covers every two-factor combination, so you can compare the counts.

✨ What it does

  • Generates both the full cartesian product and a pairwise set from your factors and levels
  • Shows the counts side by side (all combinations to pairwise) with the reduction
  • Excludes impossible level pairs through constraints
  • Copies as CSV, a Markdown table or TSV for Excel, and shares the input by URL

🪄 Good for

Designing test cases

List every combination of OS, browser, account type and payment method so nothing is missed.

Cutting the number of tests

When the full product is too large, keep two-factor coverage while running far fewer cases.

Finding gaps in a spec

Lay out the combinations mechanically and spot the cases the specification never mentions.

Pasting into a sheet

TSV goes straight into Excel or Google Sheets, and the Markdown table into an issue or wiki.

🔒 Privacy

Factor names, levels and the generated tables stay in your browser. Nothing is uploaded or stored on a server. Only when you use the sharing button is the sharing URL (which contains your input) sent to the URL shortener.

❓ FAQ

What is the difference between all combinations and pairwise?

All combinations is the cartesian product: every level of every factor multiplied together. Three levels by two by two is 12 rows, and it grows multiplicatively (six three-level factors is 729 rows). A pairwise set is a much smaller selection built so that, for any two factors you pick, every combination of their levels appears at least once. Those six three-level factors need only about 15 rows, with no two-factor combination missing.

Why is pairwise usually enough?

Empirically most defects are triggered by a single condition or by two conditions interacting – NIST studies put the two-way figure around 70 to 90 percent – and the share of faults that need three or more interacting factors falls away quickly. So with limited time it is practical to guarantee every two-factor combination and add the handful of higher-order cases you know matter. Where failure is expensive, such as payments or security, run the full product instead.

How are constraints handled?

Some combinations cannot exist – iOS with Internet Explorer, for example. Mark them as constraints and any row containing both levels is dropped from the full product and never generated in the pairwise set. The pair itself also stops counting towards coverage, which is why the number of covered pairs goes down. If you need many constraints, splitting the factor into a separate table is often clearer.

How do I use the generated table?

CSV imports into most test management tools, TSV pastes into Excel or Google Sheets, and the Markdown table drops into a GitHub issue or a wiki. Each row is one test case, so teams usually add columns such as expected result, owner and outcome on the right. The factors and levels live in the URL, so the whole team can reproduce the same table.

🔗 Related tools

Factors and levels

Give each factor a name and list its levels separated by commas. 2 to 10 factors, 1 to 10 levels each.

Constraints (combinations to exclude)

Mark level pairs that cannot occur together and both tables will leave them out.

How many cases

How many cases
-
All combinations
-
Pairwise
-
Pairs covered
-
Excluded by constraints
-

Pairwise

A smaller set chosen so that any two factors show all of their level combinations at least once.

All combinations (cartesian product)

Every level of every factor multiplied together. Nothing is missed, but the count explodes quickly.