【基本情報】命令網羅・条件網羅・判定条件網羅・複数条件網羅とは?やさしく解説!

エンジニア

こんにちは!
今回は、プログラムのテスト技法(ホワイトボックステスト)の中でよく登場する

  • 命令網羅(ステートメントカバレッジ)
  • 条件網羅(コンディションカバレッジ)
  • 判定条件網羅(ディシジョン/コンディションカバレッジ)
  • 複数条件網羅(Multiple Condition Coverage)
    の4つについて、図や例とともにやさしく紹介していきます。

🔍 そもそも「網羅」って?

「網羅(カバレッジ)」とは、テストケースがどれだけコードのパターンをカバーしているかを示す考え方です。
テストの抜け漏れを防ぎ、バグの発見率を高めるために重要です。


① 命令網羅(ステートメント網羅)

✔ 定義

すべての命令(文)を最低1回は実行するようにテストケースを作成する。

✔ イメージ図

if (x > 0) {
    System.out.println("正の数");
}
System.out.println("処理終了");

→ この場合、x > 0 のテストだけでは System.out.println("正の数") が実行されない可能性があります。
x = 1、x = -1 のようなケースを作ることで、全命令が網羅されます。


② 条件網羅(コンディション網羅)

✔ 定義

すべての条件式の真(true)と偽(false)の両方を一度ずつ実行する。

✔ 例

if (a > 0 && b > 0) {
    System.out.println("OK");
}

この条件式には2つの部分条件(a > 0b > 0)があります。
それぞれに対して true/false 両方の結果を得るテストが必要です。

aba>0b>0
11TT
-11FT
1-1TF

→ これで両方の条件を網羅できます。


③ 判定条件網羅(判定網羅+条件網羅の組み合わせ)

✔ 定義

  • 判定結果(if文などの最終的な分岐)がtrueとfalseを両方実行
  • かつ、すべての条件もtrue/falseの両方を実行

つまり、判定式全体の動きと、構成する各条件の動きの両方を確認する網羅です。

✔ 例

if (a > 0 && b > 0) {
    // 判定部分
}
  • 判定全体:true/false
  • a > 0:true/false
  • b > 0:true/false

→ 最低3パターンほど必要になります。


④ 複数条件網羅(Multiple Condition Coverage)

✔ 定義

条件内のすべての部分条件の組合せをすべて網羅する方式。

→ 最も厳密でテストケース数が多くなる。

✔ 例(aとbの2条件)

if (a > 0 && b > 0) {
    // 実行されるか
}

必要な組合せ:

a > 0b > 0判定結果
TTT
TFF
FTF
FFF

4通りのすべてを確認。

条件が3つになると 2³=8通り、4つなら 16通りと増えるため、
複雑すぎるコードに対しては現実的でない場合も。


✅ まとめ表

網羅種類概要テスト数特徴
命令網羅すべての命令を1回以上実行する少ない最低限のテスト
条件網羅各条件をtrue/falseで1回ずつ評価条件の動作をチェック
判定条件網羅条件・判定どちらもtrue/falseをカバーやや多い品質と効率のバランス
複数条件網羅条件のすべての組合せをテスト多い網羅性は最強、数も多い

🧠 試験対策ポイント

  • 命令網羅:一番シンプル。命令が実行されるか
  • 条件網羅:各条件のtrue/falseを確認
  • 判定条件網羅:条件も判定も両方チェック
  • 複数条件網羅:すべての組合せ。テストパターンが爆増する

「効率 vs 網羅性」の違いが問われることもあるので、それぞれの特徴を整理しておきましょう!


✍️ 最後にひとこと

ソフトウェア開発において、テストの品質はプロダクトの品質に直結します。
これらの網羅基準は、開発現場でも頻出なので、試験勉強だけでなく実務でも役立つ知識です!

ぜひ、コードを書きながら「これはどの網羅が必要かな?」と考えてみてくださいね。

それでは、次回もお楽しみに!🧪

タイトルとURLをコピーしました