AUシステム監査技術者試験 午前Ⅱ

平成23年度特別 システム監査技術者 午前Ⅱ 問22

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

プログラムの誤りの一つに,繰返し処理の判定条件として A≧a とすべきところを A>a とコーディングすることがある。このような誤りを見つけ出すために有効なテストケース設計技法はどれか。ここで,Aは変数,aは定数とする。

選択肢

  1. ア
    限界値分析
  2. イ
    条件網羅
  3. ウ
    同値分割
  4. エ
    分岐網羅
解き方のヒントを見る

欠陥の種類と技法の狙いを対応づける

テストケース設計技法は、それぞれ見つけやすい欠陥の種類が異なります。問題が想定している誤りがどのような性質のものかを先に整理し、各技法がどんな観点でテストデータを選ぶのかと照らし合わせて検討しましょう。

この問題で問われていること

確認すべき観点は一つ、「検出したい誤りの性質と、技法がテストデータを選ぶ基準が合っているか」です。記述の誤りがプログラムの振る舞いにどのような差として現れるかを考え、その差を捉えられる技法かを見極めてください。

視点

テストケース設計技法は、入力や条件の中からどれを試す価値のあるデータとみなすか、その選び方の基準で区別できます。同じ仕様を対象にしても、選ばれるテストデータが違えば表面化する欠陥も変わります。記述の誤りは、正しい記述と誤った記述とで実行結果が食い違う入力を与えたときに初めて検出されます。そのため、技法の名前を覚えるだけでなく、それぞれの技法がどのような考え方でデータを選ぶのかを理解しておくことが大切です。

確認ポイント

  • 問題で想定されている誤りが仕様のどの部分に関する記述の誤りなのかを、自分の言葉で説明できるか
  • 正しい記述と誤った記述とで結果が変わるのはどのような入力を与えたときかを、自分で考えてみたか
  • 各技法がテストデータを選ぶ基準を思い出し、その入力が選ばれやすい技法かどうかを照らし合わせたか
正解と解説を見る

正解

ア

解説

A≧aをA>aと誤って記述すると、Aとaが等しい境界で本来と異なる判定になる。この種の比較演算子の誤りには、境界付近の値を試す限界値分析が有効です。

理由

本来はAとaが等しい場合も条件を満たすのに、A>aでは等しい場合を満たさない。この差は、定数aの近辺、特に一致する値を入力したときに現れる。

比較

条件網羅や分岐網羅は判定結果の真偽を実行することに重点があり、境界値そのものを必ず試すとは限らない。同値分割も値の範囲を代表値で扱うため、境界の誤りを見逃す可能性がある。

選択肢ア(正解)

これは正解だよ。限界値分析は、入力値や判定値の境界付近を重点的にテストする技法である。Aとaが等しい場合を含む境目を確認できるため、等号を含むべき条件を含まない条件へ誤記した問題を発見しやすい。

選択肢イ

これは不正解だよ。条件網羅は、プログラム中の個々の条件が真と偽になるようにテストする考え方である。しかし、真偽の両方を確認できても、Aとaが等しい境界値を必ず試すとは限らず、不等号の誤りを直接検出できるとはいえない。

選択肢ウ

これは不正解だよ。同値分割は、入力や出力を同じように扱えると考えられる範囲に分け、各グループの代表値を選ぶ技法である。境界の値を特別に選ぶことが保証されないため、等号を含むかどうかの誤りには十分でない。

選択肢エ

これは不正解だよ。分岐網羅は、分岐命令の各経路を少なくとも一度実行することを目指す技法である。各分岐を通過しても、Aとaが等しい境界での挙動を確認する必要があるため、比較演算子の誤りを確実に見つける方法ではない。

学習のポイント

比較条件の不等号の違いは、等号を含む境界値で検出しやすい。

出典:独立行政法人 情報処理推進機構(IPA)平成23年度特別 システム監査技術者試験 午前Ⅱ 問22(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針