 Download Download Presentation By Dr. Wararat Songpan ( Rungworawut ) Faculty of Computer Science, Department of Science,

By Dr. Wararat Songpan ( Rungworawut ) Faculty of Computer Science, Department of Science,

Download Presentation By Dr. Wararat Songpan ( Rungworawut ) Faculty of Computer Science, Department of Science,

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

1. Chapter 3: Equivalence Class Testing :EC 322235Software Testing By Dr. WararatSongpan (Rungworawut) Faculty of Computer Science, Department of Science, KhonKaen University, Thailand

2. EquivalenceClassTesting : 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. EquivalenceClassTesting: 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=<dwith intervals [a,b), [b,c), [c,d] • e=<x2=<g with intervals [e,f), [f,g] • So, invalid valueforx1andx2as follows, • x1 < a andx1>d • x2 <e and x2>g Remarks: [ = closed interval, ( = open interval

4. EquivalenceClassTesting : 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 c a b 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 x2 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 15 5 10 20

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

9. Simple example: SN Test case design x2 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 15 5 10 20

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} • 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?) g f e x1 c a b d

11. Simple example: WR Test case design

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

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

15. SN Test case design Triangle Program (Simple) Valid EC • EC1: 1<=a< 200 • EC2: 1<=b<=200 • EC3: 1<=c<=200

16. Equivalence Class : Triangle Problem (Output) • Using outputfrom specification translate into Equivalence Class(EC) • 4possible outputs: Equilateral, Isosceles, Scalene, and Not a Triangle • 4outputequivalence 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 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. Weak Robust(WR) Test Cases: Triangle Program

19. Strong Robust(SR) Test Cases: Triangle Program

20. 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}

21. 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}

22. Weak Normal and Strong Normal Test Cases: NextDate Problem

23. Weak Robust Test Cases: The NextDate Problem

24. Strong Robust Test Cases: The NextDate Problem

25. ImprovedInput Equivalence Classes: NextDate Problem • M1 = {month: monthhas 30days} • M2 = {month: monthhas 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. 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. Strong Robust Test Cases: Commission Problem

28. Usingoutput toEquivalence 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??

29. 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. Summary of EC Testing Normal vs Robust Single fault vs Multiple fault assumption