ソフトウェア開発とプロジェクト管理
a、b、c の真偽は互いに独立に決められるものとする。次の処理「if (a) { S1; } if (b) { S2; } if (c) { S3; }」で、分岐網羅(すべての判定の真と偽を少なくとも1回ずつ実行する)を満たすのに必要な最小のテストケースの数はどれか。
- A1
- B2
- C8
答えと解説を見る
正解:B. 2
3つの判定のそれぞれで、真と偽の両方を通す必要があります。(a、b、c がすべて真)と(すべて偽)の2つのテストケースで、各判定の真と偽が1回ずつ実行されるので、最小は2つです。1つ(すべて真)でも S1〜S3 のすべての命令は実行できるので命令網羅は満たせますが、偽の側の分岐(何もせずに次へ進む経路)が実行されません。8は真偽の組合せ 2³ = 8通りをすべて試す場合の数です。
- A. すべて真の1回で命令網羅は満たせますが、各判定の偽の側の分岐が実行されません。
- B. 正しい。すべて真とすべて偽の2回で、各判定の真と偽を1回ずつ通せます。
- C. 真偽の組合せ 2³ = 8通りをすべて試す場合の数で、分岐網羅にはそこまで必要ありません。