Boundary Value Testing A type of “Black box” functional testing –The program is viewed as a mathematical “function” –The program takes inputs and maps.

Slides:



Advertisements
Similar presentations
Testing and Quality Assurance
Advertisements

Testing and Test Case Development A “primitive” method of testing, with NO test preparation, may include the following steps : – Initiate the system –
Inpainting Assigment – Tips and Hints Outline how to design a good test plan selection of dimensions to test along selection of values for each dimension.
Grey Box testing Tor Stålhane. What is Grey Box testing Grey Box testing is testing done with limited knowledge of the internal of the system. Grey Box.
Equivalence Class Testing
An Introduction to Java Programming and Object- Oriented Application Development Chapter 8 Exceptions and Assertions.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
What is an Algorithm? (And how do we analyze one?)
Introduction to Analysis of Algorithms
CS 307 Fundamentals of Computer Science 1 Asymptotic Analysis of Algorithms (how to evaluate your programming power tools) based on presentation material.
Software Testing and Quality Assurance
This material in not in your text (except as exercises) Sequence Comparisons –Problems in molecular biology involve finding the minimum number of edit.
IMSE Week 18 White Box or Structural Testing Reading:Sommerville (4th edition) ch 22 orPressman (4th edition) ch 16.
Testing an individual module
CS320n –Visual Programming LabVIEW Control Structures.
Path testing Path testing is a “design structural testing” in that it is based on detailed design & the source code of the program to be tested. The methodology.
Equivalence Class Testing
1 Joe Meehean. 2 Testing is the process of executing a program with the intent of finding errors. -Glenford Myers.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
Review for Final Exam Systems of Equations.
Fundamentals of Python: From First Programs Through Data Structures
Ch. 8 & 9 – Linear Sorting and Order Statistics What do you trade for speed?
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
CC0002NI – Computer Programming Computer Programming Er. Saroj Sharan Regmi Week 7.
Fundamentals of Python: First Programs
Software Testing. Recap Software testing – Why do we do testing? – When it is done? – Who does it? Software testing process / phases in software testing.
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
A General Discussion on Functional (Black-box) Testing What are some of the concerns of testers ? –Have we got enough time to test (effort & schedule)?
1 Software Testing. 2 Path Testing 3 Structural Testing Also known as glass box, structural, clear box and white box testing. A software testing technique.
Grey Box testing Tor Stålhane. What is Grey Box testing Grey Box testing is testing done with limited knowledge of the internal of the system. Grey Box.
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
White-box Testing.
CSC 211 Data Structures Lecture 13
Control Structures II Repetition (Loops). Why Is Repetition Needed? How can you solve the following problem: What is the sum of all the numbers from 1.
1 Program Testing (Lecture 14) Prof. R. Mall Dept. of CSE, IIT, Kharagpur.
CSC401 – Analysis of Algorithms Lecture Notes 2 Asymptotic Analysis Objectives: Mathematics foundation for algorithm analysis Amortization analysis techniques.
1 Boundary Value Testing Chapter 5. 2 Introduction Input domain testing is the most commonly taught (and perhaps the most commonly used) software testing.
Case Study: Black-Box Testing Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 6.1.
Disciplined Software Engineering Lecture #12 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #12 Software Engineering.
Testing Chapter 23 IB103 Week 12 (part 3). Verify that a complex (any) program works correctly, that the program meets specifications The chapter reviews.
GUI testing There are two major sets of GUI testing 1.“Usability” of the GUI Looks (aesthetic, visual appeal) artistic characteristic –Color –Shapes.
Test Case Designing UNIT - 2. Topics Test Requirement Analysis (example) Test Case Designing (sample discussion) Test Data Preparation (example) Test.
08120: Programming 2: SoftwareTesting and Debugging Dr Mike Brayshaw.
Data Analysis for Testing In order to test a program or system, it usually requires : –Starting the system (program) –Inputting some data –Let it execute.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
Condition Testing. Condition testing is a test case design method that exercises the logical conditions contained in a program module. A simple condition.
1 Software Testing & Quality Assurance Lecture 5 Created by: Paulo Alencar Modified by: Frank Xu.
Computer Science 1000 Algorithms III. Multiple Inputs suppose I ask you to write a program that computes the area of a rectangle area = length * width.
Boundary Value Testing 1.A type of “Black box” functional testing –The program is viewed as a mathematical “function” –The program takes inputs and maps.
Equivalence Class Testing Use the mathematical concept of partitioning into equivalence classes to generate test cases for Functional (Black-box) testing.
Solving Inequalities Using Addition & Subtraction.
AVCE ICT – Unit 7 - Programming Session 12 - Debugging.
1 of 48 The EPA 7-Step DQO Process Step 6 - Specify Error Tolerances 3:00 PM - 3:30 PM (30 minutes) Presenter: Sebastian Tindall Day 2 DQO Training Course.
Boundary Value Testing
Chapter 3 Systems of Equations. Solving Systems of Linear Equations by Graphing.
Slide (Ch.8) 1 Tian: Software Quality Engineering Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Jeff Tian Chapter.
Functional testing, Equivalence class testing
Subject Name: Software Testing Subject Code: 10CS842 Prepared By:
Testing Tutorial 7.
Types of Testing Visit to more Learning Resources.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Ch. 3 stuff – Read entire Ch. 3 if you can’t remember
Equivalence Class Testing
Black-Box Testing Techniques III
Chapter 1: Boundary Value Testing
Overview Functional Testing Boundary Value Testing (BVT)
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

