
命令網羅(C0)
処理を全部通る。
処理①if (A) { 処理②}
処理③
処理①、処理②、処理③の処理を全部通ればいいので、A=trueのデータを用意すれば1回のテストでOK。
処理① ←2回とも通るif (A) { 処理② ←1回だけ通る}else{ 処理③ ←1回だけ通る}
処理④ ←2回とも通る
この場合、A=trueだけだと、処理③を通らないので、命令網羅をするためには、A=trueとA=falseのデータで2回テストしないといけない。
分岐網羅(判定条件網羅)(C1)
分岐を全部試す。分岐の通り道を全部見る。
処理①
if (A) { 処理② ←A=trueの時に通る}else{ 処理③ ←A=falseの時通る}
処理④
説明通り、分岐したところを全部通る必要がある。
ちょっとひっかけ分岐網羅①
処理①
if (A) { 処理② ←A=trueの時に通る。}
A=falseで↑を通らないのも試す必要がある(けど何も起こらないw)
処理③
命令網羅の時はA=trueだけ試せばよかったけど、elseはなくても、A=falseも試さないといけない。
ちょっとひっかけ分岐網羅②
処理①
if (A and B) { 処理② ←A=true / B=trueの時だけ通る}else{ 処理③ ←ABの組み合わせは3パターンあるけど1パターンだけでOK}
処理④
とりあえず処理①と処理②を1回ずつ通れば良いので、2回テストすればよい。
ABの真偽は処理①を通る(A=true / B=true)は必ず必要だけど、処理②は(A=true / B=false)、(A=false/ B=true)、(A=false/ B=false)のどれか一つで網羅できる。
テストパターン2つ
- (A=true / B=true)←処理②を通るためには必須
- (A=true / B=false)、(A=false/ B=true)、(A=false/ B=false)のどれか一つ
条件網羅(C2)
分岐で通るところじゃなくて、分岐する時の条件の中身を見る。
分岐網羅の上二つと、テスト回数は同じだけど、ひっかけ分岐網羅②の場合はちょっと違う。
処理①
if (A and B) {
処理②
}else{ 処理③ ←A=true / B=false , A=false / B=trueで同じ処理を2回通る}
処理④
Aのtrueとfalse、BとTrueとFalseをそれぞれ1回試せばいいので、上のように処理②を通らなくても処理③を2回通って条件は網羅できる。
テストパターン
- (A=true / B=false)
- (A=false / B=true)
処理①
if (A and B) { 処理② ←A=true / B=trueで通る}else{ 処理③ ←A=false / B=falseで通る}
処理④
もちろん(A=true / B=true)と(A=false/ B=false)で、処理②と処理③を1回ずつ通ってもOK
テストパターン
- (A=true / B=true )
- (A=false/ B=false)
※Cなど条件が増えればその分パターンも増える
判定条件・条件網羅
分岐網羅+条件網羅。分岐をすべて通ることと条件(複数あれば全部の)true,falseを試すことが必要。
AND条件
処理①
if (A and B) { 処理② ←1回目:A=true / B=trueで通る}else{ 処理③ ←2回目または3回目}
処理④
- 処理②と処理③を通す(分岐網羅OK)
- AとBのそれぞれのtrue、falseを試す(条件網羅)
というのを満たすようにテストする。
テストパターン1(2回で完了)
- (A=true / B=true )←処理②を通るためには必須
- (A=false/ B=false)
テストパターン2(3回で完了)
- (A=true / B=true )←処理②を通るためには必須
- (A=true / B=false)
- (A=false/ B=true )←Aのfalseを試すためにもう1回
OR条件
処理①
if (A or B) { 処理② ←1回目:A=true / B=false で通る。 2回目:A=false / B=trueで通る}else{ 処理③ ←3回目:A=false / B=falseで通る}
処理④
A=true / B=falseを試すなら、
テストパターン1(2回で完了)
- (A=true / B=true )
- (A=false/ B=false)←処理③を通るためには必須
テストパターン2(3回で完了)
- (A=true / B=false)
- (A=false/ B=true )
- (A=false/ B=false)←処理③を通るためには必須
※1回目、2回目と書いているが順番は関係ない
※Cなど条件が増えればその分パターンも増える
複数条件網羅(MCC)
すべての条件を試す必要がある
処理①
if (A or B) { 処理② }else{ 処理③ }
処理④
条件のすべてのパターンを試す
テストパターン(4回で完了)
- (A=true / B=true )
- (A=true / B=false)
- (A=false/ B=true )
- (A=false/ B=false)
※1回目、2回目と書いているが順番は関係ない
※Cなど条件が増えればその分パターンも増える