コラム

  • 2021.05.18
  • ソフトウェアテスト
  • #テスト技法
  • #基礎知識

カバレッジとは?ソフトウェア開発における意味と3つの基準について解説

IT開発に関わっていれば聞いたことがあるけれど、いざ説明するとなると難しい言葉、カバレッジについていま一度、整理していきましょう。

カバレッジ(coverage)とは

モニタリングのイメージ図

カバレッジは、対象範囲に対して全体の内どれくらい網羅しているかを示す指標です。
さまざまな業界で利用される言葉ではありますが、ソフトウェア開発の領域では主に、テストの実施状況をモニタリングする方法を示す言葉として使われます。ホワイトボックステスト時に用いられることが多く、論理構造全体に対してどれだけの実行ができたかを網羅性の尺度としています。網羅性を把握することがソフトウェアの品質において重要な指標になります。
このカバレッジには、パターンの網羅の度合に応じた基準によってさまざまな種類がありますが、どれも分母を全体、分子を対象範囲とした際に算出される割合がカバレッジ率になります。

テスト計画入門動画

ソフトウェアの「カバレッジ」

カバレッジ基準の分岐図

カバレッジ基準の種類として、さまざまなものがありますが、ソフトウェアテストとしてよく利用されるのは、以下の3つのカバレッジになります。

カバレッジ基準の種類の図

着目する要素によって基準は異なります。

ステートメントカバレッジ(C0)

「命令文」に着目したカバレッジ基準を「ステートメントカバレッジ(C0)」と呼び、すべての命令文を最低一度は通るようにテストします。命令文を一度通るだけなので、この基準でのカバレッジレベルは低く、テスト量も比較的少なくなるため導入しやすい基準かもしれません。しかし、ステートメントカバレッジとしては100%網羅したとしても、カバレッジ外のルートに不具合がある場合はテスト漏れになる可能性があります。

デシジョンカバレッジ(C1)

「分岐した経路」に着目したカバレッジ基準を「デシジョンカバレッジ(C1)」と呼び、すべての経路を最低一度は通るようにテストします。分岐した経路をすべて通るので、ステートメントカバレッジよりもカバレッジレベルが高いことが分かります。その分テスト量も多くなります。

複合条件カバレッジ(C2)

「条件」に着目したカバレッジ基準を「複合条件カバレッジ(C2)」と呼び、各処理の条件に含まれるすべてのパターンを満たすようにテストします。すべての条件パターンを満たすこの基準は上位のカバレッジレベルですが、上位のカバレッジレベル基準は下位のカバレッジ基準を包含する関係にあります。複合条件カバレッジを満たしている場合は、デシジョンカバレッジ、ステートメントカバレッジも確保されます。

金融の「カバレッジ」

金融領域におけるカバレッジとは「対象銘柄」に加えることを意味し、アナリストなどが対象企業に対して業績見通しの調査・分析を行い、評価する用語になります。

マーケティングの「カバレッジ」

マーケティング領域におけるカバレッジとは「ユーザー数の割合」を指すことが多く、商品やサービス、メディアのユーザー数から算出し、どのくらいをカバーできているのかなど、マーケティング戦略に活用します。
その他ほかにも、市場占有率として対象企業の売上状況から市場全体における占有率はどのくらいなのか、カバレッジを算出し活用するパターンなどもあります。

テスト計画入門動画

まとめ

カバレッジは使われる領域によって詳細な意味では異なりますが、基本的には「どれだけカバーしているか」と考えるとよいかと思います。カバーしているか、していないかで善し悪しを決めるのではなく、どの文脈で使われているかが重点かもしれません。
また、ソフトウェア開発のカバレッジでご紹介したカバレッジ率は、高ければ高いほど必ず品質が高いというわけではありません。重要ではありますが、指標として捉えたうえで品質の分析に活用いただければと思います。

資料ダウンロード/動画視聴

ソフトウェアテスト入門動画

テスト計画入門動画

SHIFTサービス資料

テストサービス導入事例集

関連サービス