test-desiderata
Test Desiderata Reviewer
Analyze a project's test suite against Kent Beck's 12 test desiderata and produce a scored report with actionable top-3 improvements.
The 12 Desiderata
| # | Property | What it means |
|---|---|---|
| 1 | Isolated | Tests don't affect each other — order doesn't matter, shared state is reset |
| 2 | Composable | Tests can run in any subset or combination without breaking |
| 3 | Fast | The suite runs in seconds, not minutes — fast enough to run on every save |
| 4 | Inspiring | A passing suite genuinely increases confidence that the software works |
| 5 | Writable | Adding a new test is cheap — low ceremony, good helpers, clear patterns |
| 6 | Readable | A test communicates what it's testing and why it might fail |
| 7 | Behavioral | Tests describe what the system does, not how it's implemented internally |
| 8 | Structure-insensitive | Refactoring internals doesn't break tests unless behavior changes |
| 9 | Automated | No human steps needed — tests run in CI and locally with one command |
| 10 | Specific | A failing test pinpoints the exact problem — not just "something broke" |
| 11 | Deterministic | Tests always produce the same result — no flakiness, no timing-dependent behavior |
More from goblindegook/skills
grill-me
Use when user wants to stress-test an idea or plan, review a design, or says "grill me".
10rca
Use when asked for RCA, 5-Whys, postmortem, causal-tree analysis, or help identifying root causes for incidents, defects, outages, delays, or quality regressions.
10tdd
Use when implementing behavior changes or bug fixes where automated tests can drive the implementation, or when asked to use TDD.
8roundtable
Review a project or feature from the point of view of a set of personas. Use this when the user asks for multi-perspective critique — "review from the POV of X, Y, Z", "what would a [role] think of this?", "roundtable review", "get different perspectives on this". Each persona reads the actual source code before commenting, then all personas discuss together to agree on a prioritised top 5 list. If no personas are provided, ask the user and offer suggestions.
4