CART · Module 4 of 5 · 12 min
Testing the tests: mutation and hostile suites
A test suite that never fails proves nothing. Mutation testing deliberately breaks the security code (remove a check, flip a comparison) and confirms that some test fails: the mutant is 'killed'.
CAIN keeps hostile mutation suites for its assurance code. A surviving mutant means a guarantee nobody is actually checking.
Bound resource use when running mutants on shared hosts; mutation runs can be heavy.
Key points
- Break the code on purpose; a test must fail.
- Surviving mutant = unchecked guarantee.
- Bound memory/CPU on shared hosts.
In the CAIN-42 codebase
cain/argus— MUT-ARGUS-* mutations in the hostile suite
Practice check
Practice 1 · choose one
A 'killed' mutant means…
Practice 2 · true or false