制御フローテストのカバレッジ基準について


制御フローテストで着目する以下の3要素によって、カバレッジ基準(網羅率の基準)が変わります。
①命令文
②分岐した経路
③条件

①ステートメントカバレッジ(命令文)

制御フローテストで「命令文」に着目した場合は、「ステートメントカバレッジ」と呼びます。
このカバレッジ基準では、すべての命令文(分岐と処理)を最低1度は通る必要があります。

②デシジョンカバレッジ(分岐した経路)

制御フローテストで「分岐した経路」に着目した場合は、「デシジョン(判定)カバレッジ」と呼びます。
このカバレッジ基準では、分岐起点のステートメント後のすべての経路を最低1度は通る必要があります。
例えば、単純なYes/Noの分岐がある場合は、YesとNoの計2経路を通れば良いです。

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

制御フローテストで「条件」に着目した場合は、「複合条件カバレッジ」と呼びます。
このカバレッジ基準では、条件に含まれるすべての条件パターンを満たす必要があります。
例えば、分岐条件が「A = True AND B = True」の場合のテスト条件の組み合わせは以下の4通りになります。
・A = True, B = True
・A = True, B = False
・A = False, B = True
・A = False, B = False

各カバレッジレベルについて

3種類のカバレッジ基準を紹介しましたが、①〜③の順番でテスト回数が多くなります。
また、各カバレッジ基準は上位レベルのものが下位レベルのカバレッジ基準を包含する関係にあります。
例えば、「複合条件カバレッジ」が100%であれば、下位レベルの「ステートメントカバレッジ」と「デシジョンカバレッジ」のカバレッジが100%になります。

参考

■【この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践
https://www.amazon.co.jp/dp/B00U17809A