Black Box Testing Techniques - Equivalence Partitioning
- Boundary Value Analysis
- State Transitions
- Exploratory Testing
1) Equivalence Partitioning Partition the input domain into a finite number of equivalence classes Create test cases to invoke as many different conditions as possible
It is based on the premise that if a test case in an equivalence class
detects an error, all other test cases in the same class detect the
same error
Step 1 Identify the input parameters Identify the allowable classes of input Select a representative value for each class Create test cases to cover as many classes as possible
Step 2 Select invalid values for each class Create additional test cases to cover invalid classes
Step 3 Identify the output parameters Identify the possible classes of output Create test cases to generate each possible output
Example: 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]” ® classes: x <> 10 •“Enumeration A, B, C ® classes: A, B, C, not {A, B, C,} • Define one / couple of test cases for each class –Test cases that cover valid eq. classes –Test cases that cover at most one invalid eq. class •Test a function for calculation of absolute value of an integer •Equivalence classes : 2) Boundary Value Analysis
Boundary Value Analysis technique tests conditions on, above and beneath the edges of input and output Equivalence Classes
Test cases are created to test the edge of each Equivalence Class Test cases are created to test edges of both input and output classes
For each equivalence class identified: Select a value on the class boundary Pick a value just under the boundary Pick a value just over the boundary
3) Finite State Testing Process: Create test cases to: Force each transition Force each action
4) Exploratory Testing Some people can design test cases that will discover failures based on their experience Allow these people to write test cases Address complex areas Address changes Report failures, faults and errors so that experience level may grow
|