あるプログラムについて,流れ図で示される部分に関するテストを,命令網羅で実施する場合,最小のテストケース数は幾つか。
ここで,各判定条件は流れ図に示された部分の先行する命令の結果から影響を受けないものとする。
正答1
解説
正解は1です。
命令網羅(ステートメントカバレッジ)は、すべての命令を少なくとも1回は実行するようにテストケースを作る方法です。
図の流れ図には、上から順に3つの判定があり、それぞれ3つ、2つ、3つの処理に分岐した後、1本に合流します。
【計算】
1件のテストケースは、各判定で分岐先を1つずつ通り、3つの処理を実行します。
判定どうしは影響し合わないので、各判定の分岐先を自由に組み合わせられます。
1番目と3番目の判定には3つの分岐先があるので、少なくとも3件が必要です。
1件目で各判定の1つ目の処理、2件目で2つ目の処理、3件目で1番目と3番目の判定の3つ目の処理と2番目の判定の任意の処理を通ります。
これで3件ですべての命令を1回以上実行できます。
【選択肢別解説】
1:○ 最も分岐の多い判定の分岐数3が、必要なテストケースの最小数です。
上の組合せで、3件ですべての命令を実行できます。
2:× 6件でもすべての命令を実行できますが、必要以上に多い件数です。
上のとおり3件ですべての命令を実行できるので、6件は最小ではありません。
3:× 8件は、分岐数の合計(3+2+3)です。
1件のテストケースで3つの判定を同時に通るので、合計する必要はありません。
4:× 18件は、分岐の組合せ(3×2×3)をすべて試す場合の数です。
すべての経路を通す経路網羅の考え方であり、命令網羅の最小数ではありません。
【ポイント】
命令網羅の最小数は、判定が独立なら「最も分岐の多い判定の分岐数」になります。
全経路の組合せは掛け算になることとあわせて覚えましょう。