「判定条件網羅」と「分岐網羅」の違い
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 判定条件網羅 | 「処理が枝分かれしたときの行き先を全部1回は確認するぜ!」になるようにテストを設定すること |
| 分岐網羅 | 「処理が枝分かれしたときの行き先を全部1回は確認するぜ!」になるようにテストを設定すること |
似ているところ
実質的に同じです。
どちらも「すべての枝分かれの行き先を確認できたらOK!」なテスト方針です。
例えば、そうですね。
ここにピヨ太プログラムが あったとしましょう。

ピヨ太プログラムは
1.お腹が空いた
2.嫌なことがあった
のどちらかの条件を満たすと、ケーキを食べます。

そんな役立たずなプログラムです。
ピヨ太プログラムの処理を、もう少しプログラムっぽく書くと以下のようになります。
if((お腹が空いた? == Yes) or (嫌なことがあった? == Yes)){
ケーキを食べる
}

ピヨ太プログラムにおける枝分かれの行き先(分岐)は
1.ケーキを食べる
2.ケーキを食べない
の2つです。

すべての枝分かれの行き先(分岐)を最低1回は確認するのが判定条件網羅であり分岐網羅です。
具体的には
1.ケーキを食べる
2.ケーキを食べない
の2パターンを確認できるように条件を設定してテストをやります。

違うところ
「判定条件」と「分岐」の違いです。
誰かに聞いたわけではありませんが、厳密に考えれば、用語の意味は違うと思います。

先ほど
1.ケーキを食べる
2.ケーキを食べない
の2パターンを確認できるように条件を設定してテストをやるのが判定条件網羅であり分岐網羅だと説明しました。

実は、この「2パターン」は2通りの解釈ができます。
それは
1.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定結果が「そうだよ!」の流れ
2.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定結果が「違うよ!」の流れ
の「2パターン」と
1.「ケーキを食べる」処理に入る流れ
2.「ケーキを食べない」処理に入る流れ
の「2パターン」です。
どっちと解釈しても、実際に起きることは同じですけどね。
細かく見ると
「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定結果が「そうだよ!」か「違うよ!」に枝分かれ
することにより
「ケーキを食べる」か「ケーキを食べない」に処理が枝分かれ
します。
この話における
「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定結果が「そうだよ!」か「違うよ!」に枝分かれ
に注目してテストをやるのが判定条件網羅です。

もう一方の
「ケーキを食べる」か「ケーキを食べない」に処理が枝分かれ
に注目してテストをやるのが分岐網羅です。

……と、私は理解しています。
個人的な使い分け
使い分けしていません。どちらも同じ意味で使っています。
ただし
1.「判定条件網羅」よりも「分岐網羅」の方がパッと見でイメージしやすい
2.「判定条件網羅」という表現はパッと見で「条件網羅」と紛らわしい
の理由から、できるだけ「分岐網羅」と表現するようには意識しています。
備考
実質的に同じなので、違いを気にしない方が幸せになれると思います。
「あー!この人、判定条件網羅っぽいのを分岐網羅って言ってるー!」とか指摘しちゃうと多分ケンカになりますよ。






