応用情報技術者 2021年 春期 午前2 問48
問題文
あるプログラムについて、流れ図で示される部分に関するテストを、命令網羅で実施する場合、最小のテストケース数は幾つか。ここで、各判定条件は流れ図に示された部分の先行する命令の結果から影響を受けないものとする。

選択肢
ア:3(正解)
イ:6
ウ:8
エ:18
流れ図の命令網羅テストにおける最小テストケース数【午前2 解説】
要点まとめ
- 結論:命令網羅での最小テストケース数は3である。
- 根拠:命令網羅はすべての命令(処理ブロック)を少なくとも一度は実行することが目的で、各判断ノードの分岐すべてを通る必要はない。
- 差がつくポイント:分岐網羅と混同せず、命令網羅の定義を正確に理解し、合流点の構造を把握して最小ケース数を導くことが重要。
正解の理由
命令網羅は「プログラム内のすべての命令を少なくとも一度は実行する」ことを求めます。
問題の流れ図は3つの判断ノードがあり、それぞれ3本または2本の分岐がありますが、命令網羅では各判断ノードのすべての分岐を通る必要はありません。
したがって、各判断ノードで1つの分岐を通れば十分であり、3つの判断ノードそれぞれで1つずつ通るテストケースがあればよいので、最小テストケース数は3となります。
よって、選択肢の中でア: 3が正解です。
問題の流れ図は3つの判断ノードがあり、それぞれ3本または2本の分岐がありますが、命令網羅では各判断ノードのすべての分岐を通る必要はありません。
したがって、各判断ノードで1つの分岐を通れば十分であり、3つの判断ノードそれぞれで1つずつ通るテストケースがあればよいので、最小テストケース数は3となります。
よって、選択肢の中でア: 3が正解です。
よくある誤解
命令網羅と条件網羅や分岐網羅を混同し、すべての分岐を通る必要があると誤解しがちです。
また、合流点の存在から複雑に考えすぎてテストケース数を過大評価することもあります。
また、合流点の存在から複雑に考えすぎてテストケース数を過大評価することもあります。
解法ステップ
- 命令網羅の定義を確認する(すべての命令を1回以上実行すること)。
- 流れ図の判断ノードと分岐の数を把握する。
- 命令網羅では各判断ノードの分岐すべてを通る必要はないと理解する。
- 各判断ノードで1つの分岐を通れば命令網羅は達成できると判断する。
- 3つの判断ノードがあるため、最小テストケース数は3と結論づける。
選択肢別の誤答解説
- イ: 6
分岐網羅や条件網羅の考え方を誤って適用し、すべての分岐を通る必要があると誤解した結果。 - ウ: 8
複数の分岐の組み合わせをすべて考慮しようとして過剰にテストケースを増やした誤り。 - エ: 18
条件の組み合わせ全パターンを網羅しようとした場合の数であり、命令網羅の定義とは異なる。
補足コラム
命令網羅はソフトウェアテストの基本的な網羅基準の一つで、すべての命令を少なくとも一度は実行することを目的とします。
これに対し、分岐網羅はすべての分岐を通ること、条件網羅は条件式の真偽をすべて試すことを求めるため、テストケース数は増加します。
流れ図の合流点は複数の分岐経路が再び一つにまとまる構造であり、命令網羅の観点では合流点の命令は1回のテストケースでカバー可能です。
これに対し、分岐網羅はすべての分岐を通ること、条件網羅は条件式の真偽をすべて試すことを求めるため、テストケース数は増加します。
流れ図の合流点は複数の分岐経路が再び一つにまとまる構造であり、命令網羅の観点では合流点の命令は1回のテストケースでカバー可能です。
FAQ
Q: 命令網羅と分岐網羅の違いは何ですか?
A: 命令網羅はすべての命令を1回以上実行すること、分岐網羅はすべての分岐を通ることを意味し、分岐網羅の方が厳しい基準です。
A: 命令網羅はすべての命令を1回以上実行すること、分岐網羅はすべての分岐を通ることを意味し、分岐網羅の方が厳しい基準です。
Q: なぜ各判断ノードのすべての分岐を通る必要がないのですか?
A: 命令網羅は命令単位の実行を重視し、分岐のすべてを通ることは必須ではないためです。
A: 命令網羅は命令単位の実行を重視し、分岐のすべてを通ることは必須ではないためです。
関連キーワード: 命令網羅、流れ図、テストケース数、ソフトウェアテスト、分岐網羅

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

