平成30年度 春期 午前 問49
システム開発技術
判定条件網羅に関する問題
プログラムの流れ図で示される部分に関するテストデータを,判定条件網羅(decision coverage)によって設定した。このテストデータを複数条件網羅(multiple condition coverage)による設定に変更するとき,加えるべきテストデータのうち,適切なものはどれか。ここで,( )で囲んだ部分は,一組みのテストデータを表すものとする。
流れ図:
↓ [処理1] ↓ <A>6 or B=0> ── No ──┐ │ Yes │ [処理2] │ ↓ │ ◀──────────────────────┘
・判定条件網羅によるテストデータ
(A=4, B=1), (A=5, B=0)
- ア(A=3, B=0), (A=7, B=2)
- イ(A=3, B=2), (A=8, B=0)
- ウ(A=4, B=0), (A=8, B=0)
- エ(A=7, B=0), (A=8, B=2)
答えと解説を見る
✓ これが正解エ(A=7, B=0), (A=8, B=2)
解説
A が6より大きくなる二通りを補います。
判定条件網羅は、分岐全体の結果について、成り立つ場合と成り立たない場合の両方を通せばよいという基準です。すでにあるデータは、A が4で B が1のときに全体が成り立たず、A が5で B が0のときに成り立つので、この基準はもう満たしています。複数条件網羅はもう一段細かく、分岐に含まれる一つ一つの条件について、成り立つ場合と成り立たない場合の全ての組合せを通すことを求めます。この分岐は、A が6より大きいことと、B が0であることの二つでできているので、組合せは四通りです。すでに通っているのは、二つとも成り立たない組合せと、A の側だけが成り立たない組合せの二つでした。足りないのは A の側が成り立つ二通りで、B が0である場合と、そうでない場合の両方が必要です。だから、その二組をちょうど加える肢が当たりました。判定の軸は、加える二組で残りの組合せが埋まりきるかどうかです。残る三つは、加えても新しい組合せが一つしか増えず、四通りがそろいませんでした。
ほかの選択肢はなぜ違うのか
- ア(A=3, B=0), (A=7, B=…:A が3で B が0の組と、A が7で B が2の組を加えるとしています。前者は A の側が成り立たず B の側が成り立つ形で、すでにあるデータと同じ組合せでした。新しく増えるのは一通りだけなので、四通りには届きません。
- イ(A=3, B=2), (A=8, B=…:A が3で B が2の組と、A が8で B が0の組を加えるとしています。前者は二つとも成り立たない形で、これもすでに通っている組合せです。増えるのは二つとも成り立つ組合せだけなので、まだ一通り足りませんでした。
- ウ(A=4, B=0), (A=8, B=…:A が4で B が0の組と、A が8で B が0の組を加えるとしています。B の側はどちらも0で、成り立つ場合しか試していません。A の側が成り立ち、B の側が成り立たない組合せが、最後まで通らないまま残りました。
この問題の用語
- テスト決めたとおりに動くかを、実際に動かして確かめる作業のこと。何を確かめるかによって移行テスト、システムテストなどと呼び分けます。
出典:平成30年度 春期 基本情報技術者試験 午前 問49
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)