变异测试通过故意在代码中引入小的缺陷("mutants")并检查测试是否捕获它们,来评估测试套件的质量。它衡量的是测试实际上有多好地检测缺陷——超越了仅测量执行的覆盖率。
变异测试如何工作
text
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
