C1(判定条件網羅)
テストの方針だよ
すべての枝分かれの行き先を1回 確認できればOKだよ
簡単に書くよ
C1(判定条件網羅)(読:ハンテイジョウケンモウラ)とは
「どれくらい、しっかりテストする?」の方針のひとつ
であり
「処理が枝分かれしたときの行き先を全部1回は確認するぜ!」になるようにテストを設定すること
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「条件分岐処理」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
条件分岐処理は「これだったら、あれをして。これじゃなかったら、それをして」のように、条件を満たすかどうかでプログラムさんにやらせることを変える命令です。
少しプログラミングよりな説明をすると、if文とか、switch文とかを使って書く処理です。
一般的なプログラムでは、途中で処理が条件分岐することも少なくありません。
以上を踏まえて
条件分岐な処理に対して「全部の枝分かれの行き先が確認できればテストはOKだよね?」なテスト方針
が「判定条件網羅」です。
「分岐網羅」や「C1」と表現されることも あります。
※厳密に考えれば「判定条件網羅」と「分岐網羅」は別の意味の用語です……多分。ただし、やることは同じです。「実質的に同じ」と解釈してください。なお、どうしても違いが気になる方は「「判定条件網羅」と「分岐網羅」の違い」を ご覧ください。
例えば、そうですね。
ここにピヨ太プログラムが ありました。
ピヨ太プログラムは
1.お腹が空いた
2.嫌なことがあった
のどちらかの条件を満たすと、ケーキを食べます。
次に
1.眠い
の条件を満たすと、お昼寝をします。
そんな役立たずなプログラムです。
ピヨ太プログラムの処理を、もう少しプログラムっぽく書くと以下のようになります。
if((お腹が空いた? == Yes) or (嫌なことがあった? == Yes)){
ケーキを食べる
}
if(眠い? == Yes){
お昼寝をする
}
ここで「処理が枝分かれするところ(判定条件)」に注目してください。
ピヨ太プログラムで出てくる判定条件は
1.(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)
2.眠い? == Yes
の2つです。
それぞれの判定条件において、判定結果(Yes or No)によって処理が枝分かれします。
枝分かれの行き先は
1.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がYes
2.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がNo
3.「眠い? == Yes」の判定がYes
4.「眠い? == Yes」の判定がNo
の4つになります。
この4つの行き先を少なくとも1回は確認できるようにテストするのが「判定条件網羅」です。
例えば、ピヨ太プログラムを お腹が空いて眠い状態にします。
そうすると、まずピヨ太プログラムはケーキを食べます。
お腹が空いていますからね。
次に、お昼寝をします。
眠いですからね。
これで
1.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がYes
2.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がNo
3.「眠い? == Yes」の判定がYes
4.「眠い? == Yes」の判定がNo
のうち
1.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がYes
3.「眠い? == Yes」の判定がYes
が確認できました。
次に、残りの
2.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がNo
4.「眠い? == Yes」の判定がNo
を確認します。
今度は、ピヨ太プログラムを お腹がいっぱいで眠くもない状態にしました。
この状態でピヨ太プログラムを動かすと、ピヨ太プログラムはケーキを食べません。
お腹が空いていませんからね。
お昼寝もしません。
眠くないですからね。
これで
1.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がYes
2.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がNo
3.「眠い? == Yes」の判定がYes
4.「眠い? == Yes」の判定がNo
のうち
2.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がNo
4.「眠い? == Yes」の判定がNo
が確認できました。
先ほどのテストと合わせて
1.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がYes
2.「(お腹が空いた? == Yes) or (嫌なことがあった? == Yes)」の判定がNo
3.「眠い? == Yes」の判定がYes
4.「眠い? == Yes」の判定がNo
が、すべて確認できましたね。
これでテストは終わりです。
このような
すべての判定条件(枝分かれの行き先)を網羅したらテストを終わりにしよう!
なテスト方針が判定条件網羅です。
一言でまとめるよ
まぁ「判定条件網羅」って単語が出てきたら「『すべての枝分かれの行き先を確認できたらOK!』なテスト方針なんだな~」と お考えください。






