最終更新日:2026年8月6日
fe fe-technology software testing
まず結論
ホワイトボックステストの網羅基準では、プログラム内部の命令や判定条件を、どこまで実行したかを確認します。
基本情報技術者試験では、次の順番で整理すると判断しやすくなります。
命令を通したか
↓
分岐結果の真・偽を通したか
↓
個々の条件の真・偽を通したか
↓
個々の条件の全組合せを通したか
特に複数条件網羅では、判定式を構成する条件が2個なら、原則として次の4通りを確認します。
真・真
真・偽
偽・真
偽・偽
試験では、判定式全体の結果ではなく、個々の条件を分けて表にすることが大切です。
直感的な説明
例えば、次の判定式を考えます。
A > 6 または B = 0
この式には、二つの条件があります。
条件1:A > 6
条件2:B = 0
判定式全体としては、結果は真か偽の2通りです。
しかし、二つの条件を別々に見ると、組合せは4通りあります。
| A > 6 | B = 0 | 判定式全体 |
|---|---|---|
| 真 | 真 | 真 |
| 真 | 偽 | 真 |
| 偽 | 真 | 真 |
| 偽 | 偽 | 偽 |
ここで、判定式全体の真・偽だけを確認するのが判定条件網羅です。
一方、4通りすべての組合せを確認するのが複数条件網羅です。
式全体の結果を見る
→ 判定条件網羅
条件ごとの全組合せを見る
→ 複数条件網羅
定義・仕組み
ホワイトボックステストとは
ホワイトボックステストは、プログラム内部の処理構造を確認しながら行うテストです。
確認対象には、次のようなものがあります。
- 命令
- 分岐
- 判定条件
- 繰返し
- 実行経路
プログラムの外から入力と出力だけを見るブラックボックステストとは、見る対象が異なります。
内部構造を見る
→ ホワイトボックステスト
入力と出力を見る
→ ブラックボックステスト
命令網羅
命令網羅では、すべての命令を少なくとも1回は実行します。
例えば、次の処理を考えます。
if A > 0:
処理1
処理2
A > 0 が真になるテストを1回行えば、処理1と処理2の両方を実行できます。
ただし、偽の場合の分岐結果は確認できていません。
すべての命令を通す
→ 命令網羅
判定条件網羅(分岐網羅)
判定条件網羅では、判定式全体の結果が真になる場合と、偽になる場合を少なくとも1回ずつ実行します。
判定結果:真
判定結果:偽
例えば、次の式なら、式全体が真になるデータと偽になるデータを用意します。
A > 6 または B = 0
ただし、式全体が真になればよいので、個々の条件の全組合せまでは必要ありません。
条件網羅
条件網羅では、判定式を構成する個々の条件が、真と偽を少なくとも1回ずつ取るようにします。
A > 6 が真になる
A > 6 が偽になる
B = 0 が真になる
B = 0 が偽になる
ただし、判定式全体の真と偽が両方実行されるとは限りません。
判定条件・条件網羅
判定条件・条件網羅は、判定条件網羅と条件網羅の両方を満たします。
判定式全体の真・偽
+
個々の条件の真・偽
複数条件網羅ほど厳しくはありませんが、判定結果と個々の条件の両方を確認します。
複数条件網羅
複数条件網羅では、個々の条件の真偽について、可能な組合せをすべて確認します。
条件が2個なら、組合せは次の4通りです。
真・真
真・偽
偽・真
偽・偽
条件が3個なら、最大8通りです。
2³ = 8
一般には、条件が n 個なら、最大で次の組合せ数になります。
2ⁿ
条件数が増えるほど、必要なテストケース数が急速に増えます。
科目Aでどう出る?
科目Aでは、判定式と既存のテストデータが示され、網羅基準を満たすために追加すべきデータを選ぶ問題が出ます。
真理値表を作る
判定式が次の場合を考えます。
A > 6 または B = 0
まず、二つの条件を分けます。
条件1:A > 6
条件2:B = 0
次に、複数条件網羅で必要な組合せを書きます。
| 条件1 | 条件2 |
|---|---|
| 真 | 真 |
| 真 | 偽 |
| 偽 | 真 |
| 偽 | 偽 |
既存データを当てはめる
例えば、既存のデータが次の2件だとします。
A = 4, B = 1
A = 5, B = 0
それぞれの条件を評価します。
| テストデータ | A > 6 | B = 0 |
|---|---|---|
| A=4, B=1 | 偽 | 偽 |
| A=5, B=0 | 偽 | 真 |
確認済みなのは次です。
偽・偽
偽・真
残りは次の2通りです。
真・真
真・偽
したがって、追加するテストデータは次を満たす必要があります。
A > 6 かつ B = 0
A > 6 かつ B ≠ 0
選択肢は条件ごとに評価する
例えば、次の候補を考えます。
A=7, B=0
A=8, B=2
| テストデータ | A > 6 | B = 0 |
|---|---|---|
| A=7, B=0 | 真 | 真 |
| A=8, B=2 | 真 | 偽 |
不足していた2通りを両方満たします。
試験中は、選択肢を直接眺めるより、次のように記号で整理すると速くなります。
TT
TF
FT
FF
網羅基準の判断表
| 網羅基準 | 判断の合図 |
|---|---|
| 命令網羅 | すべての命令を実行 |
| 判定条件網羅 | 判定式全体の真・偽 |
| 条件網羅 | 各条件の真・偽 |
| 判定条件・条件網羅 | 式全体と各条件の真・偽 |
| 複数条件網羅 | 各条件の真偽の全組合せ |
科目Bでどう使う?
科目Bでは、疑似言語やプログラムの分岐を読み、どの入力でどの経路を通るかを考える場面があります。
条件を一つずつ分ける
複合条件を見たら、最初に個々の条件へ分けます。
if X > 0 and Y < 10:
この場合は、次の二つです。
X > 0
Y < 10
その後、それぞれの真偽を表にします。
ANDとORの違い
ANDでは、すべての条件が真のときだけ式全体が真です。
| 条件1 | 条件2 | AND |
|---|---|---|
| 真 | 真 | 真 |
| 真 | 偽 | 偽 |
| 偽 | 真 | 偽 |
| 偽 | 偽 | 偽 |
ORでは、少なくとも一つが真なら式全体が真です。
| 条件1 | 条件2 | OR |
|---|---|---|
| 真 | 真 | 真 |
| 真 | 偽 | 真 |
| 偽 | 真 | 真 |
| 偽 | 偽 | 偽 |
複数条件網羅では、ANDかORかにかかわらず、個々の条件の全組合せを確認します。
短絡評価との関係
多くのプログラミング言語では、ANDやORで短絡評価が行われます。
ORで左側が真
→ 右側を評価しない場合がある
ANDで左側が偽
→ 右側を評価しない場合がある
そのため、実際のプログラムで条件評価そのものを確認する場合は、右側の条件が実行されたかも意識する必要があります。
ただし、科目Aの網羅基準問題では、まず問題文で示された条件の真偽の組合せを整理することが優先です。
よくある誤解・混同
判定結果が真と偽なら複数条件網羅になる
判定式全体が真と偽になっていても、個々の条件の組合せが不足している場合があります。
例えば、OR条件では次の2件だけでも式全体の真と偽を確認できます。
偽・真 → 式全体は真
偽・偽 → 式全体は偽
しかし、真・真 と 真・偽 は未確認です。
式全体の真・偽だけ
→ 判定条件網羅
全組合せ
→ 複数条件網羅
条件網羅と複数条件網羅は同じ
条件網羅では、各条件が真と偽を少なくとも1回ずつ取ればよいです。
複数条件網羅では、その組合せをすべて確認します。
| 網羅基準 | 必要な確認 |
|---|---|
| 条件網羅 | 各条件が真・偽になる |
| 複数条件網羅 | 真偽の全組合せ |
複数条件網羅の方が厳しい基準です。
条件が2個なら必ず4件のテストが必要
複数条件網羅では4通りの組合せが必要ですが、既存のテストデータがあれば、追加する件数は4件より少なくなります。
すでに2通り確認済み
→ 残り2通りを追加
問題では、すでに確認済みの組合せを先に消します。
ANDやORの結果だけを計算すればよい
複数条件網羅では、式全体の結果だけでは不十分です。
条件1の真偽
条件2の真偽
を別々に確認します。
ホワイトボックステストは入力値を考えない
ホワイトボックステストでも、内部経路を通すために適切な入力値を設計します。
違いは、入力と出力だけでなく、内部の命令や分岐を意識している点です。
まとめ(試験直前用)
- ホワイトボックステストは、プログラム内部の命令や分岐を確認する
- 命令網羅は、すべての命令を少なくとも1回実行する
- 判定条件網羅は、判定式全体の真と偽を確認する
- 条件網羅は、個々の条件の真と偽を確認する
- 複数条件網羅は、個々の条件の真偽の全組合せを確認する
- 条件が2個なら、組合せは
TT・TF・FT・FFの4通り - 問題では、既存データが満たす組合せを消し、残りを満たす選択肢を探す
- 判定式全体ではなく、条件を一つずつ分けて表にする