This is an old revision of the document!


Tutorial: Combinatorial Modeling and Test Generation

What is Combinatorial Model?

Combinatorial Model is an abstraction and representation of a combinatorial problem.

Combinatorial Model consists of a list of variables with each variable having a set of domain values to be tested. The objective is to produce the least number of permutations of variable values to achieve the desired degree of interactions among variables.

Consider three variables with each variable has a domain of 10 possible values. If we were to test all possible permutations, we would have to create 10x10x10 = 1000 test cases. We would rarely do this as full permutations in most cases is overkill, unnecessary, and sometimes impossible.

So if we were to reduce the test cases to test, which of the 1000 test cases can we cut?

According to NIST research showed that most software bugs and failures are caused by one or two parameters (variables), with progressively fewer by three or more.

TestOptimal provides a set of combinatorial algorithms to produce the least number of permutations to cover the desired degree of interactions. After the model is built, we can choose the appropriate algorithms to generate sufficient test cases to meet our testing needs.

In the example above, suppose we want to ensure every pair of variables are tested, we could use Pairwise algorithm to generate the test cases and the result is 99 test cases, which is 10% of 1000 test cases.

Build Model

Generate Test Cases

Make Changes