【かばれっじ】

カバレッジ とは?

💡 テストが「どこまでコードをカバーしているか」を示すパーセンテージ
📌 このページのポイント
テストカバレッジの指標 文カバレッジ 85% 170/200行 分岐カバレッジ 70% 35/50分岐 関数カバレッジ 90% 27/30関数 行カバレッジ 80% 240/300行 良好(80%+) 注意(60-79%) 不足(60%未満)
テストカバレッジのイメージ
ひよこ ひよこ

カバレッジって何を測ってるの?

ペンギン先生 ペンギン先生

テストを実行したときに「コードの何パーセントが実際に動いたか」を測っているよ。行カバレッジなら「全ての行のうち、テストで実行された行が何%か」がわかる。

ひよこ ひよこ

100%を目指すべきなの?

ペンギン先生 ペンギン先生

必ずしも100%が目標ではない。ゲッター・ロギングなどのシンプルなコードのカバレッジを上げても、重要なビジネスロジックのテストが漏れていれば意味がない。80%程度でも重要な部分をしっかりテストする方が価値が高い。

ひよこ ひよこ

カバレッジが高くてもバグが出ることがある?

ペンギン先生 ペンギン先生

あるよ。カバレッジはコードが「実行された」かを示すだけで、「正しく動いた」かは別。テストが「コードが動くこと」だけ確認して期待値の検証が弱ければ、カバレッジ100%でもバグがある状態になる。

ひよこ ひよこ

チームでカバレッジの目標ってどう決めるの?

ペンギン先生 ペンギン先生

80%前後を目標にするチームが多いね。100%を目指すと、テストの作成・保守コストが爆発的に増えるし、「カバレッジを上げるためだけの意味のないテスト」が生まれやすい。実はGoogleの内部データでは「カバレッジが60%から90%に上がる間がバグ密度の低下に最も効果的」という知見があるんだ。大事なのは数字より「何をテストするか」の判断で、ビジネスロジックやエラーハンドリングのテストを優先し、getter/setterのような自明なコードのテストは後回しにするのが実践的だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
カバレッジって出てきたら「テストによってコードがどの程度実行されたかを示す割合(パーセント)」と思えばOK!
📖 おまけ:英語の意味
「Coverage」 = 網羅・カバーする範囲
💬 テストが「どの程度のコードをカバーできているか」を示す。C0(命令網羅)・C1(分岐網羅)・C2(条件網羅)という段階もある
← 用語集にもどる