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


正解
解説
この問題は、プログラムの一部を示す流れ図に対して、命令網羅(Statement Coverage)を満たすために必要な最小のテストケース数を求めるものです。命令網羅では、プログラム内のすべての命令を少なくとも1回は実行することが求められます。
- 命令網羅の基本
命令網羅はホワイトボックステストの一種で、すべての命令(ステートメント)を網羅することを目的とします。これは、条件や経路すべてを網羅する必要はなく、命令が1回以上実行されればよいという点で、他の網羅基準に比べて基準が緩やかです。 - 流れ図の構造の確認
流れ図には複数の判定(条件分岐)が含まれており、それぞれの分岐には異なる命令が存在しています。問題文では「各判定条件は、先行する命令の影響を受けない」とあるため、それぞれの条件は独立して考えることができます。これにより、命令を網羅するためには、すべての分岐のそれぞれの経路を少なくとも1回ずつ通る必要があります。 - 必要なテストケース数の導出
流れ図の命令をすべて実行するには、各条件の分岐を1回以上通る必要があります。判定A、B、Cの3つの条件に対し、命令網羅の観点からは、それぞれの条件分岐(YesまたはNo)に対して最低1回の実行で十分です。全体として、3つの異なる経路で命令全体を網羅することができるため、最小のテストケース数は3つとなります。
したがって、すべての命令を少なくとも1度は実行するために必要な最小のテストケース数は3です。これは命令網羅の基準を満たす最小限のテスト数となります。