【てすとかばれっじきじゅん】

テストカバレッジ基準 とは?

最終更新:
💡 どこを通して、何を確かめたかを見る物差し

テストで何をどこまで通したか、確認したかを数えるための基準。実行可能な命令、分岐、個々の条件など、対象によって測る値が変わる。コードの網羅率が100%でも、正しい結果や要件の充足は保証されない。

📌 このページのポイント
カバレッジ:命令と、分岐を分ける例:if 条件 がtrueなら 処理Aその後は、どちらも処理Bへtruefalse処理A → 処理B全命令を実行できる処理Bだけこちらの道も確認命令100%でも、falseの道は未確認の場合がある分岐網羅では、両方の道を試す通っただけでなく、期待結果も検証しよう
elseの処理がない例。条件網羅は個々の条件の真偽を扱う別の基準で、全組合せを試す基準とは区別します。
ひよこ ひよこ
同じ100%でも、意味が違う?
ペンギン先生 ペンギン先生
そうだよ。実行した命令、通った分岐、確認した要件など、何を数えるかで意味が変わる。コードの命令網羅率と、要求された機能をテストした割合を混ぜないようにしよう。基準と対象の全体を先に決めるんだ。
ひよこ ひよこ
命令と分岐の違いは?
ペンギン先生 ペンギン先生
命令網羅は実行可能な命令を通したか、分岐網羅は制御の行き先を通したかだよ。図のifにelseがない例では、trueだけで中の処理は実行できるけれど、falseの道は未確認。ソースの全行を通したことと、すべての分岐を試したことは同じではないんだ。
ひよこ ひよこ
条件網羅は、全部の組合せ?
ペンギン先生 ペンギン先生
個々の条件を真と偽で試す基準だよ。たとえばAとBという条件なら、各条件の結果を見る。真偽のすべての組合せを試す多重条件網羅とは区別する。条件網羅だけで判定全体の両結果を必ず通すとは限らないので、単純な厳しさの順に並べないことが大切だね。
ひよこ ひよこ
80%を目標にすればいい?
ペンギン先生 ペンギン先生
どの開発でも共通の正解になる割合はないよ。障害の影響、変更箇所、未実行のコード、必要な基準を考えて決めよう。100%でも、通しただけで期待結果を確認していなければ不十分。仕様にあるのに未実装の機能は、コードの網羅率だけでは見つけられない場合もあるんだ。
ひよこ ひよこ
ツールの数字は、どう読むの?
ペンギン先生 ペンギン先生
ツールが命令・行・分岐の何を数えるか、除外設定や実行しないコードをどう扱うかを確認するよ。Coverage.pyでは--branchで分岐も測れ、除外した分岐は集計が変わる。率が下がった理由だけでなく、重要な道や境界値を試し、結果を検証できているかを見よう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「テストカバレッジ基準」って出てきたら「テストで何をどこまで確認したかを数える物差し」と思えばだいたいOK!
📖 おまけ:英語の意味
「Test Coverage Criteria」 = テストの網羅基準
💬 coverageはカバーする範囲、criteriaは基準の複数形。何を数えるかを決めてから網羅率を読むことが大切だよ。

参考資料

← 用語集にもどる