Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "By Asst.Prof.Dr. Wararat Songpan (Rungworawut) Faculty of Computer Science, Department of Science, Khon Kaen University, Thailand 1 Chapter 3: Equivalence."— Presentation transcript:

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

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. 2

3 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 d ▫ x2 g Remarks: [ = closed interval, ( = open interval 3 quivalencelassTesting Equivalence Class Testing : EC

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 4

5 1) Weak Normal Testing :WN 5 x2 x1 f e ab c d g 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} -One variable from each equivalence class as “single fault assumption” -Values identified in systematic way

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

7 Simple example: WN Test case design Test case IDEC IDx1x2Expected Results WN1EC1, EC45611 WN2EC2, EC5121527 WN3EC3, EC417724 7 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} x2 x1 10 5 5 15 20

8 2) Strong Normal Testing : SN 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” 8 x2 x1 f e ab c d g

9 Simple example: SN Test case design Test case IDEC IDx1x2Expected Results SN1EC1, EC45611 SN2EC1, EC571219 SN3 EC2, EC4 10515 SN4EC2, EC5121527 SN5EC3, EC417724 SN6EC3, EC515 30 9 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} x2 x1 10 5 5 15 20

10 3) Weak Robust Testing (WR) 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?) 10 x2 x1 f e ab c d g Additional consider in Invalid EC: Ec6 = {x1: x1 < a} Ec7 = {x1: x1 > d} Ec8 = {x2 : x2 < e} Ec9 = {x2 : x2 > g}

11 Simple example: WR Test case design 11 Test case IDEC IDx1x2Expected Results WR1EC1, EC45611 WR2EC2, EC5121527 WR3EC3, EC417724 WR4EC6, EC448X1 is out of range WR5EC7, EC4238X1 is out of range WR6EC3, EC8184X2 is out of range WR7EC3, EC91823X2 is out of range

12 4) Strong Robust Testing :SR 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 12 x2 x1 f e ab c d g

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 o Equilateral o Isosceles o Scalene o Not a Triangle 13

14 WN Test case design Triangle Program (Simple) Valid EC EC1: 1<=a<= 200 EC2: 1<=b<=200 EC3: 1<=c<=200 14 Test CaseEC IDabcExpected Results WN1EC1,2,3102030 Scalene

15 SN Test case design Triangle Program (Simple) Valid EC EC1: 1<=a< 200 EC2: 1<=b<=200 EC3: 1<=c<=200 15 Test CaseECabcExpected Results SN1 EC1,2,3102030 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: o Ec1 = { : the triangle with sides a, b and c is equilateral} o Ec2 = { : the triangle with sides a, b and c is Isosceles} o Ec3 = { : the triangle with sides a, b and c is Scalene) } o Ec4 = { : the triangle with sides a, b and c is Not a Triangle} 16

17 Weak Normal(WN)/ Strong Normal(SN) Test Cases: Triangle Program Test Case ID ECabcExpected Results OWN1EC1 555 Equilateral OWN2EC2 223 Isosceles OWN3EC3 345 Scalene OWN4EC4 412 Not a Triangle 17

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 18

19 Weak Robust(WR) Test Cases: Triangle Program 19 Test Case ID ECabcExpected Results WN1 …WN4 WR1EC6 55 a not in range WR2EC8 55 b not in range WR3EC10 55 c not in range WR4EC5 20155 a not in range WR5EC7 52015 b not in range WR6EC9 55201 c not in range

20 Strong Robust(SR) Test Cases: Triangle Program 20 Test CaseabcExpected Results WN1 …WN4 SR1 55 a not in range SR2 55 b not in range SR3 55 c not in range SR4 5 a, b not in range SR5 5 b, c not in range SR6 5 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} ▫ EC2 = { : a=b, a ≠ c} ▫ EC3 = { : a=c, a ≠ b} ▫ EC4 = { : b=c, a ≠ b} ▫ EC5 = { : a ≠ b, a ≠ c, b ≠ c }  Extra design of input classes: Check every side of triangle as not a triangle ▫ EC6 = { : b + c <= a} ▫ EC7 = { : a + c <= b} ▫ EC8 = { : a + b <= c} 21

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

23 Weak Normal and Strong Normal Test Cases: NextDate Problem 23 Test CaseMonthDayYearExpected Results WN1, SN161519126/16/1912

24 Weak Robust Test Cases: The NextDate Problem 24 Test Case ID MonthDayYearExpected Results WN1 6151912 6/16/1912 WR1 151912 Month not in range 1…12 WR2 13151912 Month not in range 1…12 WR3 61912 Day not in range 1…31 WR4 6321912 Day not in range 1…31 WR5 6151811 Year not in range 1812…2012 WR6 6152013 Year not in range 1812…2012

25 Strong Robust Test Cases: The NextDate Problem 25 Test CaseMonthDayYearExpected Results WN1 6151912 6/16/1912 SR1 151912 month not in range 1…12 SR2 61912 day not in range 1…31 SR3 6151811 year not in range 1812…2012 SR4 1912 month not in range 1…12 day not in range 1…31 SR5 61811 day not in range 1…31 year not in range 1812…2012 SR6 151811 month not in range 1…12 year not in range 1812…2012 SR7 1811 month not in range 1…12 day not in range 1…31 year not in range 1812…2012

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 } 26

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} 27

28 Strong Robust Test Cases: Commission Problem 28 Test Case IDLocksStocksBarrelsExpected Results SR1 555 50 SR2 4045 Locks not in range 1…70 SR3 3545 Stocks not in range 1…80 SR4 3540 Barrels not in range 1…90 SR5 45 Locks not in range 1…70 Stocks not in range 1…80 SR6 40 Locks not in range 1…70 Barrels not in range 1…90 SR7 35 Stocks not in range 1…80 Barrels not in range 1…90 SR8 Locks not in range 1…70 Stocks not in range 1…80 Barrels not in range 1…90

29 Using output to Equivalence Classes Test Cases: Commission Problem Sales = 45 * locks +30 * stocks + 25 * barrels o S1 = { : sales =<1000} o S2 = { : 1000 < sales =<1800} o S3 = { : sales > 1800 } 29 Test Case ID LocksStocksBarrelsSalesCommission (Expected Results) OWN1 555 50050 OWN2 15 1500175 OWN3 25 2500360 How to design WN Test Case??

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

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


Download ppt "By Asst.Prof.Dr. Wararat Songpan (Rungworawut) Faculty of Computer Science, Department of Science, Khon Kaen University, Thailand 1 Chapter 3: Equivalence."

Similar presentations


Ads by Google