Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 3: Equivalence Class Testing :EC Software Testing

Similar presentations


Presentation on theme: "Chapter 3: Equivalence Class Testing :EC Software Testing"— Presentation transcript:

1 Chapter 3: Equivalence Class Testing :EC 322235 Software Testing
By Asst.Prof.Dr. Wararat Songpan (Rungworawut) Department of Computer Science, Faculty of Science, Khon Kaen University, Thailand

2 Equivalence Class Testing : EC
The next step from Boundary Value Testing is a Functional Testing. Define equivalence classes on the range of input or output for each variables also called partition method. Completeness and greatly reduces redundancy.

3 Equivalence Class Testing : EC
Function F is implemented and a function F, of two variables x1 and x2. x1 and x2 have the following boundaries and intervals within boundaries: a=<x1=<d with intervals [a,b), [b,c), [c,d] e=<x2=<g with intervals [e,f), [f,g] So, invalid value for x1 and x2 as follows, x1 < a and x1>d x2 <e and x2>g Remarks: [ = closed interval, ( = open interval

4 Equivalence Class Testing : EC
There are 4 sub-techniques of Equivalence Class Testing. 1) Weak Normal Testing :WN 2) Strong Normal Testing :SN 3) Weak Robust Testing :WR 4) Strong Robust Testing :SR

5 1) Weak Normal Testing :WN
Valid EC: Ec1 = {x1: a=<x1< b} Ec2= {x1: b=<x1< c} Ec3 = {x1: c <= x1 <= d} Ec4 = {x2: e =<x2 < f} Ec5 = {x2: f =< x2 <=g} x2 g f e x1 a b c d One variable from each equivalence class as “single fault assumption” Values identified in systematic way

6 For example: Addition x1 and x2 (Simple example)
Function: Addition X1 and x2 x1 x2 Results = Ok Cancel

7 Simple example: WN Test case design
Valid EC: Ec1 = {x1: 5=<x1< 10} Ec2= {x1: 10=<x1< 15} Ec3 = {x1: 15 <= x1 <= 20} Ec4 = {x2: 5 =<x2 <10} Ec5 = {x2: 10=< x2 <=20} 20 10 5 x1 5 10 15 20 Test case ID EC ID x1 x2 Expected Results WN1 EC1, EC4 5 6 11 WN2 EC2, EC5 12 15 27 WN3 EC3, EC4 17 7 24

8 2) Strong Normal Testing : SN
x2 g f e x1 a b c d Test cases taken from each element of Cartesian product of the equivalence classes. Cartesian product guarantees notion of completeness. SN is a “multiple fault assumption”

9 Simple example: SN Test case design
Valid EC: Ec1 = {x1: 5=<x1< 10} Ec2= {x1: 10=<x1< 15} Ec3 = {x1: 15 <= x1 <= 20} Ec4 = {x2: 5 =<x2 <10} Ec5 = {x2: 10=< x2 <=20} 20 10 5 x1 5 10 15 20 Test case ID EC ID x1 x2 Expected Results SN1 EC1, EC4 5 6 11 SN2 EC1, EC5 7 12 19 SN3 EC2, EC4 10 15 SN4 EC2, EC5 27 SN5 EC3, EC4 17 24 SN6 EC3, EC5 30

10 3) Weak Robust Testing (WR)
x2 Additional consider in Invalid EC: Ec6 = {x1: x1 < a} Ec7 = {x1: x1 > d} Ec8 = {x2 : x2 < e} Ec9 = {x2 : x2 > g} g f e x1 a b c d Robust - consideration of invalid values and extension to WN. Invalid inputs – each test case has one invalid value, single fault should cause failure as “single fault assumption”. Problems with robust EC Testing specification (expected output for invalid TC?)

11 Simple example: WR Test case design
Test case ID EC ID x1 x2 Expected Results WR1 EC1, EC4 5 6 11 WR2 EC2, EC5 12 15 27 WR3 EC3, EC4 17 7 24 WR4 EC6, EC4 4 8 X1 is out of range WR5 EC7, EC4 23 WR6 EC3, EC8 18 X2 is out of range WR7 EC3, EC9

12 4) Strong Robust Testing :SR
x2 g f e x1 a b c d Robust - consideration of invalid values and extension to SN. Strong – multiple faults assumption. Test cases taken from each element of Cartesian product of the Valid EC and Invalid EC

13 Triangle Program (Simple)
Input 3 integers: a, b, c are side of triangle that have boundaries a, b, c are [1,200]. Output is type of triangle Equilateral Isosceles Scalene Not a Triangle

14 WN Test case design Triangle Program (Simple)
Valid EC EC1: 1<=a<= 200 EC2: 1<=b<=200 EC3: 1<=c<=200 Test Case EC ID a b c Expected Results WN1 EC1,2,3 10 20 30 Scalene

15 SN Test case design Triangle Program (Simple)
Valid EC EC1: 1<=a< 200 EC2: 1<=b<=200 EC3: 1<=c<=200 Test Case EC a b c Expected Results SN1 EC1,2,3 10 20 30 Scalene

16 Equivalence Class : Triangle Problem (Output)
Using output from specification translate into Equivalence Class (EC) 4 possible outputs: Equilateral, Isosceles, Scalene, and Not a Triangle 4 output equivalence classes: Ec1 = {<a,b,c> : the triangle with sides a, b and c is equilateral} Ec2 = {<a,b,c> : the triangle with sides a, b and c is Isosceles} Ec3 = {<a,b,c> : the triangle with sides a, b and c is Scalene) } Ec4 = {<a,b,c> : the triangle with sides a, b and c is Not a Triangle}

