Mutation
Alpha. Vary is under active development and not ready for production use. Syntax, APIs, performance, and behaviour may change between releases.
| 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 |