次の流れ図において,判定条件網羅(分岐網羅)を満たす最少のテストケースの組みはどれか。
(流れ図:開始→1→C→〔A>0 かつ B=0〕→Yes:A×C→C/No:2→C→合流→〔A>0 かつ C=1〕→Yes:終了/No:C^2→C→終了)
正答2
解説
正解は2です。
図の流れ図では、最初にCに1を代入します。
1つ目の判定は「A>0かつB=0」で、YesならA×CをCに代入し、NoならCに2を代入します。
2つ目の判定は「A>0かつC=1」で、Yesならそのまま終了し、NoならCの2乗をCに代入して終了します。
判定条件網羅(分岐網羅)では、二つの判定それぞれについて、YesとNoの両方の分岐を少なくとも1回ずつ通す必要があります。
【選択肢別解説】
1:× (1)A=0、B=0では、A>0が成り立たないので1つ目の判定はNoとなり、C=2なので2つ目の判定もNoです。
(2)A=1、B=1でも、1つ目の判定はNo、C=2なので2つ目の判定もNoです。
Yesの分岐を一度も通らないので、判定条件網羅を満たしません。
2:○ (1)A=1、B=0では、1つ目の判定がYesでC=1×1=1となり、2つ目の判定もYesです。
(2)A=1、B=1では、1つ目の判定がNoでC=2となり、2つ目の判定もNoです。
2ケースで四つの分岐を全て通るので、最少の組みです。
3:× (3)A=1、B=0でYesの分岐を通るので、判定条件網羅は満たします。
しかし(1)と(2)はどちらもNoの分岐しか通らず重複しており、2ケースで済む選択肢2より多いので最少ではありません。
4:× (3)A=1、B=0でYesの分岐を通るので、判定条件網羅は満たします。
しかし(1)と(2)はどちらもNoの分岐しか通らず、3ケースを使うので最少ではありません。
【ポイント】
判定条件網羅は、各判定の結果がYesになるケースとNoになるケースを、少なくとも1回ずつ含めるテストです。
前の処理で変数の値が変わる流れ図では、2つ目の判定に着いた時点の値を必ず計算しましょう。