[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

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

条件網羅 (C2)

pointこの用語のポイント

pointテストの方針だよ

pointすべての条件のYes/Noを1回確認できればOKだよ

スポンサーリンク

簡単に書くよ

条件網羅 (C2)とは

「どれくらい、しっかりテストする?」の方針のひとつ
であり

「条件によって分岐する処理が出てきたとき、それぞれの条件のYes/Noを全部1回は確認するぜ!」になるようにテストを設定すること
です。

image piyo

詳しく書くよ

順番に見ていきましょう。
まずは「条件分岐処理」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は、適当に読み飛ばしてください。

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

条件網羅

一般的なプログラムでは、途中で処理が条件分岐することも少なくありません。

以上を踏まえて、条件分岐な処理に対して「すべての条件のYes/Noが確認できればテストはOKだよね?」なテスト方針が「条件網羅」です。
条件網羅は「C2」と表現されることもあります。

「条件」とか言われても、よく分からない人は

「ここの値が変わったら処理の行き先が変わるかもね」な要素

と解釈してください。
「ここの値が変わったら処理の行き先が変わるかもね」な要素すべてに対して、あっちに行く場合とこっちに行く場合を最低1回は確認するのが条件網羅です。

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

条件網羅2

ピヨ太プログラムは

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


のどちらかの条件を満たすと、ケーキを食べます。

条件網羅3

次に

1.眠い

の条件を満たすと、お昼寝をします。

条件網羅4

そんな役立たずなプログラムです。

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

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

if(眠い? == Yes){
  お昼寝をする
}


条件網羅5

ここで「処理が枝分かれするための条件」に注目してください。

ピヨ太プログラムで登場する条件(枝分かれの行き先が変わる要素)は

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


の3つです。

条件網羅6

それぞれの条件は、YesかNoになります。
つまり、それぞれの判定結果が取り得る値は

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


の6パターンです。

条件網羅7

この6パターンを少なくとも1回は確認できるようにテストするのが「条件網羅」です。

例えば、ピヨ太プログラムを

1.お腹が空いた
2.嫌なことはない
3.眠い


状態にして動かします。

条件網羅8

そうすると

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


のうち

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


の3パターンが確認できます。

条件網羅9

※実際には「お腹が空いた? → Yes」の条件を満した時点で(プログラミング言語によっては)「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の条件判定が終わるので「嫌なことがあった? → No」の確認は取れていなかったりしますが、そーゆー難しいことが気になるだけの知識がある人は他のところで勉強してください。

次に、ピヨ太プログラムを

1.お腹いっぱい
2.嫌なことがあった
3.眠くない


状態にして動かします。

条件網羅10

そうすると

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


のうち

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


の3パターンが確認できます。

条件網羅11

先ほどのテストと合わせて

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


が、すべて確認できましたね。
これでテストは終わりです。

このような

すべての条件(枝分かれの行き先が変わる要素)を網羅したらテストを終わりにしよう!

なテスト方針が条件網羅です。

以上で条件網羅の説明は終わりですが、せっかくなので「判定条件網羅分岐網羅)」にも触れておきましょう。
判定条件網羅(分岐網羅)は条件網羅と似ているけど少し違うやつです。
まだ脳みそに余裕がある人は、気が向いたら覚えてあげてください。
すでに、いっぱいいっぱいな人は別の機会にした方が良いと思います。

判定条件網羅(分岐網羅)は「処理が枝分かれしたときの行き先を全部1回は確認するぜ!」になるようにテストを設定することです。

例えば、そうですね。
先ほどのピヨ太プログラムに、もう一度、登場してもらいましょう。
ピヨ太プログラムは

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

if(眠い? == Yes){
  お昼寝をする
}


な処理をする役立たずプログラムです。

条件網羅12

ピヨ太プログラムで登場する処理が枝分かれするところ(分岐)は

1.(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)
2.眠い? == Yes


の2つです。

条件網羅13

それぞれの分岐において、判定結果(Yes or No)によって処理が枝分かれします。
枝分かれの行き先は

1.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がYes
2.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がNo
3.「眠い? == Yes」の判定がYes
4.「眠い? == Yes」の判定がNo


の4つになります。

条件網羅14

この4つの行き先を少なくとも1回は確認できるようにテストするのが判定条件網羅(分岐網羅)です。

ここまでの説明を読んで、いまいち条件網羅と判定条件網羅(分岐網羅)の違いがイメージできない人は「ケーキを食べる」部分だけに注目してください。

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


の処理において

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


を確認するのが条件網羅です。

条件網羅15

それに対して

1.ケーキを食べる
2.ケーキを食べない


を確認するのが判定条件網羅(分岐網羅)です。

条件網羅16

条件網羅でテストをする場合

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


の条件で行うテストと

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


の条件で行うテストの2回やればOKです。
これで、すべての条件のYes/Noを確認できます。

条件網羅17

ただし、この2回のテストは、どちらもケーキを食べます。

1.ケーキを食べる
2.ケーキを食べない


のうち

1.ケーキを食べる

しか確認できていません。
条件網羅を満たしたからといって、判定条件網羅(分岐網羅)も満たせるとは、かぎらないのです。

条件網羅18

「枝分かれの行き先が変わる要素(条件)」に注目して確認するのが条件網羅です。
「枝分かれの行き先(分岐)」に注目して確認するのが判定条件網羅(分岐網羅)です。
似ているけど違いますよね。

image piyo2

一言でまとめるよ

まぁ「条件網羅」って単語が出てきたら「すべての条件のYes/Noを確認できたらOK!なテスト方針なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク