1 / 31

310 likes | 572 Views

Chapter 3: Equivalence Class Testing :EC 322235 Software Testing. By Dr. Wararat Songpan ( Rungworawut ) Faculty of Computer Science, Department of Science, Khon Kaen University, Thailand. E quivalence C lass Testing : EC.

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

**An Image/Link below is provided (as is) to download presentation**
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.
Content is provided to you AS IS for your information and personal use only.
Download presentation by click this link.
While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

**Chapter 3: Equivalence Class Testing :EC 322235Software**Testing By Dr. WararatSongpan (Rungworawut) Faculty of Computer Science, Department of Science, KhonKaen University, Thailand**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.**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**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**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**For example: Addition x1 and x2 (Simple example)**Function: Addition X1 and x2 x1 x2 Results = Ok Cancel**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**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**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**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**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**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**WN Test case design Triangle Program (Simple)**Valid EC • EC1: 1<=a<= 200 • EC2: 1<=b<=200 • EC3: 1<=c<=200**SN Test case design Triangle Program (Simple)**Valid EC • EC1: 1<=a< 200 • EC2: 1<=b<=200 • EC3: 1<=c<=200**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}**Weak Normal(WN)/ Strong Normal(SN) Test Cases: Triangle**Program**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**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}**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}**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 }**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}**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??**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)**Summary of EC Testing**Normal vs Robust Single fault vs Multiple fault assumption

More Related