17 Weak Normal(WN)/ Strong Normal(SN) Test Cases: Triangle Program
Test Case ID EC a b c Expected Results OWN1 EC1 5 Equilateral OWN2 EC2 2 3 Isosceles OWN3 EC3 4 Scalene OWN4 EC4 1 Not a Triangle

18 Weak Robust(WR) Test Cases: Triangle Program
Consideration Invalid EC with WN EC5: a> 200 EC6: a < 1 EC7: b>200 EC8: b < 1 EC9: c>200 EC10: c<1

19 Weak Robust(WR) Test Cases: Triangle Program
Test Case ID EC a b c Expected Results WN1 …WN4 WR1 EC6 -1 5 a not in range WR2 EC8 b not in range WR3 EC10 c not in range WR4 EC5 201 WR5 EC7 WR6 EC9

20 Strong Robust(SR) Test Cases: Triangle Program
Expected Results WN1 …WN4 SR1 -1 5 a not in range SR2 b not in range SR3 c not in range SR4 a, b not in range SR5 b, c not in range SR6 a, c not in range SR7 a, b, c not in range

21 Improved EC: Triangle Program
Improved EC Input classes for each type of triangle: EC1 = {<a, b, c>: a=b=c} EC2 = {<a, b, c>: a=b, a ≠ c} EC3 = {<a, b, c>: a=c, a ≠ b} EC4 = {<a, b, c>: b=c, a ≠ b} EC5 = {<a, b, c>: a ≠ b, a ≠ c, b ≠ c } Extra design of input classes: Check every side of triangle as not a triangle EC6 = {<a, b, c>: b + c <= a} EC7 = {<a, b, c>: a + c <= b} EC8 = {<a, b, c>: a + b <= c}

22 Equivalence Classes(EC) : NextDate Problem
Valid EC M1 = {month: 1 =< month =<12} D1 = {day: 1 =< day =< 31} Y1 = {year: 1812 =< year =< 2012} Invalid EC M2 = {month: month <1} M3 = {month: month >12} D2 = {day: day <1} D3 = {day: day >31} Y2 = {year: year < 1812} Y3 = {year: year > 2012}

23 Weak Normal and Strong Normal Test Cases: NextDate Problem
Month Day Year Expected Results WN1, SN1 6 15 1912 6/16/1912

24 Weak Robust Test Cases: The NextDate Problem
Test Case ID Month Day Year Expected Results WN1 6 15 1912 6/16/1912 WR1 -1 Month not in range 1…12 WR2 13 WR3 Day not in range 1…31 WR4 32 WR5 1811 Year not in range 1812…2012 WR6 2013

25 Strong Robust Test Cases: The NextDate Problem
Month Day Year Expected Results WN1 6 15 1912 6/16/1912 SR1 -1 month not in range 1…12 SR2 day not in range 1…31 SR3 1811 year not in range 1812…2012 SR4 SR5 SR6 SR7

26 Improved Input Equivalence Classes: NextDate Problem
M1 = {month: month has 30 days} M2 = {month: month has 31 days} M3 = {month: month = February} D1 = {day: 1 =< day =< 28} D2 = {day: day = 29} D3 = {day: day = 30} D4 = {day: day = 31} Y1 = {year: year is leap year} Y2 = {year: year is common year }

27 Input Equivalence Class: The Commission Problem
Valid EC L1 = {lock: 1 =< locks =< 70} S1 = {stocks: 1=< stocks =< 80} B1 = {barrels: 1 =< barrels =< 90} Invalid EC L2 = {locks: locks <1} L3 = {locks: locks > 70} S2 = {stocks: stocks < 1} S3 = {stocks: stocks > 80} B2 = {barrels: barrels <1} B3 = {barrels: barrels >90}

28 Strong Robust Test Cases: Commission Problem
Test Case ID Locks Stocks Barrels Expected Results SR1 5 50 SR2 -1 40 45 Locks not in range 1…70 SR3 35 Stocks not in range 1…80 SR4 Barrels not in range 1…90 SR5 SR6 SR7 SR8

29 Using output to Equivalence Classes Test Cases: Commission Problem
Sales = 45 * locks +30 * stocks + 25 * barrels S1 = {<locks, stocks, barrels>: sales =<1000} S2 = {<locks, stocks, barrels>: 1000 < sales =<1800} S3 = {<locks, stocks, barrels>: sales > 1800 } How to design WN Test Case?? Test Case ID Locks Stocks Barrels Sales Commission (Expected Results) OWN1 5 500 50 OWN2 15 1500 175 OWN3 25 2500 360

30 Specification of Commission
Sales = 45*Locks + 30*Stock + 25*barrels if sales <= 1000 commission = 10% * sales if sales > 1000 commission = 10%* %*(sales – 1000) if sales > 1800 commission = 10%* %* %* (sales-1800)

31 Summary of EC Testing Normal vs Robust
Normal (Valid) Robust (Valid +Invalid) Weak Normal Testing Strong Normal Testing Weak Robust Testing Strong Robust Testing Single fault vs Multiple fault assumption Single fault (1 EC) Multiple fault (1 EC+) Weak Normal Testing Weak Robust Testing Strong Normal Testing Strong Robust Testing


Download ppt "Chapter 3: Equivalence Class Testing :EC Software Testing"

Similar presentations


Ads by Google