View all services
Talk to QA Advisor
Free tool · Test design

Pairwise testing tool

Four browsers, four operating systems, three account types, three payment methods and two languages make 288 combinations. Every pair of values can be covered in about fifteen. Enter your parameters and get the suite, with constraints for the combinations that cannot exist.

Runs entirely in your browser. Nothing you enter is sent to a server.

List the options you need to test against, such as browsers, devices or account types. You get the fewest tests that still try every pair of values together at least once.

Try an example

Name, a colon, then its values separated by commas: Browser: Chrome, Firefox, Safari

Combinations that cannot exist, one per line: Browser=Safari, OS=Windows. No test will use them.

Run these 15 tests instead of all 288 combinations

Together they try every pair of values at least once, for example every Browser with every OS, and never use the 3 excluded combinations.

15

tests to run

288

all combinations

95%

fewer tests

14

fewest possible

“Fewest possible” is a hard floor: the two options with the most value pairs between them need at least that many tests on their own. This suite is 1 above it.

Pairwise test suite
TestBrowserOSAccountPaymentLanguage
P1ChromeWindowsGuestUPIEnglish
P2ChromemacOSMemberWalletHindi
P3ChromeAndroidAdminCardEnglish
P4ChromeiOSAdminUPIHindi
P5FirefoxWindowsMemberCardHindi
P6FirefoxmacOSAdminWalletEnglish
P7FirefoxAndroidGuestUPIHindi
P8FirefoxiOSMemberUPIEnglish
P9SafarimacOSGuestCardEnglish
P10SafariiOSMemberWalletHindi
P11EdgeWindowsAdminWalletHindi
P12EdgemacOSGuestUPIEnglish
P13EdgeAndroidMemberWalletHindi
P14EdgeiOSGuestCardEnglish
P15SafarimacOSAdminUPIHindi
Export as

One row per test with title, steps and expected result. Imports into TestRail, Xray, Zephyr or a spreadsheet.

How to use

How to use the Pairwise testing tool

  1. 1Start from an example, or list each option on its own line as "Name: value, value, value".
  2. 2Add any combinations that cannot exist under "Never together", such as "Browser=Safari, OS=Windows".
  3. 3Run the generated tests. Together they try every pair of values at least once, and none uses an excluded combination.
  4. 4Export them as test cases, Markdown or Gherkin. The same input always gives the same tests, so the suite can be regenerated exactly.

What pairwise testing is

Pairwise testing, also called all-pairs testing, is a combinatorial technique that covers every possible pair of values across a set of parameters without testing every full combination. With five parameters of a few values each, exhaustive testing needs hundreds of tests. Covering every pair needs a small fraction of that, because each test covers many pairs at once: a test with five parameters covers ten pairs.

It suits configuration and compatibility testing, where the parameters are independent choices: browser and operating system, device and network, user role and feature flag, payment method and currency.

Why pairs are enough, most of the time

Research by the US National Institute of Standards and Technology on failures in real systems found that most were triggered by a single parameter value or by the interaction of two, and that the share needing three or more parameters fell quickly. Covering every pair therefore catches a large share of interaction defects for a small share of the cost of exhaustive testing.

It is not a guarantee. A defect that needs three specific values together can slip through a pairwise suite. When a combination is known to be risky, add it as an explicit test alongside the generated suite, and consider three-way coverage for the most critical parameters.

Constraints: combinations that cannot happen

Real parameters are rarely fully independent. Safari does not run on Windows or Android. A guest checkout may not offer a saved wallet. A suite that ignores this wastes tests on impossible configurations, or reports failures that are not defects. Constraints tell the generator which pairs must never appear together.

Occasionally constraints make a pair impossible to place in any complete test, even though the pair itself is allowed. The tool reports these pairs rather than silently dropping them, because they usually point to a constraint that is stricter than intended.

How the suite is generated

The generator is greedy, in the style of the AETG algorithm. Each new test starts from the value that appears in the most pairs not yet covered, then fills the other parameters with whichever values cover the most new pairs, compares many candidate tests and keeps the best. Several runs are compared and the smallest suite wins.

The result is not guaranteed to be the theoretical minimum, which is a hard problem in general, but it is close: it is never smaller than the largest number of allowed pairs between any two parameters, and the tool shows that minimum next to the suite size so you can judge for yourself. The generator runs in your browser and handles models of up to 50,000 value pairs, which covers almost every real configuration matrix. For larger models, a command-line tool such as Microsoft PICT is the better choice.

QAble service

Compatibility testing services

QAble builds device and browser matrices with pairwise coverage, then runs them on real devices so the combinations your users have are the ones that get tested.

Explore the service
FAQ

Frequently asked questions

What is pairwise testing with an example?

It covers every pair of values across parameters in as few tests as possible. Testing 4 browsers, 4 operating systems, 3 account types, 3 payment methods and 2 languages exhaustively takes 288 tests. Every pair of values can be covered in about 15.

Is pairwise testing the same as all-pairs testing?

Yes. Pairwise testing and all-pairs testing are the same technique. Both are forms of combinatorial testing with a strength of two.

What is the difference between pairwise testing and orthogonal array testing?

Orthogonal arrays cover every pair the same number of times and come from fixed mathematical tables, which suit parameters with equal numbers of values. Pairwise generators like this one only require every pair to appear at least once, which handles uneven parameters and constraints and usually produces fewer tests.

Does pairwise testing find all defects?

No. It finds defects caused by single values or by the interaction of two. A defect that needs three or more specific values together can be missed, so add known risky combinations as explicit tests.

How do I exclude combinations that are not possible?

Add a constraint line naming the two values that cannot occur together, such as "Browser=Safari, OS=Windows". No generated test will contain that pair.

Is my model sent to QAble?

No. The suite is generated in your browser.

Need the edge cases found for you?

QAble testers work through the inputs, payment paths and data that break products in production, before your users find them.

Talk to QA Advisor