# About Combinatorial Testing

Combinatorial Testing is a test design method to achieve better tests that find more defects. In QS Combinatorial Testing is coupled with Model-Based Testing so you can execute your test design immediately – it’s like edit and continue for test!

## How it works

A combinatorial test distinguishes between data and activities (method calls, events etc.) and all data is described by one or more category variables called “factors”. A car for instance, could be modeled as a class “Car” and described by factors like “Model”, “Color”, “Engine” and so on, with each factor having a limited number of possible values.

A combinatorial test design is a matter of describing which combinations of the possible factor values that the test must cover. Such a design could be all “all combinations of model, color and engine” or it could be more elaborate like “each color at least once and all combinations of model and engine”.

A combinatorial test design can be expressed in different ways: An explicit list of the desired combinations, using mathematical operators from set theory or as the outcome of algorithms like a Pair-wise / Covering Array generator. QS lets you use all three approaches and combine them as you like.

Combinatorial testing on its own requires additional manual effort to determine the sequences of actions necessary to achieve the desired combinations and normally also requires considerable effort to determine how to validate results. QS integrates combinatorial testing with Model-Based Testing to avoid unnecessary manual effort and introduces the concepts of Lazy Validation and Scalable Test Design to create powerful and flexible tests.