戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2022年 春期 午前247


問題文

次の流れ図において、判定条件網羅 (分岐網羅) を満たす最少のテストケースの組みはどれか。
応用情報技術者 2022年 春期 午前2 問47の問題画像

選択肢

(1) A=0, B=0 (2) A=1, B=1
(1) A=1, B=0 (2) A=1, B=1(正解)
(1) A=0, B=0 (2) A=1, B=1 (3) A=1, B=0
(1) A=0, B=0 (2) A=0, B=1 (3) A=1, B=0

🔒 解説は解答すると表示されます

判定条件網羅【午前2解説】

正解の理由

判定(分岐)網羅は、各判定(複合式全体)が「真」と「偽」の両方の評価を少なくとも一度は取ることを要求します。本問題の流れ図には2つの判定があり、それぞれの「真/偽」をテストセット全体で取得する必要があります。
選択肢のうち、の組合せ((1) A=1, B=0 と (2) A=1, B=1)は、
  • 第1判定「A>0 かつ B=0」に対して (1) で真、(2) で偽 を与え、
  • 第2判定「A>0 かつ C=1」に対して (1) で真、(2) で偽 を与えます。
    したがって、両判定について真・偽の両方が出力され、判定(分岐)網羅を満たします。
ここで重要なのは、判定網羅が「各原子条件を両方の真偽で評価すること(条件網羅)」を要求するわけではない点です。本例では A>0 が両ケースとも真(A=1)でも判定全体の真偽が両方出ているため、判定(分岐)網羅は満たされます。

解法ステップ

  1. 流れ図から判定点を洗い出す。ここでは
    • D1: 「A>0 かつ B=0」
    • D2: 「A>0 かつ C=1」
  2. 各判定について、「真」と「偽」を少なくとも一度は出すことを目標にする(判定=複合式全体の真偽)。
  3. パス上の代入文が判定の評価に与える影響を整理する。
    • 最初の四角で (1→C)。
    • D1 が No の場合は 2→C により
    • D1 が Yes の場合は A×C→C により(直前の を用いて)
  4. D2 を真にするためには「A>0 かつ C=1」になることが必要。D1 Yes のとき なので D2 が真になる条件は かつ 、すなわち
  5. 以上より、1つのケースで D1=真かつD2=真(例:A=1,B=0)、もう1つのケースで D1=偽かつD2=偽(例:A=1,B=1)を用意すれば良い。これで各判定の両方の評価を得られるため最少は2ケースとなる。

選択肢別の誤答解説

  • ア: (1) A=0, B=0 (2) A=1, B=1
    (1) は D1偽、D2偽。 (2) は D1偽、D2偽。どちらも D1 が一度も真にならず、判定網羅を満たさない。
  • : (1) A=1, B=0 (2) A=1, B=1
    先述の通り、D1 は (1) で真、(2) で偽。D2 も (1) で真、(2) で偽。両判定の真・偽を網羅する最小の組合せである。
  • ウ: (1) A=0, B=0 (2) A=1, B=1 (3) A=1, B=0
    D1・D2は網羅できるが、ケース数が3で冗長。最少を問う設問には適さない。
  • エ: (1) A=0, B=0 (2) A=0, B=1 (3) A=1, B=0
    これも D1・D2 は網羅できるが、ケース数が3で最少ではない(A=1 が1回しかなく冗長な組合せを含む)。

よくある誤解

  1. 「判定網羅=条件網羅」と混同する
    • 判定(分岐)網羅は「複合判定そのものの真偽を両方出す」こと。条件網羅は「各原子条件を両方の真偽にする」こと。どちらか一方を満たしても必ずしも他方を満たすとは限らない。
  2. C を固定の入力だと誤認する
    • 図中の 1→C や 2→C、A×C→C、C²→C は変数 C の代入であり、判定の真偽はこれらの代入結果によって変わる。テストケース間で C の値が異なることを意識する必要がある。
  3. 「各判定の原子条件を個別に真偽させる必要がある」と考え、不要にケースを増やす
    • 判定網羅では不要にケースを増やさず、判定全体の真偽を満たせばよい。

補足コラム

最小性の簡単な証明:少なくとも1つの判定(ここでは D1)を真と偽の両方にする必要があるため、テストケースは最低2つ必要です。2つで可能かどうかは、パスごとの代入が判定評価にどう影響するかを考えればよく、本問題では上で示した通り2つで十分です。
また、さらに厳密な網羅基準として「判定と条件の両方を満たす基準(condition+decision coverage)」や「MC/DC(修飾条件-判定網羅)」があります。これらは原子条件と判定全体の組合せや独立性を要求するため、今回の最少2ケースより多くのケースが必要となることが多い点に注意してください。

FAQ

Q. なぜ A=0 のケースは必要ないのですか?
A. 判定(分岐)網羅は複合判定の真偽を両方出すことが目的であり、本問題では A=1 の組合せだけで両判定の真偽を確保できるため、A=0 を含める必要はありません(条件網羅を要求されていれば別ですが)。
Q. 第2判定で C=1 を得るにはどういう場合か?
A. 初期で に設定され、D1 が Yes のときに A×C→C が実行されるため、その結果は になる。従って D2 が真になるには(D1 Yes の場合) を満たす必要があります。D1 No の場合は となるため D2 は偽になります。

関連キーワード: 構造的テスト、分岐網羅、条件網羅、判定網羅、MC/DC
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について