カバレッジ基準(かばれっじきじゅん)情報システム用語事典

coverage criteria / 網羅基準

» 2011年11月07日 00時00分 公開

 ソフトウェアテストにおいて、カバレッジ(注1)の値を導き出すときに使う算定対象と算定規則を決めた基準のこと。カバレッジテストの詳しさを決定する。

 カバレッジ(率)はテスト対象全体のうち、テストした部分(テストしようとしている部分)がどのくらいの割合を示す指標である。カバレッジ基準はこのときのテストの内容や性質を決める基準である。カバレッジ率が“網の広がり”だとすれば、カバレッジ基準は“網目の細かさ”だといえる。

 カバレッジ基準はカバレッジを算出する際に必須のものなので、仕様カバレッジや機能カバレッジのような機能ベースのテストに関しても存在するといえるが、ソフトウェアテストの現場でしばしば検討・議論されるのはコードカバレッジのそれについてである。

 コードカバレッジには、カバレッジ基準によってさまざまなものがあり、どれを選択するかによって検出できる不具合が変わってくる。

主要なコードカバレッジ


命令網羅(statement coverage:SC)

コード内のすべての命令が少なくとも1回は実行されるようにテストを設計する。欠陥検出力は弱い


判定条件網羅分岐網羅(decision coverage:DC, branch coverage:BC)

コード内の判定条件の結果として、真になる場合と偽になる場合がそれぞれ少なくとも1回は出現するようにテストを設計する


条件網羅(condition coverage:CC)

コード内の条件判定における個々の条件のついて、すべての真偽が少なくとも1回は出現するようにテストを設計する


判定条件/条件網羅(decision/condition coverage:DC/CC)

条件網羅と判定条件網羅を合わせたコードカバレッジ。個々の条件の真偽と、判定結果の真偽がそれぞれ少なくとも1回は出現するようにテストを設計する


複合条件網羅(multiple condition coverage:MCC)

コード内の判定文におけるすべての条件で、あり得るすべての結果の組み合せが少なくとも1回は出現するようにテストを設計する


経路組み合わせ網羅(path coverage)

コード内のすべてのパス(制御パス)が少なくとも1回は実行されるようにテストを設計する。一般に非現実的なテストとなる


 コードカバレッジでは、カバレッジ基準を厳くすれば検出できる欠陥の種類は増加するが、必要なテスト工数が増加する。カバレッジ基準とカバレッジ率、テスト工数はトレードオフの関係にあるので、そのバランスのとれたテスト戦略が必要である。むやみに強いカバレッジ基準を追い求めたり、やたらとカバレッジ率100%を目指したりするのではなく、カバレッジの意味するところをよく見極めて、ほかのテストやレビューとの併用も含め、総合的にテストを考えることが大切である。

(注1)カバレッジ

参考文献

▼『ソフトウェアテスト実践ワークブック??効果的かつ効率的なテスト設計のために』 レックス・ブラック=著/成田光彰=訳/日経BP社/2007年1月(『Effective and Efficient Software Testing』の邦訳)

▼『基本から学ぶソフトウェアテスト??テストの「プロ」を目指す人のために』 セム・ケイナー、ジャック・フォーク、フン・クォック・グエン=著/テスト技術者交流会=訳/日経BP社/2001年11月(『Testing Computer Software, 2nd Edition』の邦訳)

▼『ソフトウェア・テストの技法〈第2版〉』 グレンフォード・J・マイヤーズ、トム・バジェット、テッド・M・トーマス、コーリー・サンドラー=著/長尾真=監訳/松尾正信=訳/近代科学社/2006年7月(『The Art of Software Testing: 2nd ed』の邦訳)


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