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

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

判定条件/条件網羅

pointこの用語のポイント

pointテストの方針だよ

point判定条件網羅+条件網羅だよ

pointすべての枝分かれの行き先を確認するよ

pointすべての条件のYes/Noを確認するよ

スポンサーリンク

簡単に書くよ

判定条件/条件網羅とは

「判定条件網羅と条件網羅の両方を満たすようにテストしますよ」のこと。
つまり

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

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

image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「判定条件網羅」と「条件網羅」について説明します。
「そんなの説明されなくても知ってるよ!」な人は、ここから先を読む必要はありません。
判定条件網羅と条件網羅の両方を満たすようにするのが「判定条件/条件網羅」です。

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

……と、いきなり言われても分かりませんよね。
大丈夫です。
例を挙げて説明します。

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

判定条件/条件網羅

ピヨ太プログラムは

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


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

判定条件/条件網羅2

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

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

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


判定条件/条件網羅3

ピヨ太プログラムにおける枝分かれの行き先(分岐)は

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


の2つです。

判定条件/条件網羅4

枝分かれの行き先が変わる要素(条件)は

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


の4パターンです。

判定条件/条件網羅5

すべての枝分かれの行き先(分岐)を最低1回は確認するのが判定条件網羅です。
具体的には

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


の2パターンを確認できるように条件を設定してテストを行います。

判定条件/条件網羅6

例えば

1.お腹が空いた? → Yes

のテストと

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


のテストをやれば判定条件網羅です。

判定条件/条件網羅7

すべての分岐が確認できていますよね。

それに対して、すべての枝分かれの行き先が変わる要素(条件)を最低1回は確認するのが条件網羅です。
具体的には

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


の4パターンを確認できるように条件を設定してテストを行います。

判定条件/条件網羅8

例えば

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


のテストと

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


のテストをやれば条件網羅です。

判定条件/条件網羅9

すべての条件に対するYes/Noが確認できていますよね。

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

以上が判定条件網羅と条件網羅の説明です。

判定条件網羅:「枝分かれの行き先(分岐)」に注目してテスト
条件網羅:「枝分かれの行き先が変わる要素(条件)」に注目してテスト


です。

さて、いよいよ本題の「判定条件/条件網羅」の説明に入ります。

先ほどの条件網羅の説明を思い出してください。

ピヨ太プログラムを条件網羅でテストする場合、2パターンのテストを行いました。

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


のテストと

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


のテストです。
この2パターンをテストすれば条件網羅になります。

判定条件/条件網羅10

ただし、この2パターンのテストは、どちらも

1.ケーキを食べる

ルートに入ります。

2.ケーキを食べない

ルートには入りません。

判定条件/条件網羅11

つまり、この条件網羅のテストは判定条件網羅ではありません
判定条件網羅となるためには

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


の2パターンを確認できる必要がありますが「ケーキを食べない」が確認できていないからです。

せっかくなので「ケーキを食べない」も確認しておきましょうか。
追加で

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


のテストをやりました。

判定条件/条件網羅12

これで「ケーキを食べない」も確認できました。
めでたし、めでたし。

ここまでの流れをまとめます。
やったテストは

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


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


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


の3パターンです。

判定条件/条件網羅13

この3パターンのテストによって

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


の分岐と

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


の条件が、すべて確認できました。

判定条件/条件網羅14

よって、今回やった3パターンのテストは

判定条件網羅であり条件網羅でもある

と言えます。

このような

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

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

なお、判定条件/条件網羅は「判定条件・条件網羅」のように表現される場合もあります。
そこら辺の表記ゆれは、ゆるく解釈してください。
本質は

判定条件網羅と条件網羅の両方を満たすよ!

です。

image piyo2

一言でまとめるよ

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

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