ホワイトボックステストのテストケース設計とは?
上のイラストでは、問題文・フローチャート・各テスト技法の違い・正解までを1枚で整理しました。ブログ記事では、問題文の直後または解説のまとめ前に差し込むと使いやすいです。
問題文
図の構造をもつプログラムに対して、ホワイトボックステストのテストケースを設計するとき、少なくとも実施しなければならないテストケース数が最大になるテスト技法はどれか。
条件:
A > 0 かつ B = 1
真の場合:
X ← X + 1 を実行する
偽の場合:
何もせずに終了する
選択肢:
ア 条件網羅
イ 判定条件網羅
ウ 複数条件網羅
エ 命令網羅
正解:
ウ 複数条件網羅
この問題で問われていること
この問題は、ホワイトボックステストの中でも、
どのテスト技法が一番多くのテストケースを必要とするかを問う問題です。
ポイントは、条件式が次のようになっていることです。
A > 0 かつ B = 1
ここには、条件が2つあります。
条件1:A > 0
条件2:B = 1
つまり、単に「全体として真か偽か」だけを見るのではなく、
それぞれの条件の真偽の組合せを考える必要があります。

命令網羅とは
命令網羅は、プログラム中の命令を少なくとも1回は実行するようにテストします。
この問題では、命令は次の部分です。
X ← X + 1
この命令は、条件式が真になれば実行されます。
例えば、
A = 1
B = 1
なら、
A > 0 は真
B = 1 は真
なので、条件全体も真になり、命令が実行されます。
したがって、命令網羅だけなら、最低1ケースでも命令を通すことはできます。
ただし、選択肢の中で「必要なテストケース数が最大」になるものではありません。
判定条件網羅とは
判定条件網羅は、判定全体が真になる場合と偽になる場合を確認する考え方です。
この問題では、判定全体とは次の条件式です。
A > 0 かつ B = 1
この判定全体が、
真になるケース
偽になるケース
を少なくとも1回ずつ確認します。
例:
A = 1, B = 1
→ 条件全体は真
A = 1, B = 0
→ 条件全体は偽
これで、判定全体の真と偽を確認できます。
したがって、判定条件網羅では最低2ケース程度で足ります。
条件網羅とは
条件網羅は、判定全体ではなく、個々の条件に注目します。
今回の条件は2つあります。
A > 0
B = 1
条件網羅では、それぞれの条件が真と偽の両方になるようにします。
例えば、
ケース1:A = 1, B = 1
A > 0 は真
B = 1 は真
ケース2:A = -1, B = 0
A > 0 は偽
B = 1 は偽
この2ケースで、
A > 0 も B = 1 も、それぞれ真と偽を経験できます。
つまり、条件網羅も最低2ケースで済むことがあります。
複数条件網羅とは
複数条件網羅は、個々の条件の真偽の組合せをすべて確認します。
今回の条件は2つです。
条件1:A > 0
条件2:B = 1
条件が2つあるので、真偽の組合せは次の4通りになります。
1. 真・真
2. 真・偽
3. 偽・真
4. 偽・偽
表にすると、次のようになります。
| ケース | A > 0 | B = 1 | 条件全体 A > 0 かつ B = 1 | X ← X + 1 |
|---|---|---|---|---|
| 1 | 真 | 真 | 真 | 実行する |
| 2 | 真 | 偽 | 偽 | 実行しない |
| 3 | 偽 | 真 | 偽 | 実行しない |
| 4 | 偽 | 偽 | 偽 | 実行しない |
このように、複数条件網羅では、
条件の組合せをすべて試す必要があります。
そのため、この問題では最低4ケース必要になります。
なぜ答えは「ウ」なのか
選択肢ごとに、必要なテストケース数を比べると次のようになります。
| テスト技法 | 見るもの | 最低限必要なケース数の目安 |
|---|---|---|
| ア 条件網羅 | 各条件が真・偽になること | 2ケース程度 |
| イ 判定条件網羅 | 判定全体が真・偽になること | 2ケース程度 |
| ウ 複数条件網羅 | 条件の真偽の全組合せ | 4ケース |
| エ 命令網羅 | 命令が実行されること | 1ケース程度 |
今回、条件は2つあります。
A > 0
B = 1
2つの条件の真偽の組合せは、
2 × 2 = 4通り
です。
したがって、最も多くのテストケースが必要になるのは、
複数条件網羅です。
まとめ
過去問12-18の正解は、
ウ 複数条件網羅
です。
この問題では、条件式が
A > 0 かつ B = 1
となっており、条件が2つあります。
複数条件網羅では、
それぞれの条件の真偽の組合せをすべて確認するため、
真・真
真・偽
偽・真
偽・偽
の4ケースが必要になります。
そのため、選択肢の中で必要なテストケース数が最大になるのは、
ウの複数条件網羅です。









ディスカッション
コメント一覧
まだ、コメントがありません