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

Slides:



Advertisements
Similar presentations
Forms of Equivalence Class Testing Normal • only equivalence classes are valid and invalid input values • emphasis is on "single failures" • works.
Advertisements

Overview Functional Testing Boundary Value Testing (BVT)
Chapter 2: Boundary Value Testing : BVT Software Testing
Decision Table Based Testing
Chapter 4: Decision Table Testing Software Testing
Equivalence Class Testing
Chapter 4: Congruent Triangles Lesson 1: Classifying Triangles.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Sample Problems for Testing For “Program” Level Testing: –Triangle –Next Date –Sales Commission For “System” Level Testing: –ATM system –Currency conversion.
Software Testing and Quality Assurance
Equivalence Class Testing, Decision Table Testing
Chapter 5 Retrospective on Functional Testing Software Testing
Equivalence Class Testing
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
 T RIANGLE : A figure formed by three noncollinear points, connected by segments  Since two of the segments create a vertex, a triangle has three vertices.
Com1040 Systems Design and Testing Part II – Testing (Based on A.J. Cowling’s lecture notes) LN-Test3: Equivalence classes and boundary conditions Marian.
Types of Triangle Chapter 3.6 Objective- name the various types of triangles and their parts.
Sample Problems for Testing
1 Equivalence Class Testing Chapter 6. 2 Introduction Boundary Value Testing derives test cases with Massive redundancy Serious gaps Equivalence Class.
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
Triangle A polygon with three sides and three angles. A triangle can be names by its’ side lengths and angles. – Side lengths: isosceles, equilateral,
1 Boundary Value Testing Chapter 5. 2 Introduction Input domain testing is the most commonly taught (and perhaps the most commonly used) software testing.
1841f07subdomains2Aug23 Question u What is the main purpose of software testing?
EXAMPLE 1 Standardized Test Practice SOLUTION Let ( x 1, y 1 ) = ( –3, 5) and ( x 2, y 2 ) = ( 4, – 1 ). = (4 – (–3)) 2 + (– 1 – 5) 2 = = 85 (
1 Input Space Partitioning(2). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 4  Section 4.1  Section
TRIANGLES AND TYPES OF TRIANGLES. A triangle has three sides.
Overview Functional Testing Boundary Value Testing (BVT)
Equivalence Class Testing In chapter 5, we saw that all four variations of boundary value testing are vulnerable to –gaps of untested functionality, and.
Exploring Angles in a Triangles Chapter 8 Lesson 4 Image Taken from:
The Distance Formula (and mid point). What is to be learned? How to calculate the distance between two points.
Software testing School of Software Engineering, HUST 1.
1 Software Testing & Quality Assurance Lecture 5 Created by: Paulo Alencar Modified by: Frank Xu.
1 Software Testing. 2 Equivalence Class Testing 3 The use of equivalence class testing has two motivations: –Sense of complete testing –Avoid redundancy.
Equivalence Class Testing Use the mathematical concept of partitioning into equivalence classes to generate test cases for Functional (Black-box) testing.
Boundary Value Testing
Cause & Effect Graph Comparison Testing
Chapter 3: Equivalence Class Testing :EC Software Testing
Software Testing.
Objectives Classify triangles by their angle measures and side lengths. Use triangle classification to find angle measures and side lengths.
Triangles.
Robustness Testing by- (Group 2-Batch F1).
Subject Name: Software Testing Subject Code: 10CS842 Prepared By:
Software Testing Structural testing 1.
Domain Testing Functional testing which tests the application by giving inputs and evaluating its appropriate outputs. system does not accept invalid and.
Triangles.
TRIANGLE A B C.
Input Space Partition Testing CS 4501 / 6501 Software Testing
TRIANGLES BY ASHANTI.
CLASSIFICATIONS, ANGLES AND MORE!!
Chapter 5 Retrospective on Functional Testing Software Testing
Overview Functional Testing Boundary Value Testing (BVT)
Table of Contents Date: 10/17 Topic: Classifying Triangles
Equivalence Class Testing
4.5 - Isosceles and Equilateral Triangles
CSCE 747 Software Testing and Quality Assurance
CSCE 747 Software Testing and Quality Assurance
Objective - To classify triangles.
Overview Functional Testing Boundary Value Testing (BVT)
Types of Triangles Thursday, 11 April 2019.
Types of Triangles Thursday, 11 April 2019.
முக்கோண சமனின்மைப் பண்பு
Chapter 1: Boundary Value Testing
Triangles.
Intro to Triangles.
Overview Functional Testing Boundary Value Testing (BVT)
Classifying Triangles
Determine whether {image} is convergent or divergent.
4-1 Classifying Triangles
Overview Functional Testing Boundary Value Testing (BVT)
Area and Perimeter Triangles.
Presentation transcript:

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 Software Testing

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

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

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

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

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

Simple example: WN Test case design Test case IDEC IDx1x2Expected Results WN1EC1, EC45611 WN2EC2, EC WN3EC3, EC 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 x

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

Simple example: SN Test case design Test case IDEC IDx1x2Expected Results SN1EC1, EC45611 SN2EC1, EC SN3 EC2, EC SN4EC2, EC SN5EC3, EC SN6EC3, EC 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 x

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}

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

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

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

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

SN Test case design Triangle Program (Simple) Valid EC EC1: 1<=a< 200 EC2: 1<=b<=200 EC3: 1<=c<= Test CaseECabcExpected Results SN1 EC1,2, Scalene

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

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

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 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 WR4EC a not in range WR5EC b not in range WR6EC c not in range

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

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

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

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

Weak Robust Test Cases: The NextDate Problem 24 Test Case ID MonthDayYearExpected Results WN /16/1912 WR Month not in range 1…12 WR Month not in range 1…12 WR Day not in range 1…31 WR Day not in range 1…31 WR Year not in range 1812…2012 WR Year not in range 1812…2012

Strong Robust Test Cases: The NextDate Problem 25 Test CaseMonthDayYearExpected Results WN /16/1912 SR month not in range 1…12 SR day not in range 1…31 SR year not in range 1812…2012 SR month not in range 1…12 day not in range 1…31 SR day not in range 1…31 year not in range 1812…2012 SR month not in range 1…12 year not in range 1812…2012 SR month not in range 1…12 day not in range 1…31 year not in range 1812…2012

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

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 Test Case IDLocksStocksBarrelsExpected Results SR SR Locks not in range 1…70 SR Stocks not in range 1…80 SR 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

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) OWN OWN OWN 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%* %*(sales – 1000) if > 1800 commission = 10%* %* %* (sales-1800) 30

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