システム開発

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

2020年7月22日

テストの種類

ソフトウェア開発では、各工程にあわせて様々な種類のテストが存在します。有名なテストには「単体テスト」「結合テスト」「システムテスト」があります。

テストの流れ

単体テスト

単体テストとは、ソフトウェア開発で作成した部品単体(モジュール)の信頼性を確認する試験のことです。単体テストでは、「ブラックボックステスト」や「ホワイトボックステスト」という手法を用いて検証します。

結合テスト

単体テストが終わると、次に実施するのが結合テストです。結合テストは、複数の部品(モジュール)を繋ぎ合わせて試験を行います。モジュール間のインタフェースに問題がないか、複数のモジュールを繋ぎ合わせても、想定通りの動作をするかなどを確認します。

システムテスト

結合テストの次は、システムテストです。システムテストでは、ソフトウェアが仕様通りに動作するかシステム全体の試験を行います。

スポンサーリンク

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

ブラックボックステストとは、モジュールの内部構造(プログラムの内容)は意識せず、仕様を満たしているかを確認するテストです。

入力データに対して仕様通りの出力結果が得られることを確認します。

ブラックボックステスト

例えば、有効な登録番号がかどうかを判定するモジュールであれば、有効な登録番号を入力すると「true」、無効な登録番号を入力すると「false」が返却されるといった形です。

なるほど。入力データはどんなデータでもいいんですか?
ブラックボックステストには、テストデータを作成する基準として「同値分割法」と「限界値分析」というのがあるので、その基準に従ったデータでテストを実施することが多いです。

同値分割法

同値分割法とは、データを範囲ごとのグループに分けて、それぞれのグループから代表的な値を決めてその値で試験する方法です。

例えば、下記の例では、0未満は無効な値、0~99は有効な値、99を超えると無効な値というデータだとします。これを、以下のように3グループに分けて、それぞれの代表値を決めて、その値で試験を実施するという形です。

  • 「-1以下グループ」(無効な範囲)
  • 「0~99グループ」(有効は範囲)
  • 「100以上グループ」(無効な範囲)

同値分割法

その結果、以下のような出力結果が得られます。

入力データ 出力結果
-10 無効な値
50 有効な値
110 無効な値

境界値分析

境界値分析では、境界部分を重点的にチェックする方法です。

以下の例では、0~99が有効な範囲であり、下限値の境界は0、上限値の境界は99です。この下限と上限の境界部分の値を確認します。

下限値で確認するのは「-1」と「0」、上限値で確認するのは「99」と「100」です。

境界値分析

境界値のチェックを行うことで、本来であれば「0 <= 有効な範囲 <= 99」(0と99を含む)と書くべき処理を、誤って「0 < 有効な範囲 < 99」(これだと0と99が含まれない)と判定してしまっていた場合、気づくことができます。

範囲を表す言葉には「10以上」「10より大きい」「10超」「10以下」「10より小さい」「10未満」といった様々な表現があり、プログラムを組む際、境界値の条件でミス(バグ)が発生してしまうことはよくあります。そのため、境界値の確認は非常に重要です。
言葉の表現 意味
10以上 10を含む。10~
10より大きい 10を含まない 。11~
10超 10を含まない。11~
10以下 10を含む。 ~10
10より小さい 10を含まない。 ~9
10未満 10を含まない。 ~9

helpful