答え イ
【解説】
図のような処理のテストケースについて考える。
この処理の条件を表にすると下のようになる。
|
x > 1 |
x > 1 |
x ≤ 1 |
y=0 |
y=0 |
@真 |
A真 |
y ≠ 0 |
B真 |
C偽 |
これをC言語で書くと
if((x > 1) || (y == 1))
{
処理
}
になります。
分岐網羅ではすべての分岐方向のテストを行えばよいので、真(yes)と偽(no)の場合の2つのテストケースを設計します。(イ)
ア |
この説明は複数条件網羅で、この例では@ABCのすべてのテストケースを設計します。 |
イ |
分岐網羅では真と偽の両方なので、この例では真となる@ABのうちのどれかと、偽となるCのテストケースを設計します。 |
ウ |
この説明は条件網羅で、この例では@とCか、AとBの組合せのテストケースを設計します。 |
エ |
この説明は命令網羅で、この例では偽の場合特に処理がないので、真となる@ABのどれか1つのテストケースを設計します。
なお、この条件文C言語のレベル(ステップ)で考えると@ABのいずれかになりますが、機械語レベルで考えると“if((x > 1) || (y == 1))”は「x > 1」が真だった場合、「y == 1」についての比較処理が行われないので、xについては偽、yについては真のテストケース(A)が正しいかもしれません。(最も、機械語レベルで命令網羅を考えると、処理系によってはAとCの2つや、@ABCのすべてのテストを行わないと命令網羅にならないかもしれません。) |