Skip to content

Test Design Techniques


Why Test Design Matters

Test design techniques are ways to stop testing randomly and start testing with logic. They reduce the number of useless tests while increasing the chance of finding real bugs.

Most defects cluster at edges, unexpected combinations, and state transitions — not in the middle of valid ranges.


Sections

1. Input-Based Techniques

File Technique Core Idea
Equivalence Partitioning EP Split inputs into groups; one test per group
Boundary Value Analysis BVA Test values at and around the edge of each partition
Pairwise Testing Pairwise Cover every pair of parameter values with minimum test count

2. Logic & State-Based Techniques

File Technique Core Idea
Decision Table Testing DT Map all condition combinations to expected outcomes
State Transition Testing STT Verify valid/invalid transitions in a state machine

3. Experience-Based Techniques

File Technique Core Idea
CRUD Testing CRUD Verify full data lifecycle: create, read, update, delete
Metamorphic Testing MT Check relationships between outputs when inputs change
Fuzz & Random Testing Fuzz Send unexpected/random data to expose crashes and edge cases

Quick Selection Guide

Situation Technique
Numeric ranges, categories EP + BVA
Multiple flags / conditions Decision Table
Multi-step flows, order status State Transition
Cross-browser / cross-OS matrix Pairwise
Data lifecycle integrity CRUD
Search, sorting, ML outputs Metamorphic
Input validation, security Fuzz

See also