Objectives.
Expanding upon the concept of
Orthogonal Arrays are Covering Arrays.
This Tutorial will give a
quick introduction to what covering arrays are.
Goals:
1. Understand
what Covering Arrays are
2. Learn how Covering
Arrays can be expanded into
Sequence Covering Arrays.
1
Not every combination of
variables and values has a corresponding Orthogonal array. In
addition because there is no single unified method to generate
Orthogonal Arrays they are not always easy to construct
Worst of all Orthogonal arrays can be larger then
necessary because of their requirement that each pair of inputs
occur the same number of times.
By relaxing that rule you can create Covering Arrays. Covering arrays are easier to construct and can be smaller then Orthogonal Arrays while still testing as much.
Let's start with a basic example.
2
OA(8,7,2,2)
First up a demonstration on the difference
between Covering Arrays and Orthogonal Arrays. |
|
3
CA(6,7,2)
Now if each pair doesn't have to
occur the same number of times but given the same 7 parameters having
two values each this Covering Array can be created. |
|
4
Here the first two variables are highlighted. Notice how the pairs (0,1) and (1,0) occur twice in the Orthogonal Array but only occur once in the Covering Array.
|
|
5
One of the largest benifits
of Covering Arrays comes when dealing with
constraints. As constraints are added onto a problem it becomes
increasing difficult to map the problem to something as strict
as an Orthogonal Array.
Covering arrays, on the
other hand, can be adjusted much easier.
Take a look at the tutorial on constraints in combinatorics here to get a better idea of what they are and how they works.
Let's see how else Covering Arrays can be used to generate tests.
6
There are times when
when some components are especially interconnected. Because of this it might be a
good idea to focus additional testing on these components.
For these situations use a Variable Strength
Covering Array.
Denoted by VCA(N; t, k, s(C)) where C represents a vector of covering arrays each of strength > t defined on a subset of the k columns.
A simple example will illustrate this concept.
7
A Camera configuration
Here is an example of some
camera configuration parameters. |
Color Zoom Viewing Screen Quality |
8
A CA(5,2,4,2)
These 5 tests cover all
pairwise combinations. |
|
9
A CA(5,2,4,2)
By focusing on the parameters
more likely to affect each other you can create more useful
tests. |
|
10
A VCA(8,2,4,2(CA(N,3,3,2))
Here is an example of a Variable
Strength Covering Array. |
|
11
A VCA(8,2,4,2(CA(N,3,3,2))
Variable Strength Covering
Arrays can be used to design tests for complicated systems that focus in
on the areas most likely to experience failure. |
|
12
Recap.
Covering arrays work extremely
well in software testing and are much easier to create then
Orthogonal Arrays.
This often makes them the best choice for Combinatorial
Interaction Testing.
13