基本情報技術者 2017年 春期 午前(科目A) 問49
問題文
流れ図において、判定条件網羅(分岐網羅)を満たす最少のテストケース数は幾つか。

選択肢
ア:1
イ:2(正解)
ウ:3
エ:4
🔒 解説は解答すると表示されます
判定条件網羅【午前解説】
正解の理由
この問題で求められる「判定条件網羅(分岐網羅)」は、各判断(判定)の「真」と「偽」の両方の結果を少なくとも1回は実行することを意味します。図をよく見ると、
- 上の判断は (真/偽の2分岐)
- 下の判断は (真/偽の2分岐) となっています。上の判断の「真」側の処理は元の縦の流れに合流して下の判断に続くため、下の判断は上の判断の結果に関わらず必ず評価されます。したがって、全ての判断の真・偽をカバーするために、真×真 と 偽×偽 のように2つの入力パターンで各判断の両方の結果を網羅できます。よって最少は2ケースです。
解法ステップ
- 図から判断(判定)を特定する:上の判定 、下の判定 。
- 各判定が図のどの位置で実行されるか(到達性)を確認する:上の真処理は元の縦流れに合流し、下の判定は常に実行される。
- 分岐網羅の要求(各判定の真と偽をそれぞれ1回ずつ実行)を満たす最少ケース数を求める:上下それぞれ真と偽をカバーする最低ケース数は2。
- 実際の値例を考え、2ケースで条件を満たすことを確認する。
(具体的なテスト例)
- ケース1:( 真)、(下判定 真) → 上:真、下:真
- ケース2:( 偽)、(下判定 偽) → 上:偽、下:偽
この2つで各判断の真と偽をそれぞれ1回ずつ実行できます。
選択肢別の誤答解説
- ア: 1 — 誤り。1ケースでは少なくともどちらかの判定の真か偽の片方が未実行になるため、分岐網羅を満たせません。
- イ: 2 — 正解。上と下の判断それぞれで真・偽を1回ずつ実行することが可能で、最小ケース数は2です。
- ウ: 3 — 誤り。図の到達関係を誤読して下の判定が上の偽側でしか実行されないと考えた場合に出る誤解です。本図では下判定は常に評価されます。
- エ: 4 — 誤り。これは全組合せ(上・下の真偽すべての組み合わせ)を網羅するケース数で、分岐網羅の定義より過剰です。条件網羅やパス網羅と混同した誤り。
よくある誤解
- 「上の判断が偽のときだけ下の判断が実行される」と誤読してしまい、下の判断を網羅するために追加ケースが必要と考える。実際は真側の処理も流れに合流して下の判断に到達する。
- 「全ての評価組合せ(真・偽の全組合せ=4ケース)を試さないとダメ」と考える混同。分岐網羅は各判定の真偽を1回ずつ実行すれば良く、条件の全組合せ(パス網羅)とは別概念です。
- 条件網羅や複合条件の詳細(例えば各リテラル単位での網羅)と混同して、必要以上にテストケースを増やしてしまう。
補足コラム
- 分岐網羅(判定網羅/decision coverage)は、単に各判定の出力(true/false)を少なくとも1回ずつ実行することを要求します。一方、条件網羅は複合条件の各構成要素(リテラル)ごとの真偽を検証するなど、より細かい網羅基準です。試験問題では「図の流れ(到達経路)」の読み取りが鍵になります。
- 実務では分岐網羅は基本的なテストレベルであり、バグ検出能力を向上させるために条件網羅や修飾条件/判定網羅(MC/DC)を追加することがあります。
FAQ
Q: 「判定条件網羅」と「分岐網羅」は同じですか?
A: 多くの文脈では同一視され、判定(decision)の真偽を網羅する点で同義に扱われます。ただし教科書によって用語の使い分けがあるため定義を確認してください。
A: 多くの文脈では同一視され、判定(decision)の真偽を網羅する点で同義に扱われます。ただし教科書によって用語の使い分けがあるため定義を確認してください。
Q: なぜ4ケース(全組合せ)を要するとは限らないのですか?
A: 分岐網羅は各判定の真偽を個別に1回ずつ実行すれば良く、全ての組合せ(パス網羅や条件網羅で要求されることがある)までは必要としません。
A: 分岐網羅は各判定の真偽を個別に1回ずつ実行すれば良く、全ての組合せ(パス網羅や条件網羅で要求されることがある)までは必要としません。
Q: 下の判断が「A=2 or B=0」で複雑ですが、分岐網羅ではどう扱う?
A: この判断自体が1つの判定です。分岐網羅ではこの判定全体が真になる場合と偽になる場合を1回ずつ実行すればよく、リテラル(AやB個別)の真偽を全て網羅する必要はありません。
A: この判断自体が1つの判定です。分岐網羅ではこの判定全体が真になる場合と偽になる場合を1回ずつ実行すればよく、リテラル(AやB個別)の真偽を全て網羅する必要はありません。
関連キーワード: 分岐網羅、判定網羅、判定条件網羅、網羅率、テスト設計、分岐被覆、条件網羅、パス網羅

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

