CISS
Overview
• Black-box testing (or functional testing):
• Equivalence partitioning • Boundary value analysis • Cause-effect graphing • Behavioural testing • Random testing • Error guessing etc… Domain analysis
• How to use black-box and white-box testing in combination • Basics : heuristics and experience
CISS
Black box testing requirements output
input events
SUT y domain testing
x CISS
Black-box: Three major approaches
• Analysis of the input/output domain of the program: • Analysis of the observable black-box behaviour: • Heuristics
‘interesting’ subsets
• Leads to a logical partitioning of the input/output domain into • Leads to a flow-graph-like model, which enables application of techniques from the white-box world (on the black-box model)
• Techniques like risk analysis, random input, stress testing
CISS
Types of Testing
CISS
V - Model acceptance test spec
requirements
acceptance test
system test spec
specification
system test
architecture spec
integration test spec
integration test
module test spec
detailed design unit test spec
module test
implementation code
unit-test
CISS
Black-box : Equivalence Partitioning
• Divide all possible inputs into classes (partitions) such that
• There is a finite number of input equivalence classes • You may reasonably assume that
• the program behaves analogously for inputs in the same class • a test with a representative value from a class is sufficient • if representative detects fault then other class members will detect the same fault
CISS
Black-box : Equivalence Partitioning
Strategy :
• Identify input equivalence classes
• Based on conditions on inputs / outputs in specification / description • Both valid and invalid input equivalence classes • Based on heuristics and experience
• “input x in [1..10]” • “enumeration A, B, C • ……..
→ →
classes : x < 1, 1 ≤ x ≤ 10, x > 10 classes : A, B, C, not{A,B,C,}
•
Define one / couple of