Skip to content
Latchkey

Mutation Testing - CI/CD用語集の定義

mutation testingは、意図的に小さなバグを注入し、テストがそれを捕まえるかを確認します。生き残ったmutantは、実行されてはいるが実際には検証されていないコードを明らかにします。

mutation testingは、コードに小さな変更(mutant)を導入してテストが失敗するかを確認することで、テストスイートの品質を測ります。テストがなお通ってしまうmutantは「survived(生存)」であり、テストのギャップを示します。

mutation scoreは行カバレッジを補完します。行カバレッジはアサーションが弱くても高くなり得るからです。

score vs カバレッジ

行カバレッジはコードが実行されたことを示し、mutation scoreはそのコードのバグが捕まえられることを示します。テストのアサーションが乏しければ、ファイルはカバレッジが満点でもmutation scoreが低いことがあります。

CIでの位置づけ

mutationの完全な実行は高コストなため、チームはpull request毎に変更されたファイルだけをmutateし、完全な分析はスケジュールで実行することがよくあります。

関連ガイド