Mutation Testing とは?
mutation testing は、コードに小さく意図的な変更(mutation)を加えてからテストを実行し、テストが fail するかを見ることで、テストスイートが実際どれほど良いかを評価します。生き残った mutation は、テストがその変更を捕捉しなかったことを意味し、ギャップを明らかにします。それはテストが触れる行数だけでなく、テストの有効性を測定します。
なぜ重要か
高い code coverage は弱い assertion を隠すことがあります。テストは結果を検査せずに行を実行できるからです。mutation testing は、コードが壊されたらテストが実際に気づくかを問うことでこれを露呈させ、coverage だけよりもはるかに正直なテスト品質のシグナルを与えます。
関連する概念
- line coverage より厳密
- 「殺された」mutant はテストが変更を捕捉したことを意味する
- 計算コストが高いため、しばしば選択的に実行される
関連ガイド
What Is Code Coverage?Code coverage measures the percentage of source code executed by a test suite, indicating which parts are exe…
What Is a Regression Test?A regression test verifies that previously working functionality still works after a change, catching newly i…
What Is a Flaky Test?A flaky test passes and fails intermittently on the same code, usually due to timing, ordering, or environmen…