平成28年度 春期 午前 問49
システム開発技術
命令網羅に関する問題
流れ図で表される部分を命令網羅によってテストするとき,テストケースは少なくとも幾つ用意する必要があるか。
図(書き起こし): 流れ図。上から1本の線が入り,下へ1本の線が出ていく「部分」です(開始・終了の記号は無い)。
↓
< a = 0 > ──No──┐
│ │
Yes │
↓ ↓
┌──────────┐ ┌──────────┐
│ x = 1 │ │ x = 2 │
└────┬─────┘ └────┬─────┘
└──────┬───────┘
↓
< b = 0 > ──No──┐
│ │
Yes │
↓ ↓
┌──────────┐ ┌──────────┐
│ y = 1 │ │ y = 2 │
└────┬─────┘ └────┬─────┘
└──────┬───────┘
↓
逐語で言い直すと: 判定「a = 0」が Yes なら x = 1,No なら x = 2。合流したあと
判定「b = 0」が Yes なら y = 1,No なら y = 2。合流して下へ抜ける。
- ア2
- イ3
- ウ4
- エ5
答えと解説を見る
✓ これが正解ア2
解説
四つの代入を全部通す道は二本で作れます。
命令網羅は、部分に含まれるすべての命令を、テストの中で少なくとも一度ずつ実行させることを目安にする網羅の考え方です。判定の軸は、この部分にある命令の総数と、それらを何本の入力で漏れなく踏めるかの対応にあります。ここでの命令は、代入が四つあります。判定 a=0 の Yes 側と No 側にそれぞれ一つ、判定 b=0 の Yes 側と No 側にそれぞれ一つ、合わせて四つです。入力を一つ用意すれば、判定の分岐で一方ずつが選ばれるので、代入が二つ実行されます。もう一つ、両方の判定で先ほどと逆の側が選ばれる入力を用意すれば、残りの二つも一巡でどちらも実行できます。よって二つの入力で四つの代入をすべて踏むことができ、この網羅の狙いを満たします。だから、二つと述べた記述が当たりました。分岐の組合せを尽くしにいく網羅は別の基準の話で、命令だけを踏む狙いから見ると余分になります。
ほかの選択肢はなぜ違うのか
- イ3:三つを挙げています。四つの代入を踏むのに必要な入力は、二つの判定でそれぞれ逆側を選ばせる二本で足ります。追加の一本は既に踏んだ代入をなぞる分になり、命令網羅の狙いに対しては余分になります。
- ウ4:四つを挙げています。二つの判定の Yes と No の組合せをすべて尽くす本数に当たり、こちらは判定結果の全組合せをたどる経路の側の網羅で使う数え方でした。分岐の側の網羅でも二本で足りるので、命令だけを踏むという狙いに対しては過剰です。
- エ5:五つを挙げています。二つの判定に含まれる四つの代入を踏むのに、五本もの入力は必要ありません。既に踏んだ代入をさらに追試する分にとどまり、命令網羅の必要本数から離れます。
この問題の用語
- テストケース何をどう試して、どうなれば合格かを一つずつ決めたものです。入力する値や操作の手順と、期待する結果を組にして書きます。
出典:平成28年度 春期 基本情報技術者試験 午前 問49(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和元年度 秋期 午前 問58(テストケース)
- 令和元年度 秋期 午前 問49:命令網羅と判定条件網羅の関係(テストケース)
- 平成30年度 秋期 午前 問50:XPに関する問題(テストケース)
- 平成29年度 春期 午前 問50:リファクタリングに関する問題(テストケース)
- 平成29年度 春期 午前 問49:判定条件網羅に関する問題(テストケース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)