ホワイトボックステストのテストケース設計とは?

広告

上のイラストでは、問題文・フローチャート・各テスト技法の違い・正解までを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 > 0B = 1条件全体 A > 0 かつ B = 1X ← 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ケースが必要になります。

そのため、選択肢の中で必要なテストケース数が最大になるのは、
ウの複数条件網羅です。

訪問数 6 回, 今日の訪問数 6回

広告