カバレッジ基準ですが,大体こんな感じでしょうか?
①命令網羅:ステートメント・カバレッジ(C0)
テスト対象のコード中の命令文のうち、テストによって何パーセントを実行したか
②分岐網羅:ブランチ・カバレッジ(C1)
テスト対象コード中にあるブランチ(分岐)の両側(trueとfalse)の何パーセントを通過したか
※条件が結合された結果のtrueとfalseを対象
③条件網羅:コンディション・カバレッジ
個々の条件文のtrueとfalseの結果を何パーセント網羅しているか
条件網羅では、個々の条件文の分岐結果を網羅したが、複数の条件文がANDやORで結合されている場合、
テスト・データの選び方によって、ブランチ・カバレッジで満たすべき分岐のtrue/falseのテストが十分にできないことがある
条件網羅は分岐網羅のカバーを前提とはしていない。
④分岐網羅・条件網羅:カバレッジ:ブランチ・コンディション・カバレッジ
条件網羅と分岐網羅を組み合わせた基準
⑤複数条件網羅:マルチコンディション・カバレッジ(複合条件カバレッジ)(C2)
コード上の分岐すべての複数条件の真偽値の組合せを何パーセント網羅したか
⑥パスカバレッジ
ループも含めた,コード上すべての経路を網羅した基準
C2とパスカバレッジが異なる点はあまり意識されていない気がします。
パスカバレッジの達成は事実上不可能ですが、C2というとパスカバレッジがされているものと捉えられているのではないか?と思います。
結構,いろんなサイトや書籍を読んだりしてまとめてみました。
が,IPA/SEC発行の品質ガイドブックによると,カバレッジ基準は8レベルあるとか…
難しいですね。
もう少し勉強したいと思います。