テスト手法

テストカバレッジ てすとかばれっじ

テストカバレッジコードカバレッジラインカバレッジブランチカバレッジ品質指標80%目標
テストカバレッジ80%ってよく聞くけど根拠あるの?

簡単に言うとこんな感じ!

80%は「経験則的な目安」であって絶対的な基準ではないよ!カバレッジはあくまで「どれだけのコードがテストされたか」の指標で、100%でもテストの質が低いと意味がない。「高カバレッジで質の良いテスト」が理想だけど、コストとのバランスで現実的な目標を設定するんだ。


テストカバレッジとは

テストカバレッジ(Test Coverage / コードカバレッジ) とは、テストがコード全体のどれだけの割合を実行したかを示す指標です。

カバレッジが低ければ「テストされていないコードが多い」ことを示しますが、高いカバレッジが高品質を保証するわけではありません。テストの内容(アサーションの適切さ)も同様に重要です。


カバレッジの種類

種類内容特徴
ラインカバレッジ実行された行数の割合最も基本的な指標
ブランチカバレッジif/else等の分岐を全て通ったかラインより厳しい
ステートメントカバレッジ実行されたステートメントの割合ラインと近似
ファンクションカバレッジ呼び出された関数の割合関数の死活確認
パスカバレッジ全実行パスを網羅完全だが現実的でない

目標値の考え方

状況推奨カバレッジ
新規開発(ビジネスロジック)80〜90%
金融・医療等の高リスクシステム90%以上
UIコンポーネント60〜70%
設定ファイル・ボイラープレート対象外でも可

歴史と背景

  • 1960年代:プログラムテストの研究でカバレッジの概念が生まれる
  • TDD(2000年代):テストファーストの普及でカバレッジが開発プロセスに組み込まれる
  • 現在:Istanbul(JS)・JaCoCo(Java)・Coverage.py等のツールでCI/CD連携が標準化

関連用語