23
PAIRWISE TESTING Sagar V. Hadawale 14 July, 2011

Pairwise testing sagar_hadawale

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Pairwise  testing sagar_hadawale

PAIRWISE TESTINGSagar V. Hadawale

14 July, 2011

Page 2: Pairwise  testing sagar_hadawale

Agenda

Introduction to Pairwise Testing

Methods / Approaches / Algorithms

Comparison

Tools

Page 3: Pairwise  testing sagar_hadawale

Introduction to Pairwise Testing

Pairwise testing is a combinatorial technique used to reduce the number of test case inputs to a system in situations where exhaustive testing with all possible inputs is not possible or prohibitively expensive.

also known as 2-way testing, All-Pairs testing. most basic combinatorial method. for each pair of input parameters of a system, every combination of valid

values of these two parameters be covered by at least one test case.

Exhaustive Testing Example: a manufacturing automation system that has 20 controls, each with 10

possible settings—a total of 1020 combinations, which is far more than a software tester would be able to test in a lifetime.

Surprisingly, we can check all pairs of these values with only 180 tests if they are carefully constructed.

Page 4: Pairwise  testing sagar_hadawale

Pairwise Testing

Example: 3 parameters and 2 values

OS: Windows, Linux CPU: Intel, AMD Protocol: IPv4, IPv6

Page 5: Pairwise  testing sagar_hadawale

Methods / Approaches / Algorithms

Orthogonal Latin Squares / Orthogonal Array Testing

Automatic Efficient Test Generator (AETG)

In-Parameter-Order (IPO)

Variant of In-Parameter-order (VIPO)

Genetic Algorithm (GA)

Recently Developed Algorithms

Page 6: Pairwise  testing sagar_hadawale

Orthogonal Latin Squares

Latin Squares: Properties:

no. of rows and columns must be equal each entry appears exactly once in each row and column

A single n x n Latin square can handle three parameters, each of which have n possible values.

To handle more than three parameters, we need a set of orthogonal Latin squares.

If there are k system parameters, then k – 2 orthogonal Latin squares are required.

Orthogonal Latin Squares: Suppose we have two matrices [aij] and [bij]. The combined matrix is [cij]

where the elements are cij= (aij,bij). If cij ≠ crq whenever r ≠ i and q ≠ j, then the squares [aij] and [bij] are orthogonal.

Page 7: Pairwise  testing sagar_hadawale

Orthogonal Latin Squares

Example: 4 parameters, 3 values of each 2 orthogonal Latin squares

Superimposing these two matrices

Matrix entry representation: (row, column, entry) eg: highlighted entry: (2,3,1,2)

1 2 3

2 3 1

3 1 2

1 2 3

3 1 2

2 3 1

(1,1) (2,2) (3,3)

(2,3) (3,1) (1,2)

(3,2) (1,3) (2,1)

Configuration Number

Parameter

1 2 3 4

1 1 1 1 1

2 1 2 2 2

3 1 3 3 3

4 2 1 2 3

5 2 2 3 1

6 2 3 1 2

7 3 1 3 2

8 3 2 1 3

9 3 3 2 1

Page 8: Pairwise  testing sagar_hadawale

Orthogonal Latin Squares

Limitations: For any n, there are at most n - 1 mutually orthogonal n x n Latin squares. If p is the smallest prime in the prime factorization of n, and occurs j times in

that factorization, then there exist at least pj -1 orthogonal Latin squares.

Problematic case: when n = 4t + 2; for some integer t ≥ 1 specially, t = 1 one cannot find two 6 x 6 orthogonal Latin squares

Page 9: Pairwise  testing sagar_hadawale

Algebraic Strategy

Special - case Algorithm: when N is prime number for (int n=0;n<N;n++) // counts the number test case for each variables

begin

for(int i=0;i<N;i++) // counts N test case for each n variables begin

for (int j=0;j<N;j++) // fills the parameter values begin

fill test case with ((n+(i*j))%N);

