ISTQB Section 4 (Test design techniques)

  (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)

  1. Equivalence partitioning
  2. Boundary value analysis
  3. Decision table testing
  4. State transition testing
  5. Use case testing (good for 5. Acceptance test Level Section 3)

  • White Box (structure-based test design techniques)

- might know architecture, detailed design, code

  1. Statement Testing (good for 1. Unit (Component) test Level  Section 3)
  2. Decision Testing (good for 1. Unit (Component) test Level  Section 3)

  • Experience-based test design techniques

- based on stakeholders

  1. Error Guessing ("fault attack")
  2. Exploratory testing (concurrently explore logs, documentation, code, etc.)
  3. Checklist based Testing

Test Techniques Selection Factors:

  1. Regulatory standards
  2. Customer or contractual requirements
  3. Level of risk
  4. Type of risk
  5. Type of component or system
  6. Test objectives
  7. Documentation available
  8. Knowledge of the testers
  9. Time and budget
  10. Development life cycle
  11. Experience of type of defects found
  12. Component or system complexity
  13. Available tools
  14. 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