ホワイトボックステスト#
ホワイトボックステストにおける下記の条件などについて整理する
| 網羅基準 | テスト強度 | 概要 |
|---|---|---|
| 命令網羅 | 弱い | すべての処理文を1回は実行する |
| 分岐網羅 | ↓ | すべての分岐の真/偽を1回は実行する |
| 条件網羅 | 中程度 | すべての個々の条件の真/偽を1回はとる |
| 判定条件・条件網羅 | ↑ | 分岐網羅と条件網羅の両方を満たす |
| 複数条件網羅 | 強い | 個々の条件の真/偽の全組み合わせを実行する |
命令網羅#
すべての処理文を1回は実行するテスト
IF (A > 5) THEN
処理X // ←ここを1回通す
END IF
処理Y
上記の例の場合、A=10 のようなテストケースを実行すれば、処理Xと処理Yの両方が実行されるため、命令網羅を達成する。
分岐網羅#
すべての分岐の真/偽を1回は実行するテスト
IF (A > 5) THEN // 分岐1
処理X
END IF
- テストケース1:
A=10→ 分岐1の**真(True)**のルートを実行 - テストケース2:
A=3→ 分岐1の**偽(False)**のルートを実行 - この2つのテストケースで、分岐網羅率100%を達成
- 複雑な条件式(ANDやORで結ばれた条件)の内部は確認しない。例えば
IF (A > 5 AND B == 10)の場合、A > 5がTrueかFalseか、B == 10がTrueかFalseか、個々の条件の組み合わせまではテストしない。
条件網羅#
すべての個々の条件の真/偽を1回はとるテスト
IF (A > 5 AND B == 10) THEN ...
// 条件1: A > 5
// 条件2: B == 10
- テストケース1:
A=10, B=10→ 条件1がTrue, 条件2がTrue - テストケース2:
A=3, B=0→ 条件1がFalse, 条件2がFalse - この2つのテストケースで、条件1と条件2がそれぞれTrue/Falseを経験するため、条件網羅100%を達成
- 注: 条件網羅では、判定条件全体の真偽は考慮しない(個々の条件がTrue/Falseを経験すれば良い)
判定条件・条件網羅#
分岐網羅と条件網羅の両方を満たすテスト
IF (A > 5 AND B == 10) THEN ...
// 判定条件全体: (A > 5 AND B == 10)
// 条件1: A > 5
// 条件2: B == 10
- テストケース1:
A=10, B=10- 判定条件全体 → True
- 条件1 → True, 条件2 → True
- テストケース2:
A=3, B=10- 判定条件全体 → False
- 条件1 → False, 条件2 → True
- テストケース3:
A=10, B=0- 判定条件全体 → False
- 条件1 → True, 条件2 → False
- これで判定条件のTrue/False、および各条件のTrue/Falseがすべて網羅されます。
複数条件網羅#
個々の条件の真/偽の全組み合わせを実行するテスト
IF (A > 5 AND B == 10) THEN ...
// 条件①: A > 5
// 条件②: B == 10
- 条件が2つなので、2の2乗 = 4通りの組み合わせをテストする
- テストケース1: 条件①=True, 条件②=True (
A=10, B=10) - テストケース2: 条件①=True, 条件②=False (
A=10, B=0) - テストケース3: 条件①=False, 条件②=True (
A=3, B=10) - テストケース4: 条件①=False, 条件②=False (
A=3, B=0)