end

display and store the generated test set

end

end

Page 10: Pairwise  testing sagar_hadawale

Automatic Efficient Test Generator (AETG)

Motivation: First, there are many systems where troublesome faults are caused by the

interaction of a few test parameters. A test plan should ideally cover those interactions.

Second is that the number of tests required to cover all n-way parameter combinations, for fixed n, grows logarithmically in the number of parameters.

Approach: generate a test set for the first two parameters, and then iteratively extend

the test set to account for each remaining parameter. A Heuristic Algorithm:

The proof of logarithmic growth for the greedy algorithm assumes that at each stage it is possible to find a test case that covers the maximum number of uncovered pairs. Since there can be many possible test cases, it is not always computationally possible to find an optimal test case.

Page 11: Pairwise  testing sagar_hadawale

In-Parameter-Order (IPO)

Strategy: problem of generating minimum pairwise test sets is NP-complete For a system with two or more input parameters, the IPO strategy generates

a pairwise test set for the first two parameters, extends the test set to generate a pairwise test set for the first three parameters, and continues to do so for each additional parameter.

The extension of a test set for the addition of a new parameter includes the following two steps: (a) horizontal growth, which extends each existing test by adding one value of the

new parameter, and values are chosen in a greedy manner. (b) vertical growth, which adds new tests, if necessary, after the completion of

horizontal growth.

Page 12: Pairwise  testing sagar_hadawale

IPO Framework:

Assume that system S has parameters p1,p2,.. and pn and n ≥ 2Strategy In-Parameter-Orderbegin

{for the first two parameters p1 and p2}

T = {(v1, v2) | v1 and v2 are values of p1 and p2 respectively}if n = 2 then stop;{for the remaining parameters}

for parameter pi, i = 3, 4,….., n dobegin

{horizontal growth}

for each test (v1, v2, …. , vi-1) in T do

replace it with (v1, v2, … , vi-1, vi),

where vi is a value of pi;{vertical growth}

while T does not cover all pairs between pi and each of p1, p2, … , pi -1 do

add a new test for p1, p2, … , pi to T;end

end

Page 13: Pairwise  testing sagar_hadawale

IPO

Example: 3 parameters, 3 values of each

Page 14: Pairwise  testing sagar_hadawale

Variant of In-Parameter-order (VIPO)

shares the same framework as IPO uses different heuristics for the greedy construction of each test case Example:

3 parameters, 3 values of each

Page 15: Pairwise  testing sagar_hadawale

Genetic Algorithm (GA)

generate the configuration sets and based on fitness of each set to select a set that can serve as S (set of test configurations)

2 main parts Chromosome structure:

each chromosome C (a subset of T), consists of a number of configurations, where T is the set of all possible test configurations.

form: {v1, … , vn} having one value for each parameter Fitness function:

number of distinct pair-wise interaction configurations covered by all of the chromosome’s configurations

=

the total number of possible pair-wise interaction configurations, |Φ2|

Page 16: Pairwise  testing sagar_hadawale

Genetic Algorithm (GA)

Fitness function: Example:

chromosome having two configurations for three parameters: {{1,2,2}, {1,1,2}} suppose each of the parameters can take two possible values, namely 1 or 2. set of pair-wise interaction configurations covered by the chromosome in hand:

N1 = {{1, 2, X}, {1, X, 2}, {X, 2, 2}}

N2 = {{1, 1, X}, {1, X, 2}, {X, 1, 2}}

Here, Ni is the set of distinct pair-wise interaction elements covered by configuration i.

so, overall number of distinct pair-wise configurations covered by the chromosome = 3+3-1=5

Φ2 = {{1, 1, X}, {1, 2, X}, {2, 1, X}, {2, 2, X}, {1, X, 1}, {1, X, 2}, {2, X, 1}, {2, X, 2},

{X, 1, 1}, {X, 1, 2}, {X, 2, 1}, {X, 2, 2}} and

