Skip to content
Latchkey

Mutation Testing とは?

mutation testing は、コードに小さく意図的な変更(mutation)を加えてからテストを実行し、テストが fail するかを見ることで、テストスイートが実際どれほど良いかを評価します。生き残った mutation は、テストがその変更を捕捉しなかったことを意味し、ギャップを明らかにします。それはテストが触れる行数だけでなく、テストの有効性を測定します。

なぜ重要か

高い code coverage は弱い assertion を隠すことがあります。テストは結果を検査せずに行を実行できるからです。mutation testing は、コードが壊されたらテストが実際に気づくかを問うことでこれを露呈させ、coverage だけよりもはるかに正直なテスト品質のシグナルを与えます。

関連する概念

  • line coverage より厳密
  • 「殺された」mutant はテストが変更を捕捉したことを意味する
  • 計算コストが高いため、しばしば選択的に実行される

関連ガイド