エンベデッドシステムスペシャリスト 2013年 午前2 問21
問題文
プログラムの誤りの一つに、繰返し処理の終了条件としてとすべきところをとコーディングすることがある。このような誤りを見つけ出すために有効なテストケース設計技法はどれか。ここで、は変数、は定数とする。
選択肢
ア:限界値分析(正解)
イ:条件網羅
ウ:同値分割
エ:分岐網羅
🔒 解説は解答すると表示されます
限界値分析【午前2解説】
正解の理由
この誤りは、条件が成立する境目である の扱いが、「以上」と「より大きい」で異なることから生じます。
なら のときも条件が成立しますが、 では成立しません。したがって、境界値とその前後の値をテストする限界値分析が有効です。この問題では、アの限界値分析が適切です。
解法ステップ
- 正しい条件と誤った条件を比べます。
正しい条件は 、誤った条件は です。 - 2つの条件の判定が異なる値を探します。
のとき、正しい条件は真、誤った条件は偽になります。 - 境界値 と、その前後の値をテストします。
例えば整数であれば、、、 を確認します。
選択肢別の誤答解説
- ア 限界値分析
値の境目やその直前・直後をテストする技法です。 での判定の違いを発見できるため、正解です。 - イ 条件網羅
判定条件を構成する個々の条件について、真と偽の両方を少なくとも一度確認する技法です。境界値そのものを重点的に調べる技法ではありません。 - ウ 同値分割
入力値を、同じような処理結果になると考えられるグループに分け、代表値をテストする技法です。境界の直前・直後を狙うのが主目的ではありません。 - エ 分岐網羅
判定結果による各分岐を、少なくとも一度実行する技法です。各分岐を通ることは確認できますが、 のような境界値を必ず試すとは限りません。
よくある誤解
- 条件網羅と限界値分析を混同する
条件の真偽を確認することと、境界付近の値を重点的に確認することは別の観点です。 - 境界値だけを試せば十分だと思う
に加えて、その前後の値も試すことで、境界付近の誤りをより確実に見つけられます。 - 分岐網羅なら境界値の誤りも必ず発見できると思う
分岐を実行できても、境界値での動作が適切かどうかまでは保証されません。
補足コラム
限界値分析では、入力値の最小値・最大値や、条件判定の境目に注目します。プログラムでは、比較演算子の
> と >=、< と <= の取り違えが、境界値での誤動作につながりやすいためです。FAQ
Q. この問題では、なぜ を試す必要があるのですか?
A. と の判定結果が異なるのが、ちょうど のときだからです。
A. と の判定結果が異なるのが、ちょうど のときだからです。
Q. と もテストするのはなぜですか?
A. 境界の直前・直後での動作も確認し、境界値の取り違えや範囲判定の誤りを見つけやすくするためです。
A. 境界の直前・直後での動作も確認し、境界値の取り違えや範囲判定の誤りを見つけやすくするためです。
関連キーワード: 限界値分析、境界値テスト、条件網羅、同値分割、分岐網羅

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