| Φ2 | = 12 Fitness = 5 / 12 = 0.42

Page 17: Pairwise  testing sagar_hadawale

Recently Developed Algorithms GAPTS (Genetic Algorithm for Pairwise Test Sets)

Simulated Bee Colony Algorithm

Page 18: Pairwise  testing sagar_hadawale

Test Set Size Results Comparison

The data in Table 1 summarize the characteristics of seven benchmark input sets

Table 2 present the results of the six mentioned algorithms.

Page 19: Pairwise  testing sagar_hadawale

Manual Testing

Vs Pairwise Testing

Page 20: Pairwise  testing sagar_hadawale

Tools

AETG IPO Tconfig CTS Jenny TestCover DDA AllPairs PICT EXACT IPO-s Hexawise

Page 21: Pairwise  testing sagar_hadawale

References1) A. W. Williams, R. L. Probert, "A Practical Strategy for Testing Pair-wise Coverage of Network Interfaces",

Software Reliability Engineering, 1996. Proceedings., Seventh International Symposium on, 1996 , pp. 246 - 254

2) D. M. Cohen, S. R. Dalal, M. L. Fredman, G. C. Patton, “The AETG system: An Approach to Testing Based on Combinatorial Design”, IEEE Transaction on Software Engineering, 23 (7), 1997, pp. 437-443.

3) J. D. McCaffrey, "An Empirical Study of Pairwise Test Set Generation Using a Genetic Algorithm", ITNG, 2010 Seventh International Conference on, 2010 , pp. 992 - 997

4) J. D. McCaffrey, "Generation of Pairwise Test Sets using a Genetic Algorithm", Computer Software and Applications Conference, 2009. COMPSAC '09. 33rd Annual IEEE International, 2009, pp. 626 - 631

5) J. D. McCaffrey, "Generation of Pairwise Test Sets using a Simulated Bee Colony Algorithm", Information Reuse & Integration, 2009. IRI '09. IEEE International Conference on, 2009, pp. 115 - 119

6) M. I. Younis, K. Z. Zamli, N. A. M. Isa, "Algebraic strategy to generate pairwise test set for prime number parameters and variables" Information Technology, 2008. ITSim 2008. International Symposium on, Volume: 3, 2008, pp. 1 - 4

7) R. Kuhn, R. Kacker, Yu Lei, J. Hunter, "Combinatorial Software Testing", Computer, Volume: 42 , Issue: 8, 2009 , pp. 94 - 96

8) R. Kuhn, R. Kacker, Yu Lei, "Practical Combinatorial Testing- Beyond Pairwise" IT Professional, Volume: 10 , Issue: 3, 2008 , pp. 19 - 23

9) S.A. Ghazi and M.A. Ahmed, "Pair-wise Test Coverage Using Genetic Algorithms", Proceedings of the 2003 Congress on Evolutionary Computation, vol. 2, December 2003, pp. 1420-1424.

10) Yingxia Cui, Longshu Li, Sheng Yao, "A New Strategy for Pairwise Test Case Generation", Intelligent Information Technology Application, 2009. IITA 2009. Third International Symposium on Volume: 3, 2009 , pp. 303 - 306

11) Yu Lei and K.C. Tai, "In-Parameter-Order: A Test Generation Strategy for Pairwise Testing", Proceedings of Third IEEE International High-Assurance Systems Engineering Symposium, Nov. 1998, pp. 254-261.

Page 22: Pairwise  testing sagar_hadawale

Other Useful Resources

http://www.pairwise.org/default.html http://www.developsense.com/pairwiseTesting.html http://www.softwaretestingstuff.com/2007/10/pairwise-testing.html

Hexawise Testing: website: http://hexawise.com/ videos:

http://www.youtube.com/watch?v=hlFh718i0VQ Hexawise amazon example: 9 parts

2nd part link: http://www.youtube.com/watch?v=BFjDqAnMcew

Page 23: Pairwise  testing sagar_hadawale

Any Questions?