類似用語

「ブラックボックステスト」と「ホワイトボックステスト」の違い

2020年7月24日

「ブラックボックステスト」と「ホワイトボックステスト」の違い

スポンサーリンク

「ブラックボックステスト」と「ホワイトボックステスト」って何?

ブラックボックステスト」と「ホワイトボックステスト」は「単体テスト」で実施されるテストのことです。

ソフトウェア開発では、機能(モジュール)単体の検証を行う「単体テスト」、複数の機能(モジュール)を繋ぎ合わせて検証を行う「結合テスト」、そして システム全体の検証を行う「システムテスト(総合テスト)」が存在します。

テストの流れ

ブラックボックステストとは

ブラックボックステストとは、内部構造を意識しないで入力に対して適切な出力が得られるか(仕様通りの結果が得られるか)を確認するテストです。

内部が見えないことからブラックボックスという言葉で表現されている。

ブラックボックステスト

入力と出力に着目するのがブラックボックステストです。

ホワイトボックステストとは

内部構造を意識しないで実施するブラックボックステストに対し、ホワイトボックステストでは内部構造が正しく動作するかを確認します。

内部が見えることからホワイトボックスという言葉で表現されている。

ホワイトボックステスト

内部の作りに着目するのがホワイトボックステストです。

ブラックボックステストの実施方法

ブラックボックステストには、テストデータを用意するための基準として「同値分割法」と「限界値分析」があり、その基準に従ってテストデータを準備しテストを実施します。

同値分割法

同値分割法とは、データの範囲をグループに分けて、それぞれのグループから代表値を選び、その値で試験を行う方法です。

例えば、次の図のように「0~99」が有効な値の範囲である場合、「-1以下」と「100以上」は無効な値の範囲です。これを「-1以下」「0~99」「100以上」というグループに分けて、それぞれのグループから代表値を選んで試験を行います。これが 同値分割法です。

同値分割法

限界値分析

限界値分析とは、データの境界値部分の値で試験を行う方法です。

例えば、次の図では下限値の境界値は「0」、上限値の境界値は「99」です。この下限値と上限値の境界部分の値(下限は「-1」と「0」、上限は「99」と「100」)で試験を行うのが、限界値分析です。

境界値分析

ホワイトボックステストの実施方法

ホワイトボックステストには、内部構造の条件を網羅するための網羅基準として「命令網羅」「判定条件網羅」「条件網羅」「複数条件網羅」が存在し、その基準に従ってテストデータを準備しテストを実施します。

命令網羅

命令網羅とは、すべての命令を最低1回は通すようにする試験です。すべての命令を通すためのテストデータを用意して試験を行います。

命令分岐イメージ例

上記例で「命令網羅」を満たすために必要なテストデータ

  1. A=真、B=真

判定条件網羅(分岐網羅)

判定条件網羅(分岐網羅)とは、すべての分岐を最低1回は通すようにする試験です。すべての分岐を通すためのテストデータを用意して試験を行います。

分岐網羅イメージ図

上記例で「判定条件網羅(分岐網羅)」を満たすために必要なテストデータ

  1. A=真、B=真
  2. A=真、B=偽 もしくは A=偽、B=真 もしくは A=偽、B=偽

条件網羅

条件網羅とは、個々の条件を最低1回は通すようにする試験です。個々の条件を通すためのテストデータを用意して試験を行います。

ホワイトボックステストの例

上記例で「条件網羅」を満たすために必要なテストデータ

  1. A=真、B=真
  2. A=偽、B=偽

または

  1. A=真、B=偽
  2. A=偽、B=真

※AとBで1度ずつ「真」と「偽」が試せればよいので、どちらのテストデータを使っても条件網羅の目的は達成できる。

複数条件網羅

複数条件網羅とは、想定される条件の組み合わせをすべて網羅する試験です。条件をすべて網羅するためのテストデータを用意して試験を行います。

ホワイトボックステストの例

上記例で「複数条件網羅」を満たすために必要なテストデータ

  1. A=真、B=真
  2. A=真、B=偽
  3. A=偽、B=真
  4. A=偽、B=偽

helpful