システム監査技術者 2011年 午前2 問22
問題文
プログラムの誤りの一つに、繰返し処理の判定条件としてとすべきところをとコーディングすることがある。このような誤りを見つけ出すために有効なテストケース設計技法はどれか。ここで、は変数、は定数とする。
選択肢
ア:限界値分析(正解)
イ:条件網羅
ウ:同値分割
エ:分岐網羅
🔒 解説は解答すると表示されます
限界値分析【午前2解説】
正解の理由
この誤りは、判定条件の境界である の扱いが、「」と「」で異なることから生じます。
のとき、正しい条件「」は真ですが、誤った条件「」は偽になります。そのため、境界値である をテストすれば、条件の不一致を検出できます。
このように、境界付近の値を重点的にテストする技法が限界値分析です。したがって、適切なのはアです。
解法ステップ
- 2つの条件の違いに注目します。
「」と「」では、 のときの判定結果が異なります。 - 判定が変わる値、つまり境界値を特定します。
この問題の境界値は です。 - 境界値と、その前後の値をテストします。
例えば、 が整数なら、、、 を使います。 - 境界値付近を調べる技法として、限界値分析を選びます。
選択肢別の誤答解説
- ア 限界値分析
境界値やその前後の値をテストする技法です。 で判定結果が異なる誤りを発見できるため、適切です。 - イ 条件網羅
条件式を構成する個々の条件について、真と偽の両方を確認する技法です。境界値そのものを重点的に試すことが目的ではありません。 - ウ 同値分割
入力値を、同じような結果になると考えられるグループに分け、各グループの代表値をテストする技法です。境界付近の値を重点的に確認する技法とは異なります。 - エ 分岐網羅
判定による分岐結果を、すべて少なくとも1回実行する技法です。分岐を通過できても、境界値で判定が誤ることを必ず発見できるとは限りません。
よくある誤解
- 「真と偽の両方を確認する」ことと、境界値を確認することを同じだと考える
条件網羅や分岐網羅を満たしていても、 をテストしていなければ、この誤りを見逃す可能性があります。 - 境界値は「境界の片側だけ」と考える
境界値そのものに加えて、その直前・直後の値もテストすると、境界の扱いに関する誤りを見つけやすくなります。 - 「」と「」の違いを軽視する
両者の違いは、ちょうど等しい場合に現れます。比較演算子の誤りでは、等号を含むかどうかを確認することが重要です。
補足コラム
限界値分析では、値の範囲を表す条件の境目に注目します。例えば、入力可能な範囲が なら、、、、、、 などがテスト候補になります。
この問題では、判定条件の境目が です。特に、比較演算子の「」と「」の違いは、境界値で明確に表れます。
FAQ
Q. なぜ のテストが必要なのですか?
A. 2つの条件は、 のときだけ判定結果が異なるためです。正しい条件と誤った条件の差を確認するには、この値をテストする必要があります。
A. 2つの条件は、 のときだけ判定結果が異なるためです。正しい条件と誤った条件の差を確認するには、この値をテストする必要があります。
Q. だけをテストすれば十分ですか?
A. この誤りの検出には特に重要な値ですが、一般には境界値の前後も含めてテストすることで、境界付近の誤りをより確実に確認できます。
A. この誤りの検出には特に重要な値ですが、一般には境界値の前後も含めてテストすることで、境界付近の誤りをより確実に確認できます。
関連キーワード: 限界値分析、境界値、条件網羅、同値分割、分岐網羅

\ せっかくなら /
システム監査技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

