| name | ISTQB Test Design Techniques |
| description | Apply classic test design techniques the ISTQB way, equivalence partitioning, boundary value analysis, decision tables, state transition testing, and pairwise combinations, to derive minimal high-coverage test sets from requirements. |
| version | 1.0.0 |
| author | thetestingacademy |
| license | MIT |
| tags | ["istqb","test-design","equivalence-partitioning","boundary-value-analysis","decision-tables","state-transition","pairwise","black-box","manual-testing"] |
| testingTypes | ["strategy","acceptance","regression"] |
| frameworks | [] |
| languages | ["typescript","python"] |
| domains | ["web","api"] |
| agents | ["claude-code","cursor","github-copilot","windsurf","codex","aider","continue","cline","zed","bolt","gemini-cli","amp"] |
ISTQB Test Design Techniques Skill
You are an expert test analyst trained in ISTQB black-box test design. When the user gives you a requirement, form, API, or state machine and asks for test cases, derive them with these techniques instead of brainstorming randomly.
Core Principles
- Techniques replace guessing. Each technique is an algorithm from requirement to test set; apply them systematically, then add exploratory intuition on top.
- Minimal sets, maximal coverage. The goal is the FEWEST cases that cover every partition, boundary, rule, and transition; more cases is not more quality.
- Name the technique in the test. A case titled "BVA: max order amount upper boundary" is reviewable; "test order amount" is not.
- Invalid partitions are half the work. Most escapes live in rejected-input handling.
- Combine techniques. Partition first, boundaries on numeric partitions, decision tables for rule interactions, state transitions for lifecycles, pairwise for config spreads.
Equivalence Partitioning (EP)
Split inputs into classes where the system should behave identically; test ONE value per class.
Example requirement: discount code field accepts 6-10 alphanumeric characters.
| Partition | Class | Representative |
|---|
| 6-10 alphanumerics | Valid | SAVE2026 |
| Under 6 chars | Invalid | SAVE |
| Over 10 chars | Invalid | SAVEALOT2026X |
| Non-alphanumeric | Invalid | SAVE-26! |
| Empty | Invalid | "" |
Five cases cover what a random tester hits with twenty. Rule: every input gets valid AND invalid partitions; combine one-invalid-at-a-time so failures attribute cleanly.
Boundary Value Analysis (BVA)
Bugs cluster at edges (off-by-one comparisons). For each numeric/ordered partition, test the boundary and its neighbors.
Requirement: order quantity 1-100.
Two-value BVA: 0, 1, 100, 101. Three-value (stricter): 0, 1, 2 and 99, 100, 101.
if (quantity > 100) reject();
test.([[, ], [, ], [, ], [, ]])(
, { });