# N-wise testing

N-wise testing has the aim of testing all the possibilities of any random combination of N factors.

The maximum value for N is equal to the number of parameters. In that case, the result is equal to the testing of the complete decision table: all the combinations of all the values of all the parameters. In practice, a value of 4 or higher is seldom applied. In order to apply N-wise testing tools are required.

#### Pairwise testing

The most common application of N-wise testing is pairwise testing. Pairwise testing is based on the phenomenon that most faults in software are the consequence of one particular factor or the combination of 2 factors. The number of faults that are caused by a specific combination of more than 2 factors becomes exponentially smaller. Instead of testing all the possible combinations of all the factors, it is very effective if every combination of 2 factors is tested.

The aim of pairwise testing is to test all the possibilities of any combination of 2 factors.

This delivers an enormous reduction in the number of required test cases, yet still gives a good fault-detection result.
The following example illustrates the meaning of pairwise testing.

In the system under test (for ordering books via the Internet), the following 3 paramete play a role. For each parameter, there are 2 equivalence classes to be tested:

Number of books Few; many

Sum Low; high
Membership card None; Gold card
In order to test all the combinations relating to these 3 parameters, 2x2x2=8 test situations are required, namely:

 Number of books Sum Membership card 1 Few Low None 2 Few Low Gold card 3 Few High None 4 Few High Gold card 5 Many Low None 6 Many Low Gold card 7 Many High None 8 Many High Gold card

For pairwise testing, as few as 4 test situations will suffice, as shown below:

 Membership card Sum Membership card 1 Few Low None 2 Few High Gold card 3 Many Low Gold card 4 Many High None

Of the 2 parameters [Number of books, Sum], all 4 existing combinations are tested (Few/Low; Few/High; Many/Low; Many/High). The same applies to the other combinations of 2 parameters, so for [Number of books, Membership card] and [Sum, Membership card]. Check it for yourself.

What is the point of this? If a fault exists in the system that occurs when one of the possible values of one of the parameters is combined with a particular value of one of the other parameters, then this fault is always found with these 4 test cases. That is the strength of pairwise testing.