マナビング基本情報技術者

分岐網羅の最少テスト数はどう数えるか

基本情報技術者試験 平成29年度春期 午前 問49 / システム開発技術 › ソフトウェア構築

過去問にチャレンジ

平成29年度春期 午前 問49

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

平成29年度春期 午前 問49の図
  1. ア

    1

  2. イ

    2

  3. ウ

    3

  4. エ

    4

会話形式の解説

講師講師
分岐網羅では、各判定の真側と偽側を通る必要があります。まず、図の矢印がどこで合流するかを見てみましょう。
受験者受験者
判定が二つあるので、真と偽の組合せを四つとも試す必要があるのでしょうか。
講師講師
上の判定は、真側でも偽側でも合流してから下の判定へ進みます。分岐網羅で確かめるのは、組合せの全種類ではなく、各判定の真と偽です。
受験者受験者
それなら、一つのケースで上下とも真を通し、別のケースで上下とも偽を通せそうです。
講師講師
そのとおりです。例えばX=4、A=2、B=1なら、上の「X>1」も下の「A=2 or B=0」も真になります。
受験者受験者
X=1、A=1、B=1なら、上下とも偽になりますね。
講師講師
はい。この二つのケースで、両方の判定について真側と偽側を通れます。
受験者受験者
一つだけでは、上の判定の真側と偽側を同時に通れません。だから二つが最少なのですね。
講師講師
そうです。三つのケースでも網羅はできますが、最少数ではありません。
受験者受験者
四つという数は、上下の判定結果の組合せを全部試すと考えた場合ですね。
講師講師
はい。この問題では全組合せは求められていません。判定が複数あっても、一つのケースでそれぞれの分岐をまとめて通れることがポイントです。

まとめ

分岐網羅では、各判定の真側と偽側をそれぞれ通します。この流れ図では、上の判定の結果にかかわらず下の判定へ進みます。上下とも真になるケースと上下とも偽になるケースの2件で全分岐を通れます。1件では足りず、3件や4件は最少数ではありません。

解答・解説

正解はイです

この問題のテーマ

流れ図の二つの判定について、分岐網羅を満たす最少のテストケース数を問う問題です。

解き方の考え方

分岐網羅では、各判定の真と偽をそれぞれ通します。この図では、上の「X>1」の結果にかかわらず、処理が合流して下の「A=2 or B=0」へ進みます。そこで、上と下がともに真になるケースと、ともに偽になるケースを用意すれば、二つの判定の全分岐を通せます。

選択肢ごとの解説

  1. ×ア  1
    1件では「X>1」の真と偽を同時に通れません。一つの判定だけを見ても、分岐網羅には足りない数です。
  2. ○イ  2
    2件あれば、例えば「X=4、A=2、B=1」で上下とも真、「X=1、A=1、B=1」で上下とも偽にできます。各判定の両方向を通し、かつ1件では足りないので、最少数は2件です。
  3. ×ウ  3
    3件を使えば分岐網羅はできますが、必要な最少数ではありません。二つの判定の真と偽は、イで示した2件で全て通せます。
  4. ×エ  4
    4件は、上下の判定結果の組合せを全て試す場合に考えられる数です。この設問の分岐網羅では、各判定の真・偽を通せばよく、全組合せまでは求められません。

POINT

  • 判定の真側と偽側をそれぞれ通ったかを確認します。
  • 図の矢印が合流する位置を見て、後続の判定に到達する経路を確かめます。
  • 複数の判定があっても、一つのテストケースで各判定の分岐をまとめて通せます。

※出典:平成29年度春期 基本情報技術者試験 午前 問49(一部改変)