【てすとかばれっじきじゅん】
テストカバレッジ基準 とは?
💡 テストの「穴」がどこにあるか、数字で見える化する物差し
📌 このページのポイント
- 命令網羅(C0)はすべての命令文を1回以上実行したかを測る
- 分岐網羅(C1)はすべての分岐のtrue/falseを通過したかを測る
- 条件網羅(C2)はすべての条件式の真偽パターンを網羅したかを測る
- カバレッジ100%でもバグがないとは限らないが、テストの抜け漏れ発見に有効
コードカバレッジとテストカバレッジ基準って同じものなの?
C0、C1、C2って何なの?
C0は命令網羅で「すべての行を通ったか」、C1は分岐網羅で「if文のtrue/falseを両方通ったか」、C2は条件網羅で「複合条件の各部分の真偽を網羅したか」だよ。数字が大きいほど厳密なんだ
どのレベルを目指せばいいの?
一般的なWebサービスならC1(分岐網羅)80%以上が現実的な目標だよ。安全性が重要なシステム(航空、医療)ではMC/DC(修正条件判定網羅)が求められることもあるんだ
カバレッジ100%ならバグなしって言えるの?
残念ながら言えないよ。カバレッジは「通過したか」だけで「正しく検証したか」は分からないからね。assert文がないテストでも通過すればカバレッジは上がる。ミューテーションテストと組み合わせると本当の品質が見えてくるよ
ツールはどんなものがあるの?
まとめ:ざっくりこれだけ覚えればOK!
「テストカバレッジ基準」って出てきたら「テストがコードや仕様をどれだけ網羅しているかを測る物差し」と思えればだいたいOK!
📖 おまけ:英語の意味
「Test Coverage Criteria」 = テスト網羅基準
💬 coverageは「カバー範囲」、criteriaは「基準(複数形)」だよ。テストの守備範囲を測る物差しという意味だね