The document discusses black box software testing. It defines black box testing as testing based on specifications and requirements without knowledge of internal implementation. It describes common black box testing techniques like equivalence partitioning, boundary value analysis, and requirements-based testing. The document provides an example of testing a triangle classification program to illustrate these techniques.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
361 views21 pages
Black Box Testing
The document discusses black box software testing. It defines black box testing as testing based on specifications and requirements without knowledge of internal implementation. It describes common black box testing techniques like equivalence partitioning, boundary value analysis, and requirements-based testing. The document provides an example of testing a triangle classification program to illustrate these techniques.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 21
Black Box Software Testing
Speaker: J erry Gao Ph.D.
San J ose State University email: [email protected] URL: http://www.engr.sjsu.edu/gaojerry
Topic: Black Box Software Testing - I ntroduction to Black Box Software Testing?
- Definition - Why Black Box Testing? - Testing Objectives and Focuses
- An Example
- Graph-based Testing Methods
- Equivalence Partitioning
- Boundary Value Analysis
- Requirements-Based Testing
- Random Testing J erry Gao Ph.D. 7/20002 Presentation Outline All Rights Reserved I ntroduction to Black Box Testing What is black box testing?
- Black box testing also known as specification-based testing.
- Black box testing refer to test activities using specification-based testing methods and criteria to discover program errors based on program requirements and product specifications.
The major testing focuses: - specification-based function errors - specification-based component/system behavior errors - specification-based performance errors - user-oriented usage errors - black box interface errors interface Black Box (Component or System) output input operation J erry Gao Ph.D. 7/2002 Topic: Black Box Software Testing I ntroduction to Black Box Testing Under test units in black-box: Software components, subsystems, or systems
What do you need?
- For software components, you need component specification, user interface doc.
-For a software subsystem or system, you need requirements specification, and product specification document.
You also need: - Specification-based software testing methods - Specification-based software testing criteria
- good understanding of software components (or system) J erry Gao Ph.D. 7/2002 Topic: Black Box Software Testing An Example Testing a triangle analyzer:
Program specification:
I nput: 3 numbers separated by commas or spaces Processing: Determine if three numbers make a valid triangle; if not, print message NOT A TRI ANGLE.
I f it is a triangle, classify it according to the length of the sides as scalene (no sides equal), isosceles (two sides equal), or equilateral (all sides equal).
I f it is a triangle, classify it according to the largest angle as acute (less than 90 degree), obtuse (greater than 90 degree), or right (exactly 90 degree).
Output: One line listing the three numbers provided as input and the classification or the not a triangle message. Example: 3,4,5 Scalene Right 6,1,6 I sosceles Acute 5,1,2 Not a triangle J erry Gao Ph.D. 7/2002 Topic: Black Box Software Testing An Example Functional Test Cases:
Acute Obtuse Right
Scalene: 6,5,3 5,6,10 3,4,5 I sosceles: 6,1,6 7,4,4 1,2, 2^(0.5) Equilateral: 4,4,4 Not possible Not possible
Functional Test Cases:
I nput Expected Results
4,4,4 Equilateral acute 1,2,8 Not a triangle 6,5,3 Scalene acute 5,6,10 Scalene obtuse 3,4,5 Scalene right 6,1,6 I sosceles acute 7,4,4 I sosceles obtuse 1,1,2^(0.5) I sosceles right J erry Gao Ph.D. 7/2002 Topic: Black Box Software Testing An Example Test cases for special inputs and invalid formats:
3,4,5,6 Four sides 646 Three-digit single number 3,,4,5 Two commas 3 4,5 Missing comma 3.14.6,4,5 Two decimal points 4,6 Two sides 5,5,A Character as a side 6,-4,6 Negative number as a side -3,-3,-3 All negative numbers Empty input J erry Gao Ph.D. 7/2002 Topic: Black Box Software Testing An Example Boundary Test Cases:
(1) Boundary conditions for legitimate triangles
1,1,2 Makes a straight line, not a triangle 0,0,0 Makes a point, not a triangle 4,0,3 A zero side, not a triangle 1,2,3.00001 Close to a triangle but still not a triangle 9170,9168,3 Very small angle Scalene, acute .0001,.0001,.0001 Very small triangle Equilateral, acute 83127168,74326166,96652988 Very large triangle, scalene, obtuse
Boundary conditions for sides classification: 3.0000001,3,3 Very close to equilateral, I sosceles, acute 2.999999,4,5 Very close to isosceles Scalene, acute
Boundary conditions for angles classification: 3,4,5.000000001 Near right triangle Scalene, obtuse 1,1,1.41141414141414 Near right triangle I sosceles, acute J erry Gao Ph.D. 7/2002 Topic: Black Box Software Testing Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Software Testing Principles Davids [DAV95] suggests a set of testing principles:
- All tests should be traceable to customer requirements.
- Tests should be planned long before testing begins.
- The Pareto principle applies to software testing. - 80% of all errors uncovered during testing will likely be traceable to 20% of all program modules.
- Testing should begin in the small and progress toward testing in the large.
- Exhaustive testing is not possible.
- To be most effective, testing should be conducted by an independent third party.
Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Software Testability According to J ames Bach:
Software testability is simply how easily a computer program can be tested.
A set of program characteristics that lead to testable software:
- Operability: the better it works, the more efficiently it can be tested. - Observability: What you see is what you test.
- Controllability: The better we can control the software, the more the testing can be automated and optimized.
- Decomposability: By controlling the scope of testing, we can more quickly isolate problems and perform smarter retesting.
- Simplicity: The less there is to test, the more quickly we can test it. - Stability: The fewer the changes, the fewer the disruptions to testing. - Understandability:The more information we have, the smarter we will test. Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Equivalence Partitioning Equivalence partitioning is a black-box testing method - divide the input domain of a program into classes of data - derive test cases based on these partitions.
Test case design for equivalence partitioning is based on an evaluation of equivalence classes for an input domain.
An equivalence class represents a set of valid or invalid states for input condition.
An input condition is: - a specific numeric value, a range of values - a set of related values, or a Boolean condition Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Equivalence Partitioning Equivalence partitioning is a black-box testing method - divide the input domain of a program into classes of data - derive test cases based on these partitions.
Test case design for equivalence partitioning is based on an evaluation of equivalence classes for an input domain.
An equivalence class represents a set of valid or invalid states for input condition.
An input condition is: - a specific numeric value, a range of values - a set of related values, or a Boolean condition system Valid inputs invalid inputs outputs partition Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Equivalence Classes
Equivalence classes can be defined using the following guidelines: - I f an input condition specifies a range, one valid and two invalid equivalence class are defined.
- I f an input condition requires a specific value, one valid and two invalid equivalence classes are defined.
- I f an input condition specifies a member of a set, one valid and one invalid equivalence classes are defined.
- I f an input condition is Boolean, one valid and one invalid classes are defined.
Examples: area code: input condition, Boolean - the area code may or may not be present. input condition, range - value defined between 200 and 900
password: input condition, Boolean - a password nay or may not be present. input condition, value - six character string.
command: input condition, set - containing commands noted before. Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Boundary Value Analysis Boundary value analysis(BVA) - a test case design technique - complements to equivalence partition Objective: Boundary value analysis leads to a selection of test cases that exercise bounding values.
Guidelines: - I f an input condition specifies a range bounded by values a and b, test cases should be designed with value a and b, just above and below a and b.
Example: I nteger D with input condition [-3, 10], test values: -3, 10, 11, -2, 0
- I f an input condition specifies a number values, test cases should be developed to exercise the minimum and maximum numbers. Values just above and below minimum and maximum are also tested.
Example: Enumerate data E with input condition: {3, 5, 100, 102} test values: 3, 102, -1, 200, 5
Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Boundary Value Analysis
- Guidelines 1 and 2 are applied to output condition.
- I f internal program data structures have prescribed boundaries, be certain to design a test case to exercise the data structure at its boundary
Such as data structures:
- array input condition: empty, single element, full element, out-of-boundary
search for element: - element is inside array or the element is not inside array
You can think about other data structures:
- list, set, stack, queue, and tree
Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved One-Dimensional Domain Bugs in Open Boundaries
An Open Domain (A): Closure Bug: Boundary Shifted Left: Missing Boundary: Extra Boundary: Boundary Shifted Right: B B B B B B A A A A A A I f the domain boundary is open, an off point is a point near the boundary but in the domain being tested. Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved One-Dimensional Domain Bugs in Closed Boundaries
A Closed Domain (A): Closure Bug: Boundary Shifted Left: Missing Boundary: Extra Boundary: Boundary Shifted Right: B B B B B B A A A A A A I f the domain boundary is closed, an off point is a point near the boundary but in the adjacent domain. Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Generic Domain Bugs in One-Dimensional Domains
Shifted Boundaries: Tilted Boundaries: Open/Close Error: Extra Boundary: Missing Boundary: Correct: I ncorrect: Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved An Example
Given a function module which implements function Z= F(X, Y), which defined as follows: Z = F(X,Y), where X and Y are integer parameters for F. The detailed definition is given below. -- | X + Y when 10<=X<=20, and 12<=Y<=30 Z = | X - Y when 0<=X<10, and 0<=Y<12 | 0 under other conditions -- Please answer the following questions: (4%) Identify the equivalence classes in [X, Y]. (hints: Considering Z as a function F with X and Y input variables. ) (4%) List your test cases in [X, Y] based on the equivalence classes. (4%) Perform boundary value analysis, and list all boundary conditions for X and Y. (3%) List your test cases in [X, Y] based on boundary value analysis. X Y Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Domain Boundary
Two-dimension Domain Boundary Extreme point Boundary point Off point I nterior point Topic: Black Box Software Testing J erry Gao Ph.D. 7/20002 All Rights Reserved Testing Two-Dimensional Domains
- Closure bug. For example, using a wrong operator (for example, x >=k when x >k is intended or vise versa). This bug could be detected due to the testing of different boundaries or trying interior and off points.
- Shifted boundary: For example, a boundary is shifted due to the use of an incorrect constant in a predicate, such as x+y>=17 when x +y >=7 was intended. The off point catches this bug.
- Titled boundary: A tilted boundary occurs when coefficients in the boundary inequality are wrong. For example, 3x+7y >17 when 7x +3y >17 was intended. Testing different domain points can detect the bug.
- Extra boundary: An extra boundary is created by an extra predicate. Try different boundary points can detect this bug.
- Missing boundary: A missing boundary is created by leaving a boundary predicate out.