平成20年 春期 ソフトウェア開発技術者 午前 問45

テストケース設計技法の分岐網羅の説明として、適切なものはどれか。

 ア  すべての判定条件中にある個々の条件式の起こり得る真と偽の組合せと、それに伴う判定条件を網羅するようにテストケースを設計する。
 イ  すべての判定条件文において、結果が真になる場合と偽になる場合の両方がテストされるようにテストケースを設計する。
 ウ  すべての判定条件文を構成する各条件式が、真になる場合と偽になる場合の両方がテストされるようにテストケースを設計する。
 エ  すべての命令を少なくても、1回以上実行するようにテストケースを設計する。


答え イ


解説
図のような処理のテストケースについて考える。
 
この処理の条件を表にすると下のようになる。

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のすべてのテストを行わないと命令網羅にならないかもしれません。)


キーワード
・分岐網羅

キーワードの解説

戻る 一覧へ 次へ