令和4年度 秋期 情報処理安全確保支援士試験 午前II 問22
あるプログラムについて,流れ図で示される部分に関するテストケースを,判定条件網羅(分岐網羅)によって設定する。この場合のテストケースの組合せとして,適切なものはどれか。ここで,()で囲んだ部分は,一組みのテストケースを表すものとする。

図の説明テキスト
プログラムの流れ図(フローチャート)。
上から下へ向かって以下の手順で処理が進む。
- 「処理1」の長方形ノード。
- ひし形の条件判定ノード「A > 6 or B = 0」。
- 条件判定が「Yes」の場合は下の「処理2」の長方形ノードに進み、その後合流点へ向かう。
- 条件判定が「No」の場合は右側に分岐し、「処理2」をバイパスして下の合流点へ向かう。
解答・解説
正解: ア. (A=1, B=1), (A=7, B=1)
判定条件網羅(分岐網羅)とは
判定条件網羅(分岐網羅)とは、ソフトウェアテストにおけるホワイトボックステストの手法の一つです。プログラム内のすべての分岐(条件判定)において、真(Yes)と偽(No)のそれぞれの経路を少なくとも1回は実行するようにテストケースを設定します。
正解の根拠
流れ図にある条件判定は「A > 6 or B = 0」です。判定条件網羅を満たすためには、この条件が真(Yes)になるケースと、偽(No)になるケースの両方を用意する必要があります。
条件判定が真(Yes)となるのは、「Aが6より大きい」または「Bが0である」のいずれかを満たす場合です。
条件判定が偽(No)となるのは、「Aが6以下である」かつ「Bが0ではない」の両方を満たす場合です。
選択肢アのテストケースの組合せを確認します。
(A=1, B=1) の場合:
「A > 6」を満たさず、「B = 0」も満たしません。したがって、条件判定は「No」となります。(A=7, B=1) の場合:
「A > 6」を満たすため、条件判定は「Yes」となります。
真(Yes)と偽(No)の両方の分岐を通るため、判定条件網羅(分岐網羅)を満たしています。
各選択肢の解説
ア: (A=1, B=1) は条件を満たさず「No」の分岐に進み、(A=7, B=1) は条件を満たし「Yes」の分岐に進みます。真と偽の両方の分岐を網羅できるため、適切です。
イ: (A=4, B=0) は「B = 0」を満たすため「Yes」の分岐に進み、(A=8, B=1) は「A > 6」を満たすため「Yes」の分岐に進みます。どちらも「Yes」の分岐となり、「No」の分岐を通らないため不適切です。
ウ: (A=4, B=1) は条件を満たさないため「No」の分岐に進み、(A=6, B=1) も「A > 6 or B = 0」を満たさないため「No」の分岐に進みます。どちらも「No」の分岐となり、「Yes」の分岐を通らないため不適切です。
エ: (A=7, B=1) は「A > 6」を満たすため「Yes」の分岐に進み、(A=1, B=0) は「B = 0」を満たすため「Yes」の分岐に進みます。どちらも「Yes」の分岐となり、「No」の分岐を通らないため不適切です。