テストカバレッジ分析【test coverage analysis】
概要

カバレッジ(coverage)は「網羅率」とも訳され、テスト対象全体に対してテストが実際に実行した割合をパーセンテージで表す。例えばコード行数を基準にした場合、100行のうち80行がテスト中に実行されれば、カバレッジは80%となる。この値を確認することで、テストの妥当性を客観的に判断できるようになる。
カバレッジの測定にはいくつかの基準がある。最も基本的な「ステートメントカバレッジ」(命令網羅)は、ソースコードの各命令が少なくとも一度実行されたかを問う。より厳密な「ブランチカバレッジ」(分岐網羅)は、if文などの条件分岐においてすべての真偽経路が実行されたかを確認する。さらに複数条件の組み合わせを検証する「コンディションカバレッジ」(条件網羅)なども用いられる。
分析には専用の「カバレッジ計測ツール」を使用するのが一般的である。これはテスト実行中にプログラムの動作を監視し、どのコードが実行されたかを記録してレポートとして出力する。「JaCoCo」や「istanbul」「Coverage」といったツールがよく知られ、開発言語や環境に応じて選択される。多くの場合、CI/CDパイプラインに組み込まれ、テストの度に自動で計測・可視化される。未実行のコード領域を可視化できるため、テストケースが不足している箇所の特定や追加テストの計画にも活用される。
カバレッジが高くても、それ自体がソフトウェアの品質を保証するわけではない。コードが実行されたことと、正しい動作が検証されたこととは別の問題であり、プログラムの仕様の誤りや本来実装されるべき機能の欠落を検出することはできない。カバレッジはテストの量的な指標として参照され、テスト結果のレビューや他の品質管理手法と組み合わせて評価されることが一般的である。この考え方はソースコードだけでなく、要求仕様書や設計書を対象として適用される場合もある。