equivalence class testing [8] - software testing techniques (cis640)

8
Equivalence Class Testing Venkatesh-Prasad Ranganath Kansas State University

Upload: venkatesh-prasad-ranganath

Post on 22-Jan-2018

55 views

Category:

Education


7 download

TRANSCRIPT

Page 1: Equivalence Class Testing [8] - Software Testing Techniques (CIS640)

Equivalence Class Testing

Venkatesh-Prasad Ranganath Kansas State University

Page 2: Equivalence Class Testing [8] - Software Testing Techniques (CIS640)

Equivalence Classes

m

n

f

d

a c

e

b

m2m1m0, m1, m2, and m3 are equivalence classes of m

m0 m3

m1 and m2 are “valid”

equivalence classes of m

We can define similar eq.

classes for n

Page 3: Equivalence Class Testing [8] - Software Testing Techniques (CIS640)

Weak Normal Equivalence Class Testing

m

n

f

d

a c

e

b

Covers all valid eq. classes

of each variable

Page 4: Equivalence Class Testing [8] - Software Testing Techniques (CIS640)

Weak Robust Equivalence Class Testing

m

n

f

d

a c

e

b

Covers all eq. classes

of each variable

Page 5: Equivalence Class Testing [8] - Software Testing Techniques (CIS640)

Strong Normal Equivalence Class Testing

m

n

f

d

a c

e

b

Covers all combinations of

all valid eq. classes of each variable

Page 6: Equivalence Class Testing [8] - Software Testing Techniques (CIS640)

Strong Robust Equivalence Class Testing

m

n

f

d

a c

e

b

Covers all combinations of all eq. classes

of each variable

Page 7: Equivalence Class Testing [8] - Software Testing Techniques (CIS640)

Limitations• Arriving at correct equivalent classes may not be

easy • Often relies on domain knowledge

• Possible to introduce • redundant test cases • incomplete test suite • “impossible” test cases

Page 8: Equivalence Class Testing [8] - Software Testing Techniques (CIS640)

Type of Triangle• Universe of test data (input) is the set of all triples of

positive integers • Properties

• p0(x, y, z) is true if x+y>z and z+x>y and y+z>x • p1(x, y, z) is true if x==y==z • p2(x, y, z) is true if x==y or y==z or z==x

• Equivalence Classes • Not-a-triangle: all triples satisfying !p0 • Equilateral: all triples satisfying p0 and p1

• since p1 implies p0, we could drop p0 • Isosceles: all triples satisfying p0, !p1, and p2 • Scalene: all triples satisfying p0, !p1, and !p2