令和4年度 春期 応用情報技術者試験 午前 問題 問47

次の流れ図において,判定条件網羅(分岐網羅)を満たす最少のテストケースの組みはどれか。

流れ図
図の説明テキスト

フローチャート図。以下のノードと遷移で構成されている。

  • 「開始」端子から処理「1→C」へ遷移。
  • 処理「1→C」から判定「A>0 かつ B=0」へ遷移。
  • 判定「A>0 かつ B=0」が Yes の場合、処理「A×C→C」へ遷移。No の場合、処理「2→C」へ遷移。
  • 処理「A×C→C」および処理「2→C」の出力は合流し、判定「A>0 かつ C=1」へ遷移。
  • 判定「A>0 かつ C=1」が Yes の場合、下へ遷移して合流点へ。No の場合、処理「C²→C」へ遷移してから合流点へ。
  • 合流点から「終了」端子へ遷移。
解答・解説

正解: イ. (1) A=1, B=0 (2) A=1, B=1

判定条件網羅(分岐網羅) とは、プログラム中のすべての分岐において、真(Yes)と偽(No)の両方の経路を少なくとも1回ずつ実行するテスト手法です。

設問の流れ図には、以下の2つの判定条件(分岐)があります。

  1. 判定1: A>0 かつ B=0
  2. 判定2: A>0 かつ C=1

判定条件網羅を満たすためには、これら2つの判定のそれぞれでYesとNoのルートを通る必要があります。

正解である イ のテストケースを順番にトレースして確認します。

  • (1) A=1, B=0 の場合:

    • はじめに 1→C により、Cには 1 が代入されます。
    • 判定1: A=1, B=0 なので 1>0 かつ 0=0 となり、条件は真。Yes のルートを通ります。
    • 処理: A×C→C により、1×1 の結果である 1 がCに代入されます(C=1)。
    • 判定2: A=1, C=1 なので 1>0 かつ 1=1 となり、条件は真。Yes のルートを通ります。
  • (2) A=1, B=1 の場合:

    • はじめに 1→C により、Cには 1 が代入されます。
    • 判定1: A=1, B=1 なので 1>0 かつ 1=0 となり、Bが0ではないため条件は偽。No のルートを通ります。
    • 処理: 2→C により、Cには 2 が代入されます(C=2)。
    • 判定2: A=1, C=2 なので 1>0 かつ 2=1 となり、Cが1ではないため条件は偽。No のルートを通ります。

このように、選択肢イの(1)と(2)を実行することで、判定1のYes/No、判定2のYes/Noの両方をすべて網羅できます。2つのテストケースで要件を満たすため、最少の組み合わせとなります。

各選択肢の解説

  • ア: (1) A=0, B=0 では、判定1がNo、判定2もNo(C=2となるため)になります。(2) A=1, B=1 でも、判定1がNo、判定2もNoになります。すべての分岐でNoのルートしか通らないため、網羅要件を満たしません。
  • イ: 正解です。2つのテストケースですべてのYes・Noの分岐を網羅しています。
  • ウ: (1)(2)でNoのルート、(3)でYesのルートを通り網羅はできますが、テストケースが3つあるため「最少」の条件に反します。
  • エ: (1)(2)でNoのルート、(3)でYesのルートを通り網羅はできますが、こちらもテストケースが3つあるため「最少」の条件に反します。

Spineチーム