Requirements clarification for TDD. Use BEFORE RED phase to understand WHAT to test. Asks targeted questions to uncover ambiguities, edge cases, and acceptance criteria.
Before writing tests (RED phase), ensure requirements are understood well enough to:
Initiate clarification when:
Skip clarification when:
| Question | Purpose |
|---|---|
| What is the primary happy path behavior? | Establish main test scenario |
| What inputs does this feature accept? | Define parameter validation tests |
| What outputs/results are expected? | Define assertion expectations |
| What side effects should occur? | Identify integration points |
| Are there any business rules or constraints? | Identify validation logic |
| Question | Purpose |
|---|---|
| What happens with null/empty input? | Null handling tests |
| What are the boundary values (min/max)? | Boundary condition tests |
| What if required dependencies are unavailable? | Error handling tests |
| Are there concurrency or timing concerns? | Thread safety tests |
| Question | Purpose |
|---|---|
| What exceptions should be thrown and when? | Exception tests |
| How should invalid input be handled? | Validation tests |
| What error messages should users see? | User feedback tests |
| Question | Purpose |
|---|---|
| What interfaces/abstractions already exist? | Understand dependencies |
| What existing patterns should be followed? | Consistency with codebase |
| Are there existing tests to follow as examples? | Test style consistency |
| What is the target test scope (unit/integration)? | Test organization |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLARIFICATION PHASE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Analyze βββββΆβ Identify βββββΆβ Present β β
β β Requirements β β Gaps β β Questions β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β β
β ββββββββββββββββ β β
β β Collect βββββββββββββ β
β β Answers β β
β ββββββββββββββββ β
β β β
β ββββββββββββββββ β
β β Sufficient? β β
β ββββββββββββββββ β
β β β β
β YES NO β
β β β β
β βΌ ββββββββΆ Ask Follow-up β
β ββββββββββββββββ β
β β Proceed to β β
β β RED Phase β β
β ββββββββββββββββ β
β β
β EXIT: Requirements clear enough to define test scenarios β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
After clarification, document understanding:
## Clarified Requirements for {Feature}
### Understanding Summary
{Brief summary of what the feature should do}
### Inputs and Outputs
- **Inputs**: {List with types}
- **Outputs**: {Expected results}
- **Validation Rules**: {Business rules}
### Identified Test Scenarios
| Scenario Type | Description | Priority |
|---------------|-------------|----------|
| Happy Path | {description} | High |
| Edge Case | {description} | Medium |
| Error Case | {description} | Medium |
| Boundary | {description} | Medium |
### Ready for RED Phase