Monday, January 16, 2012

We all know that we can't test everything. This is particularly appropriate for testing multiple combinations of input parameters. To test all the possible combinations for these parameters would require millions of tests.

- Pair wise testing or all pairs testing is an effective and systematic way to reduce the number of tests.

- The process of integrating this testing technique into test practices can prove to be a boon in saving time and efforts.

- Pair wise testing is also known as all pairs testing.

- Pair wise testing is nothing but a combined form of software testing methodologies or techniques.

- In a typical pair wise testing, all the pairs of input parameters, which are basically software algorithms, are tested in various possible unique combinations.

If the test vectors are chosen carefully, this process can be carried out much faster instead of performing an exhaustive search of all combinations of all the involved parameters and by parallelizing the tests of input parameter pairs.

The number of tests is typically given by the following formula: O(nm)Where n is the number of possibilities of first input parameter with most choices and m is the number of possibilities for the second input parameter with the most choices.

Reason of pair wise testing- The pair wise testing is based on a certain reason. - Even a simplest or primitive bug or error can cause havocs to the program. - The petty errors are caused unknowingly by an input parameter.- Other bugs and errors are a result of interaction between the various pairs of parameters. - All these kind of bugs and errors can be arrested with the help of pair wise testing. - Bugs and errors involving the interactions between three or more parameters are progressively less common in occurrence, but at the same time they are progressively more expensive to be found out by carrying out the exhaustive testing, which has its limit as the exhaustive testing of all possible inputs.

Many testers and software developers consider the pairs wise testing of a software system or subsystem or an application as a reasonable and efficient cost-benefit compromise between higher-order testing methods or techniques that can be combined and used, and less exhaustive methods or techniques which fail to exercise all the possible pairs of input parameters.

Since it is not possible for any testing technique or methodology to find out all the bugs and errors, pairs wise testing is typically used together with other testing methods and software quality assurance techniques and methodologies such as:

- Unit testing- Symbolic execution- Code review and- Fuzz testing

Advantages of Pair Wise testing- The best advantage of pair wise testing is that pair wise test cases give over 90 percent of coverage.

- In a research the pair wise testing was compared with the random input testing and it was found that pair wise testing provided better coverage.

- The block coverage obtained by pair wise testing has always been found to be comparable with the block coverage achieved by the exhaustive testing by testing all the possible factor combinations.

- Pair wise testing is actually based up on the fact that most faults are caused by interactions mostly between two factors.

- Pair wise generated test suites are quite effective in covering all the possible combinations of two parameters and therefore are much smaller than exhaustive test suites and still very effective in discovering defects.

Necessary condition for pair wise testing: - For each pair of input parameters, all the combinations of valid values of these two parameters should be covered.

- To test a small number of input parameters can result in a combinatorial explosion of a large number of possible permutations.

- Pair wise testing is to reduce the combinations to a more small and manageable size and provide effective fault detection.