令和4年度 秋期 応用情報技術者試験 午前 問48
流れ図で示したモジュールを表の二つのテストケースを用いてテストしたとき,テストカバレージ指標である (命令網羅)と (分岐網羅)とによる網羅率の適切な組みはどれか。ここで,変数 V ~ 変数 Z の値は,途中の命令で変更されない。

図の説明テキスト
流れ図(左)と、変数ごとのテストケースの値を示す表(右上)を一つの図にまとめたもの。
【流れ図】
- [開始] -> [V = 0 ?]
- [V = 0 ?]
- Yes -> [命令1] -> [(W = 0) and (X = 0) ?]
- No -> [(W = 0) and (X = 0) ?]
- [(W = 0) and (X = 0) ?]
- Yes -> [命令2] -> [(Y = 0) and (Z = 0) ?]
- No -> [(W ≠ 0) and (X ≠ 0) ?]
- [(W ≠ 0) and (X ≠ 0) ?]
- Yes -> [命令3] -> [(Y = 0) and (Z = 0) ?]
- No -> [(Y = 0) and (Z = 0) ?]
- [(Y = 0) and (Z = 0) ?]
- Yes -> [命令4] -> [終了]
- No -> [(Y ≠ 0) and (Z ≠ 0) ?]
- [(Y ≠ 0) and (Z ≠ 0) ?]
- Yes -> [命令5] -> [終了]
- No -> [終了]
【表: 変数ごとのテストケースの値】
| 変数 | テストケース1 | テストケース2 |
|---|---|---|
| V | 0 | 1 |
| W | 0 | 1 |
| X | 0 | 1 |
| Y | 0 | 1 |
| Z | 0 | 1 |
解答・解説
正解: イ. による網羅率: 100%,による網羅率: 80%
テストカバレージとは
テストカバレージ指標における (命令網羅)は、プログラム中のすべての命令が少なくとも1回実行された割合を示します。一方、(分岐網羅)は、すべての条件判定における真(Yes)と偽(No)の全ルートが少なくとも1回実行された割合を示します。
正解の根拠
表に示された2つのテストケースにおける実行経路を確認し、それぞれの網羅率を計算します。
1. テストケース1の実行経路
変数 (V, W, X, Y, Z) = (0, 0, 0, 0, 0) のとき、以下の順に実行されます。
[V = 0 ?]:真(Yes)となり、命令1を実行[(W = 0) and (X = 0) ?]:真(Yes)となり、命令2を実行[(Y = 0) and (Z = 0) ?]:真(Yes)となり、命令4を実行- 終了
2. テストケース2の実行経路
変数 (V, W, X, Y, Z) = (1, 1, 1, 1, 1) のとき、以下の順に実行されます。
[V = 0 ?]:偽(No)[(W = 0) and (X = 0) ?]:偽(No)[(W ≠ 0) and (X ≠ 0) ?]:真(Yes)となり、命令3を実行[(Y = 0) and (Z = 0) ?]:偽(No)[(Y ≠ 0) and (Z ≠ 0) ?]:真(Yes)となり、命令5を実行- 終了
3. (命令網羅)の計算
流れ図には、命令1〜命令5の計5つの命令が存在します。
テストケース1で命令1、命令2、命令4が実行され、テストケース2で命令3、命令5が実行されました。5つの命令すべてが実行されたため、の網羅率は以下のようになります。
4. (分岐網羅)の計算
流れ図には5か所の条件判定があり、それぞれにYesとNoの分岐があるため、分岐の総数は か所です。
テストケース1と2で実行された分岐は以下の通りです。
[V = 0 ?]:Yes(ケース1)、No(ケース2)[(W = 0) and (X = 0) ?]:Yes(ケース1)、No(ケース2)[(W ≠ 0) and (X ≠ 0) ?]:Yes(ケース2) ※Noは未実行[(Y = 0) and (Z = 0) ?]:Yes(ケース1)、No(ケース2)[(Y ≠ 0) and (Z ≠ 0) ?]:Yes(ケース2) ※Noは未実行
10か所のうち8か所の分岐が実行されたため、の網羅率は以下のようになります。
以上より、による網羅率が100%、による網羅率が80%となるため、正解はイです。
各選択肢の解説
ア: による網羅率は80%であるため、誤りです。
イ: 正解です。
ウ: による網羅率は100%、による網羅率は80%であるため、誤りです。
エ: による網羅率は100%であるため、誤りです。