Mutation testing menilai kualiti sesuatu test suite dengan secara sengaja memperkenalkan pepijat kecil ("mutant") ke dalam kod dan menyemak sama ada ujian menangkapnya. Ia mengukur sejauh mana ujian sebenarnya mengesan kecacatan — melangkaui coverage, yang hanya mengukur pelaksanaan.
Bagaimana mutation testing berfungsi
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
