Test Design Techniques
Overview of established test design techniques for systematically deriving and prioritizing test cases from requirements and system states.
Classification
- ComplexityMedium
- Impact areaTechnical
- Decision typeDesign
- Organizational maturityIntermediate
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Wrong prioritization leads to insufficient risk coverage.
- Oversized test suites increase run-time and maintenance costs.
- Excessive focus on automation can neglect exploratory testing.
- Combine techniques (equivalence, boundary, state models) instead of relying on a single method.
- Prioritize tests by risk and business criticality.
- Automate deterministic tests and keep exploratory tests manual.
I/O & resources
- Requirement specification or user stories
- System or component specifications
- Existing tests and CI results
- Prioritized list of test cases
- Automated test suites or scripts
- Mapping between tests and requirements/risks
Description
Test design techniques provide structured approaches to selecting and composing test cases based on requirements, specifications, and system states. They reduce redundant tests, increase defect detection probability, and support risk-based testing. Practitioners must balance technique choice, test scope, and degree of automation.
✔Benefits
- Higher defect detection rate through systematic test derivation.
- Reduction of redundant tests and more efficient test scope.
- Better traceability of tests to requirements.
✖Limitations
- Not all techniques suit highly exploratory or UI-heavy tests.
- Requires effort to model and maintain test cases.
- Edge cases can be missed if technique selection is inappropriate.
Trade-offs
Metrics
- Defect detection rate
Share of defects found per number of executed tests or requirements.
- Test coverage (requirements)
Percentage of requirements covered by test cases.
- Mean Time to Detect (MTTD)
Average time to detect a defect after a change is introduced.
Examples & implementations
E-commerce Checkout Module
Use of boundary value analysis and state transition tests to secure payment and shipping logic.
REST API Validation
Requirement-based testing of the specification, plus equivalence classes for input variants.
Order Status State Machine
State-oriented tests to cover all valid and invalid transitions.
Implementation steps
Analyze requirements and identify critical areas
Select suitable test design techniques per area
Derive concrete test cases and map them to requirements
Automate, prioritize and integrate into CI
Measure, review and iteratively adjust the test base
⚠️ Technical debt & bottlenecks
Technical debt
- Fragmented tests without a common design principle.
- Insufficient automation coverage of critical paths.
- Outdated test data and lack of environment isolation.
Known bottlenecks
Misuse examples
- Creating extensive test sets for low-criticality functions.
- Using a single technique (e.g. only equivalence classes) everywhere.
- Not adapting tests to changed requirements.
Typical traps
- Overestimating automatability of complex scenarios.
- Ignoring non-functional requirements in test design.
- Missing linkage between tests and requirements/risks.
Required skills
Architectural drivers
Constraints
- • Limited test time budget before release
- • Legacy code complicates isolated testing
- • Partially missing or unclear requirements