エンベデッドシステムスペシャリスト 2011年 午前2 問24
問題文
プログラムの誤りの一つに、繰返し処理の判定条件としてとすべきところをとコーディングすることがある。このような誤りを見つけ出すために有効なテストケース設計技法はどれか。ここで、は変数、は定数とする。
選択肢
ア:限界値分析(正解)
イ:条件網羅
ウ:同値分割
エ:分岐網羅
🔒 解説は解答すると表示されます
限界値分析【午前2解説】
正解の理由
この誤りは、判定条件が
A ≥ a であるべきところを A > a としているため、境界値 A = a のときに期待する動作と実際の動作が異なります。境界付近の値を使って誤りを見つける技法が限界値分析です。たとえば
A = a - 1、A = a、A = a + 1 をテストすると、特に A = a の結果から条件の不一致を検出できます。したがって、アが適切です。解法ステップ
- 誤りの箇所が、比較演算子
≥と>の違いであることを確認します。 - この二つの条件で結果が変わる値を考えます。
A = aでは、A ≥ aは真ですが、A > aは偽です。- 境界値に着目する技法である限界値分析を選びます。
選択肢別の誤答解説
-
ア 限界値分析
値の境界やその前後をテストする技法です。A = aのような値を試すことで、比較演算子の誤りを検出できます。 -
イ 条件網羅
判定を構成する各条件について、真と偽の両方の結果を少なくとも一度確認する技法です。境界値そのものを重点的に調べる技法ではありません。 -
ウ 同値分割
同じような振る舞いをすると考えられる入力の範囲をグループに分け、各グループの代表値でテストする技法です。境界での≥と>の違いを狙うには、限界値分析がより適切です。 -
エ 分岐網羅
プログラムの各分岐について、真側と偽側の両方を少なくとも一度実行する技法です。分岐を実行することが目的であり、境界付近の入力を調べることが主眼ではありません。
よくある誤解
-
条件の真偽を確認すれば、境界の誤りも必ず見つかると思う
真と偽の両方を実行しても、A = aをテストしなければ、≥と>の違いを見逃すことがあります。 -
同値分割と限界値分析は同じ技法だと思う
同値分割は入力範囲をグループ分けする技法で、限界値分析はその境界付近を重点的にテストする技法です。 -
境界値は範囲の上限だけだと思う
下限・上限のほか、条件式が切り替わる値なども境界値になり得ます。
補足コラム
限界値分析では、境界値そのものに加え、その直前・直後の値もテストするのが基本です。この問題では、
A = a が条件式の真偽の切り替わりに当たるため、特に重要なテスト値です。FAQ
Q.
A. この条件演算子の違いを見つけるには有効ですが、実際のテストでは
A = a だけをテストすれば十分ですか?A. この条件演算子の違いを見つけるには有効ですが、実際のテストでは
a - 1 や a + 1 も確認すると、境界の前後で期待どおりに動くかを確かめられます。Q. 限界値分析は数値の範囲がある場合だけ使う技法ですか?
A. 主に数値の境界で使われますが、文字列の長さや配列の添字など、上限・下限があるデータにも適用できます。
A. 主に数値の境界で使われますが、文字列の長さや配列の添字など、上限・下限があるデータにも適用できます。
関連キーワード: 限界値分析、条件網羅、同値分割、分岐網羅、境界値、オフバイワンエラー

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

