Mutation testing évalue la qualité d'une suite de tests en introduisant délibérément de petits bugs ("mutants") dans le code et en vérifiant si les tests les détectent. Il mesure l'efficacité réelle des tests à détecter les défauts — allant au-delà de la couverture, qui mesure uniquement l'exécution.
Comment fonctionne le mutation testing
1. A tool makes small changes (MUTATIONS) to the code, e.g.:
→ change + to -, > to >=, true to false, remove a statement, change a constant
→ each mutation = a deliberate "bug" (a MUTANT version of the code)
2. Run the TEST SUITE against each mutant:
→ tests FAIL → the mutant is "KILLED" (good — tests caught the bug) ✓
→ tests PASS → the mutant "SURVIVED" (bad — tests DIDN'T catch the bug) ✗
3. MUTATION SCORE = % of mutants killed → measures how good the tests are at catching bugs
