「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

「条件網羅」と「複合条件網羅」の違い

スポンサーリンク

予備知識


用語意味
条件分岐処理「これだったら、あれをして。これじゃなかったら、それをして」のように、条件を満たすかどうかでプログラムさんにやらせることを変える命令。if文とか、switch文とかを使って書く処理

それぞれの用語の意味


用語意味
条件網羅「条件によって分岐する処理が出てきたとき、それぞれの条件のYes/Noを全部1回は確認するぜ!」になるようにテストを設定すること
複合条件網羅「条件によって分岐する処理が出てきたとき、取り得るすべてのパターンを確認するぜ!」になるようにテストを設定すること

似ているところ


どちらもテストの方針を表す用語です。
「どれくらい、しっかりテストする?」です。
また、どちらも条件分岐処理における条件に注目してテスト内容を決めます。


違うところ


条件分岐の条件が複数あった場合に、条件同士をバラバラに考えるか関連付けて考えるかの違いです。

条件網羅では「それぞれの条件」に注目してパターンを網羅するようにテストをやります。
それに対して、複合条件網羅では「それぞれの条件の組み合わせ」に注目してパターンを網羅するようにテストをやります。

例えば、そうですね。
ここにピヨ太プログラムが ありました。


「条件網羅」と「複合条件網羅」の違い1

ピヨ太プログラムは

1.お腹が空いた
2.嫌なことがあった


のどちらかの条件を満たすと、ケーキを食べるプログラムです。


「条件網羅」と「複合条件網羅」の違い2

ピヨ太プログラムの処理をプログラムっぽく書くと以下のようになります。

if((お腹が空いた? == Yes) or (嫌なことがあった? == Yes)){
  ケーキを食べる
}


「条件網羅」と「複合条件網羅」の違い3

条件として取り得る値には

1.お腹が空いた? → Yes
2.お腹が空いた? → No
3.嫌なことがあった? → Yes
4.嫌なことがあった? → No


の4つの可能性があります。


「条件網羅」と「複合条件網羅」の違い4

「それぞれの条件」に注目してパターンを網羅するようにテストをするのが条件網羅です。
例えば

1.お腹が空いた? → Yes

のテストをやって「1.お腹が空いた? → Yes」の確認をやり、

1.お腹が空いた? → No
2.嫌なことがあった? → Yes


のテストをやって「2.お腹が空いた? → No」と「3.嫌なことがあった? → Yes」の確認をやり、

1.お腹が空いた? → No
2.嫌なことがあった? → No


のテストをやって「4.嫌なことがあった? → No」の確認を行えば、条件網羅になります。


「条件網羅」と「複合条件網羅」の違い5

条件として取り得る値

1.お腹が空いた? → Yes
2.お腹が空いた? → No
3.嫌なことがあった? → Yes
4.嫌なことがあった? → No


が少なくとも1回は確認できていますよね。

それに対して、複合条件網羅では「それぞれの条件の組み合わせ」に注目してパターンを網羅するようにテストをやります。
身も蓋もない言い方をすると「全部の可能性をテストするよ!」です。

具体的には、ピヨ太プログラムを

1.お腹が空いた? → Yes
2.嫌なことがあった? → Yes


にして動かすテストと

1.お腹が空いた? → Yes
2.嫌なことがあった? → No


にして動かすテストと

1.お腹が空いた? → No
2.嫌なことがあった? → Yes


にして動かすテストと

1.お腹が空いた? → No
2.嫌なことがあった? → No


にして動かすテストをやれば複合条件網羅になります。


「条件網羅」と「複合条件網羅」の違い6

条件として取り得る値の組み合わせ

1.お腹が空いた? → Yes、嫌なことがあった? → Yes
2.お腹が空いた? → Yes、嫌なことがあった? → No
3.お腹が空いた? → No、嫌なことがあった? → Yes
4.お腹が空いた? → No、嫌なことがあった? → No


が確認できていますよね。


個人的な使い分け


可能であれば、複合条件網羅でテストをやるようにしています。
あまり大きな声では言えませんが、時間が足りなかったり面倒くさいときは条件網羅でお茶を濁すときもあります。


備考


条件網羅では横着してやっていない部分もきっちりやるのが複合条件網羅です。
複合条件網羅の方が「しっかりとテストをやってるね!」なテスト方針です。

条件網羅や複合条件網羅は「C2」と表現されることも あります。
私の理解では、本来「C2」は条件網羅を指す表現です。
ただし、複合条件網羅は条件網羅の仲間と言えるでしょう。
そのせいか、複合条件網羅を意図して「C2」と表現されている場合も あります。


スポンサーリンク
書籍画像016
書籍画像049


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック
AI用語図鑑 ビジネス・開発・試験対策に使える厳選キーワード256