【かばれっじ】
カバレッジ とは?
最終更新:
💡 テストで通った場所と、まだ通っていない場所を知る
テストなどでコードのどの部分が実行されたかを測る指標。実行された行や分岐の割合を確認し、未実行の箇所を探す。指標によって数える対象が異なり、100%でも結果の正しさや不具合がないことを保証しない。
📌 このページのポイント
- 行・文・分岐など、何を数える指標か確認する
- 未実行の箇所を見つけ、テストの不足を調べる
- 実行したことと、正しく検証したことは違う
- 目標は重要度や変更の頻度などに合わせて決める
カバレッジが75%って、どういう意味?
何を数えるかによるよ。測定対象となる実行可能な行が8行で、そのうち6行をテストで通ったなら、行カバレッジの例として75%だね。コメントや空行を含むファイル全体の長さではない。ツールの指標と、対象や除外の設定も確認しよう。
行を全部通れば、条件分岐も十分?
そうとは限らないよ。ifの条件が真の場合だけで、各行を通れても、偽の場合の経路が未実行のことがある。Coverage.pyは、ある行から進む先を調べる分岐の測定にも対応している。行と分岐では、見つけられる不足が違うんだ。
100%なら、バグはない?
実行されたことを示すだけで、結果が正しかったかまでは示さないよ。間違った計算をしていても、期待する値と照合していなければ見逃す。境界の値や異常な入力、必要な結果を検証するテストも大切だね。数値だけで合格にしないでね。
何%以上を目指せばよいの?
すべての製品に共通する正解はないよ。Googleのテスト資料も、業務への影響、変更の頻度、複雑さなどに合わせて考えるとしている。重要な処理の未実行箇所を見つけ、許容できるリスクか判断しよう。一律に80%なら安全とは言えないんだ。
数字を上げる以外に、どう使う?
まとめ:ざっくりこれだけ覚えればOK!
「カバレッジ」って出てきたら「テストでコードのどこまで通ったかを表す指標」と思えばだいたいOK!
📖 おまけ:英語の意味
「Coverage」 = 覆う範囲・網羅の度合い
💬 このページではコードのテストカバレッジを扱うよ。行や分岐など、数える対象によって割合は変わるんだ。