Mutation
- Overview — What mutation testing is and why it exists, explained without jargon
- Introduction — What mutation testing is and why it matters
- Smallest Example — The simplest possible mutation-testing example: one function, one test, one mutant
- Golden path — Step-by-step guide from weak tests to strong ones
- Lie detection — Find tests that pass but never actually check anything
- Designing for mutation — How to write Vary code that mutation testing can measure well
- Oracles — How tests decide whether program output is correct
- Contracts — How contracts kill mutants automatically and how contract adequacy measures specification strength
- Operators — All 33 mutation operators: 27 AST operators (17 classic + 10 semantic) and 6 bytecode operators
- Lie detection: deep dive — Ledger demo showing how contracts and exact assertions interact with lie detection
- Observability — Runtime tracing, differential detection, and assertion groups for understanding why mutants survive
- Advanced overview — Six pillars that turn mutation scores into actionable quality signals
- Oracle analysis — Oracle graph structure, determinism classification, and oracle quality validation
- Effects & integrity — Effect classification, nondeterministic mutant filtering, runtime sealing, and integrity scoring
- Signatures & manifest — Stable mutant identities, expression IDs, and the mutation manifest for CI and tooling
- Infrastructure — Caching, quarantine, policy gates, certificates, result storage, and CLI reference
- Equivalent mutants — Detecting and handling mutants that cannot be killed because they are semantically identical to the original
- Strict mode — Evidence-based test selection, kill-first scheduling, warm workers, and the hot-swap backend
- Benchmark — Cross-mode parity benchmark that validates strict-mode optimizations preserve correctness
- Fast mode — Heuristic test-filter narrowing with a continuous validation pass that auto-falls back when miss rate is too high
- Incremental inference — Per-mutant reuse of prior outcomes when source, tests, compiler, and operators are unchanged
- Parity gate — Cross-backend parity validation: every performance backend must match the fresh-loader reference
- Survivor tail — Per-file accounting that separates the main mutant loop from the flake-detection rerun pass