mutation-testing

Verifies that tests actually catch bugs — not just execute code — by entering the COMMIT & VERIFY phase of the TDD cycle.

When to use

Never run on a red baseline — fix tests first.

Entry contract

Exit contract

Invariants

Why this shape

Code coverage measures execution, not bug detection. Mutation testing injects controlled faults (arithmetic operators, comparisons, booleans, conditionals, return values, LINQ) and verifies that tests fail. A surviving mutant reveals an untested edge case or an insufficiently assertive test.

« A test that kills no mutant is noise. DELETE IT. »

The deterministic 5-step flow (run → parse JSON → classify → kill → re-run scoped) guarantees reproducible confidence in test quality, independent of human interpretation.

Allowed customisation

See also