Objectives.
Constraints are essential when
creating high level Combinatorial Interaction Tests.
This Tutorial will give a
quick introduction to constraints and the role they play in Combinatorics.
Goals:
1. Understand
what constraints are
2. Learn how constraints can
shape how a Covering Array is formed
Constraints are basically
what they sound like.
Any limitation impossed on
a program can be considered a constraint. For instance a
constraint might be that two paramters are not allowed to be set to the same value.
If you design a Covering Array without taking into account any constraints that exist you could end up with poor test cases that might fail without testing all combinations.
Let's look at an example that will demonstrate this.
WebSite configurations
Here is a simply list of possible
configurations for a website. |
Operating System Web Browser Additional Factors Flash not installed Dial up speed (max 56 kbit/s) |
A CA(2,23,31)
Here is a Covering
Array that covers all pairwise combinations. |
|
A CA(2,23,31)
The fourth test contains the
combination MAC OS X and Internet Explorer 9, however Internet
Explorer works exclusively with windows. |
|
A CA(2,23,31)
Lets check and see if any pairwise
tests are now no longer covered with this set of test cases. |
|
A CA(2,23,31)
OS X and no flash occur in row 5
so that combination is ok. |
|
A CA(2,23,31)
Unfortunatly the tests for IE9 and
no flash, IE9 and dsl,
and no flash and dsl only exist in test 4. |
|
A CA(2,23,31)
One solution at this point is to
remove the bad test and add a new test case that will cover the missing combinations. |
|
Constraints can have a big impact on a Covering Array. Out of 29 pairwise
tests 3 would have been skipped.
In this small example it was an easy fix however
in a large system with a lot of different constraints the
Covering Array can shift dramatically.
It is in these complicated systems that Combinatorics can really shine.
![]() |
![]() |

