平成29年度 春期 午前 問48
開発技術
分岐網羅に関する問題
流れ図において,分岐網羅を満たし,かつ,条件網羅を満たすテストデータの組みはどれか。
流れ図
│
〔 a ← 0 〕
〔 b ← 0 〕
│
< x ≧ 1 or y = 1 >──Yes──〔 a ← 1 〕──┐
│No │
├──────────────────────┘
│
< y > 1 >──Yes──〔 b ← 1 〕──┐
│No │
├──────────────┘
│
テストデータの表
┌────┬──────┬──────┐
│ 肢 │ x │ y │
├────┼──────┼──────┤
│ ア │ 2 │ 2 │
│ │ 1 │ 2 │
├────┼──────┼──────┤
│ イ │ 1 │ 2 │
│ │ 0 │ 0 │
├────┼──────┼──────┤
│ ウ │ 1 │ 2 │
│ │ 1 │ 1 │
│ │ 0 │ 1 │
├────┼──────┼──────┤
│ エ │ 1 │ 2 │
│ │ 0 │ 1 │
│ │ 0 │ 2 │
└────┴──────┴──────┘- ア(x,y)=(2,2),(1,2)
- イ(x,y)=(1,2),(0,0)
- ウ(x,y)=(1,2),(1,1),(0,1)
- エ(x,y)=(1,2),(0,1),(0,2)
答えと解説を見る
✓ これが正解エ(x,y)=(1,2),(0,1),(0,2)
解説
二つの網羅を別々に数え、全部埋まる組が答えです。
設問は、分岐網羅と条件網羅を同時に満たすテストデータの組を選ばせています。ここで大切なのは、二つの基準を別々の表にして数えることです。分岐網羅は、判断ごとにその結果が真と偽の両方を通ればよいという基準で、流れ図には判断が二つあるので四つの欄を埋めることになります。条件網羅は、判断の中にある個々の条件がそれぞれ真と偽の両方を取ればよいという基準で、本問の条件は三つなので六つの欄になります。合わせて十の欄を先に作り、組に並んだ値を一件ずつ流して埋めていくのが手順です。片方の基準だけを数えて止めると、もう片方が欠けた組を選ばされます。値を順に流したとき、二つの判断がどちらも真と偽の両方に振れ、なおかつ三つの条件がすべて真と偽の両方を取る組が答えになります。
ほかの選択肢はなぜ違うのか
- ア(x,y)=(2,2),(1,2):二件とも同じ向きに進んでしまう組です。どちらの判断も真の側にしか進まないので偽の側の欄が二つ空き、条件の側も同じ組合せしか現れないため、いくつもの欄が埋まらないまま残ります。
- イ(x,y)=(1,2),(0,0):判断の結果は真と偽が両方そろうので、分岐の側は満たします。ところが最初の判断に含まれる二つ目の条件が真になる行が一件も無く、条件の側で一つだけ欄が埋まりません。分岐だけを数えて止めると選んでしまう組です。
- ウ(x,y)=(1,2),(1,1),(0…:三件とも最初の判断が真の側へ進むので、そこが偽になる欄が空いたまま残ります。条件の側は六つの欄がそろうため、条件だけを数えて止めると選んでしまう組で、前の組とちょうど対をなしています。
この問題の用語
- テスト決めたとおりに動くかを、実際に動かして確かめる作業のこと。何を確かめるかによって移行テスト、システムテストなどと呼び分けます。
出典:平成29年度 春期 応用情報技術者試験 午前 問48
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)