Boundary Value Testing A type of “Black box” functional testing –The program is viewed as a mathematical “function” –The program takes inputs and maps some out-puts –The internal of the program itself is not considered A technique to generate test cases via considering the inputs to the program The rationale for this focus is that there are experiences from the past which indicate that errors tend occur at the “extreme” points. –Input data –Loop iteration –Output fields

A simple example Consider a program that reads the “age” of students in SWE 6723 and computes the average student age of the class. input (s) → Program → output: average age What type of test data would you input to test this program?

Input (s) to Program Average First question would be how many input data? –The answer is some integer n > 0. Second question would be what value should each input age be? –Try some typical age such as 23 or 45 –Try some atypical age 125 or 700 –How about trying a “wrong” age of -5 or 0 When we try the atypical age or some wrong age, we may discover that the program may not “handle” or process properly ---- possibly resulting in a failure or and incident of failure. Failure in this case, may include strange answer, but not necessarily program termination.

Example: Program Average Number of input data, n > 0. –We know the lower bound is n = 1. –How big can n be ? Can n be 1,000,000? (assume, yes) Our input test case should include n = 1 Our input test case should include n = So 1 and are the lower and upper boundaries of the input data n, respectively. Inputs composed of only typical ages –Look at the output average, and the average is computed either Correctly Incorrectly Inputs composed of atypical or wrong ages –What is an atypical or wrong age? –We need to cap the age from 1 to 130. –So the lower and upper boundaries for age is 1 and 130, respectively.

Boundaries of the inputs n age The “basic” boundary value testing would include: 1. - at minimum 2. - immediately above minimum 3. - between minimum and maximum (nominal) 4. - immediately below maximum 5. - at maximum 1 <= n <= <= age <= 130

“Single fault” or “independent” faults For the previous problem, there are 2 “distinct” inputs that are assumed to be independent (single fault) of each other - even though there are somewhat related. –Input: n –Input: age If they are independent of each other, then we can start with looking at = 10 sets, but won’t need all 10 of them. coverage of input data: n 1. n= 1 ; age = whatever 2.n =2; age = whatever 3. n = 3; age = whatever 4.n = 999,999; age = whatever 5.n = 1,000,000; age = whatever coverage of input data: age 1. n= 3; age = 1, 20, 55 2.n =3; age = 2, 20, n = 3; age = 3, 20, 55 4.n = 3; age = 3, 20, n = 3; age = 3, 20, 130

2 – independent inputs age n - Note that there needs to be only 9 test cases for 2 independent variables or inputs. - In general, there will be (4z + 1) test cases for z independent inputs.

But the inputs, n and age, are a “little related” Note that the input, n, and input, age, is a little related in that n dictates the number of input data that is allowed, not just the values that the age input may take on.. For the previous problem we would have to further consider the situation where n = x, besides n being between 1 and 1,000,000 ; but the number of input data is : –less than x, –at x and –exceeds x. Thus we need to add more test cases What would you recommend ?

Some other limitations of Boundary Value Testing What would we do with boolean variables? –True –False What about non-numerical variable where the values may be text for an input field? –e.g. “ 2340 Marietta Drive” Do you look at the length of the input field and use that as the boundary? What about drop-down windows? –Is there any boundary?

Extended Boundary Value (Robustness) testing This is just an extension of the Boundary Values to include: –Less than minimum –Greater than maximum There are 7 cases or values to worry about for each independent variable input. The testing of robustness is really a test of “error” handling. –Do we anticipate the error situations? –Do we issue informative error messages? –Do we allow some kind of recovery from the error?

2 – independent inputs for robustness test X Y - Note that there needs to be only 13 test cases for 2 independent variables or inputs. - In general, there will be (6n+ 1) test cases for n independent inputs.

Worst-Case testing for non-independent variables If the input variables are not independent, then we would need to test all possible combinations of values that the variable may take on. –For Boundary Value Testing, each of the 5 possible values of a variable must iterate through the 5 possible values of the other variable(s). Thus for n input variables, there are 5 n possible test cases –For Robustness Testing, each of the 7 possible values of a variable must iterate through the 7 possible values of the other variable(s). Thus for n input variables, there are 7 n possible test cases

2 – interdependent inputs for worst case test X Y - In general, there will be 5 n test cases for n interdependent inputs. For 2 interdependent variables, there are 5 2 = 25 test cases

Hierarchy Boundary Value testing of n inputs : 4n + 1 Robustness testing of n inputs : 6n + 1 Worst case for boundary value : 5 n Worst case for robustness : 7 n - Boundary Value is a subset of Robustness - Worst case for boundary value is a subset of worst case of robustness

Special Value and Random Testing Special Value Testing: –Based on experience –Based on some special knowledge of the industry –Ad hoc in nature –Has had some very valuable inputs –Costly to find the industry “experts” Random Value Testing; –Based on some random number generator –Generate values within bounds of the boundary or worst case –The value of random test has not been clearly justified