(back to Introduction article with links to all parts)
---------- Section 4 ------------
The purpose of a test design technique is - to identify test conditions, test cases, and test data.
Effective VS Efficient
find more faults VS find faults with less effort
focus on specific types of fault VS avoid duplication
know you are testing the right thing VS systematic techniques are measurable
Categories of Test Design Techniques:
- Black Box (specification-based test design techniques)
- known as a behavioral technique
- based on deriving test cases directly from a specification
- applicable for both functional & nonfunctional
- concentrate on the inputs and outputs (without reference to its internal structure)
- Equivalence partitioning
- Boundary value analysis
- Decision table testing
- State transition testing
- Use case testing (good for 5. Acceptance test Level Section 3)
- White Box (structure-based test design techniques)
- might know architecture, detailed design, code
- Statement Testing (good for 1. Unit (Component) test Level Section 3)
- Decision Testing (good for 1. Unit (Component) test Level Section 3)
- Experience-based test design techniques
- based on stakeholders
- Error Guessing ("fault attack")
- Exploratory testing (concurrently explore logs, documentation, code, etc.)
- Checklist based Testing
Test Techniques Selection Factors:
- Regulatory standards
- Customer or contractual requirements
- Level of risk
- Type of risk
- Type of component or system
- Test objectives
- Documentation available
- Knowledge of the testers
- Time and budget
- Development life cycle
- Experience of type of defects found
- Component or system complexity
- Available tools
- Expected use of the software
Test Techniques Maturity Factors:
- The maturity of test and development processes
- Time constraints
- Safety or regulatory requirements
- The knowledge and skills of the people involved
- The software development lifecycle model being followed
Which Techniques is Best?
1. Always make functional testing the first priority
2. Consider non-functional test cases
3. Check statement and decision coverage
4. Use experience-based techniques