Evaluates test quality using Dave Farley's 8 properties. Use when reviewing tests, assessing test suite quality, or analyzing test effectiveness against TDD best practices.
Review tests as executable specifications and safety evidence. Read the tests before the implementation so their public story can stand on its own, then inspect the production boundary and repository constraints needed to judge the claims accurately.
| Property | Inspect | Strong evidence |
|---|---|---|
| Understandable | Names, arrange/act/assert flow, domain vocabulary | The behavior and failure are clear without reconstructing internals |
| Maintainable | Coupling, duplication, fixtures, public boundaries | Behavior-preserving refactors do not require unrelated test rewrites |
| Repeatable | Time, randomness, concurrency, network, shared resources | Repeated and parallel runs have controlled inputs and cleanup |
| Atomic | Shared state, ordering, cleanup, failure isolation | A test can run alone and its failure identifies one behavior |
| Necessary | Distinct risk or contract protected | Removing the test would remove meaningful evidence |
| Granular | Scope of behavior and diagnostic quality | Assertions describe one coherent outcome; related assertions may stay together |
| Fast | Measured feedback time at the appropriate layer | The suite is fast enough for its intended feedback loop |
| First | Evidence of test-first development | A captured RED run, development trace, or history demonstrates the test failed for the expected reason before production behavior changed |
Rate each property Strong, Mixed, Weak, or Not assessed.
Not assessed when only the final tree is available. Static test shape cannot prove chronology.Not assessed unless execution evidence or trustworthy timing is available.Not assessed where evidence is absent.## Test design review: [scope]
| Property | Rating | Evidence |
|---|---|---|
| Understandable | Strong/Mixed/Weak/Not assessed | [file:line and reason] |
| Maintainable | ... | ... |
| Repeatable | ... | ... |
| Atomic | ... | ... |
| Necessary | ... | ... |
| Granular | ... | ... |
| Fast | ... | ... |
| First | ... | ... |
### Findings
1. **[severity] — [problem]** (`path:line`)
Impact: [observable risk].
Smallest fix: [action].
### Validation gaps
- [Anything not assessed and the evidence needed]
No findings is a valid result; do not invent work to populate the section.
The eight properties are drawn from Dave Farley's
Properties of Good Tests.
This version is a fresh, evidence-based implementation rather than a textual
adaptation of an external skill. Read
references/source-notes.md for the exact
historical provenance and unresolved permission issue in older releases.