pairwise software test design - what exactly is pairwise coverage? what is 3-way coverage?

31
Understanding Combinations (Pairs and Triples)

Upload: justin-hunter

Post on 05-Dec-2014

255 views

Category:

Technology


0 download

DESCRIPTION

Pairwise testing (known as allpairs testing all pairs testing, pair-wise testing, and orthogonal array test design) is a simple but extremely powerful test design approach. It helps testers create tests faster, create more powerful and thorough tests, and reduce the number of tests they need to execute. But what does "pairwise coverage" mean? Exactly? What is 3-way coverage? This pairwise testing tutorial clearly explains these fundamental test coverage concepts.

TRANSCRIPT

Page 1: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

Understanding Combinations

(Pairs and Triples)

Page 2: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

Each of the end points on this mind map (like “Young” and “Friendly”) are parameter values.

More

ParametersParameter Values

Page 3: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

This is what they look like in Hexawise.

More

ParametersParameter Values

Page 4: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

When you click on the “Create Tests” button...

More

1

Hexawise generates a set of 2-way tests that contains every single pair of those test parameter values in at least one of the tests.

2

Page 5: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

• Medical Devices:  D.R. Wallace, D.R. Kuhn, Failure Modes in Medical Device Software: an Analysis of 15 Years of Recall Data, International Journal of Reliability, Quality, and Safety Engineering, Vol. 8, No. 4, 2001.    • Browser, Server:  D.R. Kuhn, M.J. Reilly, An Investigation of the Applicability of Design of Experiments to Software Testing, 27th NASA/IEEE Software Engineering Workshop, NASA Goddard SFC 4-6 December, 2002 .   • NASA database:  D.R. Kuhn, D.R. Wallace, A.J. Gallo, Jr., Software Fault Interactions and Implications for Software Testing, IEEE Trans. on Software Engineering, vol. 30, no. 6, June, 2004.   • Network Security:  K.Z. Bell, Optimizing Effectiveness and Efficiency of Software Testing: a Hybrid Approach,  PhD Dissertation, North Carolina State University, 2006.  

1 input or 2 inputs (“pairwise)

3 inputs

4, 5 or 6 inputs

Studies show that 84% of defects in production could have been found by testing for every pair of parameter values.

2-way coverage is useful because so many defects can be quickly found by testing all pairs of parameter values.

Page 6: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

But what does 2-way coverage mean

EXACTLY?

Page 7: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

It means this...

More

Every single pair of parameter values appears together in at least one of these six test cases:

Page 8: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Stylish and

Tax Collector?

For example...

Page 9: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Stylish and

Tax Collector?

Test # 2

That’s a pair of values. So at least one test includes it.

Page 10: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Old and

Shabby?

Page 11: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Old and

Shabby?

Test # 4

That’s a pair of values. So at least one test includes it.

Page 12: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Hostile and

Skydiving Instructor?

Page 13: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Hostile and

Skydiving Instructor?

Also test # 4

That’s a pair of values. So at least one test includes it.

Page 14: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Youngand

Hostile?

Page 15: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Youngand

Hostile?

Test # 6

That’s a pair of values. So at least one test includes it.

Page 16: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

We could do this for quite a while.

Choose any two parameter values.

Any pair of test inputs you choose will appear in at least one of the 2-way tests.

Page 17: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

For every set of Parameter Values entered into Hexawise there is a finite set of pairs that can be tested.

More

There are exactly 24 possible pairs of parameter values in this simple example.

Page 18: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

All of the pairs will be tested in at least one test.

More

All 24 of those possible pairs are tested in at least one of the following 6 tests.

Page 19: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

• Medical Devices:  D.R. Wallace, D.R. Kuhn, Failure Modes in Medical Device Software: an Analysis of 15 Years of Recall Data, International Journal of Reliability, Quality, and Safety Engineering, Vol. 8, No. 4, 2001.    • Browser, Server:  D.R. Kuhn, M.J. Reilly, An Investigation of the Applicability of Design of Experiments to Software Testing, 27th NASA/IEEE Software Engineering Workshop, NASA Goddard SFC 4-6 December, 2002 .   • NASA database:  D.R. Kuhn, D.R. Wallace, A.J. Gallo, Jr., Software Fault Interactions and Implications for Software Testing, IEEE Trans. on Software Engineering, vol. 30, no. 6, June, 2004.   • Network Security:  K.Z. Bell, Optimizing Effectiveness and Efficiency of Software Testing: a Hybrid Approach,  PhD Dissertation, North Carolina State University, 2006.  

1 input or 2 inputs (“pairwise)

3 inputs

4, 5 or 6 inputs

It is an extremely efficient way to find defects given that: • Studies show that 84% of defects in production could have been

found by testing for every pair of parameter values and • 2-way coverage can be achieved in a relatively small number of tests.

Again, the reason it is a good idea to test all possible pairs is because...

Page 20: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

But what about coverage of combinations involving 3 or more parameter values?

Page 21: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

It depends!

Sometimes, a specific combination of 3 values will be included in your set of 2-way tests.

Other times, combinations of 3 values will not be included in your set of tests.

Let’s look at a few examples.

Page 22: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

3-way combinations involve 3 specific parameter values.

More

Youngand

Stylish and

Skydiving Instructor?

Page 23: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

3-way combinations involve 3 specific parameter values.

More

Youngand

Stylish and

Skydiving Instructor?

Oldand

Stylish and

Skydiving Instructor?

Shabbyand

Hostile and

Tax Collector?

Youngand

Stylish and

Hostile?

Let’s look at a few examples of 3-way combinations andsee if they are covered in our 2-way tests.

Page 24: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Youngand

Stylish and

Skydiving Instructor?

This 3-way combination does appear in test # 3

We got lucky.

This 3-way combination does appear in the 2-way tests.

Page 25: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Oldand

Stylish and

Skydiving Instructor?

This 3-way combination does not appear in the 2-way tests.

Page 26: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Shabbyand

Hostile and

Tax Collector?

This 3-way combination does not appear in the 2-way tests.

Page 27: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

Youngand

Stylish and

Hostile?

This 3-way combination does not appear in the 2-way tests.

Page 28: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

If you want to make sure that all possible “triples” like these are covered by at least one of your tests, you will need to create

3-way tests.Let’s now take a look at the 3-way tests from Hexawise that includes at least one test for every possible combinations of “triples.”

Page 29: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

These 3-way tests contain at least one test for every triple.

More

Some 3-way combinations are covered in 2-way tests.

Page 30: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

All 3-way combinations are covered in 3-way tests.

More

Youngand

Stylish and

Skydiving Instructor?

Oldand

Stylish and

Skydiving Instructor?

Shabbyand

Hostile and

Tax Collector?

Youngand

Stylish and

Hostile?

Test # 6

Test # 3

Test # 8

Test # 4

Reviewing the same 3-way combinations as before, we see that all of them are covered in the 3-way tests. That’s because every single triple is included in the 3-way tests.

Page 31: Pairwise Software Test Design - What exactly is pairwise coverage? What is 3-way coverage?

More

For additional information, please see:

training.hexawise.com or

help.hexawise.com