基本情報技術者 2015年 春期 午前(科目A) 問50
問題文
図の構造をもつプログラムに対して、ホワイトボックステストのテストケースを設計するとき、少なくとも実施しなければならないテストケース数が最大になるテスト技法はどれか。

選択肢
ア:条件網羅
イ:判定条件網羅
ウ:複数条件網羅(正解)
エ:命令網羅
🔒 解説は解答すると表示されます
条件網羅と複数条件網羅の比較【午前解説】
正解の理由
選択肢のうち、ウ(複数条件網羅)が正解です。
理由は本図の判断が論理積(AND)で結合された2つの原子条件(A>0, B=1)から成り、複数条件網羅はそれら原子条件の「全ての真/偽の組合せ」を個別にテストすることを要求するため、 ケースが必要になるからです。他の網羅基準は全組合せを必要としないため、最大ケース数にはなりません。
理由は本図の判断が論理積(AND)で結合された2つの原子条件(A>0, B=1)から成り、複数条件網羅はそれら原子条件の「全ての真/偽の組合せ」を個別にテストすることを要求するため、 ケースが必要になるからです。他の網羅基準は全組合せを必要としないため、最大ケース数にはなりません。
解法ステップ
- 判断式を分解して原子条件を数える(ここでは A>0 と B=1 の2つ)。
- 各テスト技法の定義を確認する(命令網羅、条件網羅、判定条件網羅、複数条件網羅)。
- 必要な最小テスト数を算出する:複数条件網羅は 、判定条件網羅は原子条件と判定の両方を満たす最小組合せを考える(本問では3)、条件網羅は各原子条件が両方の値を取ればよい(最小2)、命令網羅は各命令の実行が主眼(最小1)。
- 最大になるものを選ぶ(複数条件網羅)。
選択肢別の誤答解説
- ア: 条件網羅
各原子条件が真と偽の両方を取れば良い。2つの原子条件なら最小2ケースで済むため最大にはならない。 - イ: 判定条件網羅
判定(全体の真偽)と各原子条件の真偽を両方満たす必要があり、最小で3ケースあればよく、複数条件網羅の4ケースより少ない。 - ウ: 複数条件網羅
正解。すべての原子条件の組合せ()を網羅するため本問で最大。 - エ: 命令網羅
各命令を少なくとも一度実行すれば良い網羅基準で、通常は少数ケースで満たせるため最大ではない。
よくある誤解
- 「判定条件網羅と複数条件網羅を同じと考える」:判定条件網羅は「各原子条件が真偽両方を取る」「かつ判定自身が真偽両方を取る」を満たせばよく、複数条件網羅の全組合せ()ほど多くは不要です。
- 「命令網羅なら2ケース必要」と思い込む:命令網羅は各命令(文)を少なくとも一度実行すればよく、場合によっては1ケースで満たせることもあります(設計次第)。
補足コラム
- 組合せ数の爆発:複数条件網羅は原子条件が増えると指数的にケース数が増えます(で ケース)。実務ではコストが高く、フル網羅は非現実的な場合が多いです。
- 実務上の代替:安全性重視の分野では MC/DC(Modified Condition/Decision Coverage、修正版条件/判定網羅)が採用されることが多く、完全な全組合せほど多くなく、かつ原子条件が判定に与える影響を証明できます。
- ループの扱い:図はループ構造を示しますが、網羅基準の議論では条件の静的組合せが焦点です。ループ回数に関する追加テスト(0回、1回、複数回)は別途ループ網羅の観点で考慮します。
FAQ
Q: 原子条件が3つなら複数条件網羅は何ケース必要ですか?
A: に従い ケース必要です。
A: に従い ケース必要です。
Q: 判定条件網羅と条件網羅の違いは?
A: 条件網羅は各原子条件が真偽両方を取ることのみ要求します。判定条件網羅は条件網羅の要求に加え、判定(結合された式)自体が真偽両方になるようにする点が追加条件です。
A: 条件網羅は各原子条件が真偽両方を取ることのみ要求します。判定条件網羅は条件網羅の要求に加え、判定(結合された式)自体が真偽両方になるようにする点が追加条件です。
Q: MC/DCは複数条件網羅より少ないケースで済みますか?
A: 多くの場合はいえます。MC/DCは各原子条件が判定結果に独立に影響することを示す最小限の組合せを狙うため、フルの より少なく済むことが多いです。
A: 多くの場合はいえます。MC/DCは各原子条件が判定結果に独立に影響することを示す最小限の組合せを狙うため、フルの より少なく済むことが多いです。
関連キーワード: ホワイトボックステスト、条件網羅、複数条件網羅、判定条件網羅、命令網羅、MC/DC、組合せ爆発

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

