ブラックボックステスト(black box testing)
- テクノロジ系
- システム開発技術
- 基本情報
- 応用情報
- 重要度 ★★★★☆
内部の作りを見ず、入力と出力の関係だけで、仕様どおりに動くかを確かめるテスト。
もう少し詳しい説明
ブラックボックステストは、プログラムの中身を見ずに、入力と出力だけで確かめるテストです。
名前のとおり、対象を「中の見えない黒い箱」として扱います。見るのは、仕様書どおりの入力を与えたら、仕様書どおりの出力が返るかだけです。
中を読まないので、作った本人でなくても行えます。仕様書さえあればテストできる、というのがこのやり方の性質です。
テストデータはどう選ぶか
入力として考えられる値は、ふつう膨大です。整数を1つ受け取るだけでも、全部試すことはできません。そこで、少ない数で、効率よく誤りを見つけられる選び方が2つ決まっています。
① 同値分割
同じ結果になる入力を1つのまとまり(同値クラス)と見て、そこから代表を1つだけ選びます。
「1以上100以下の整数」を受け付けるなら、まとまりは3つです。
| まとまり | 代表の例 |
|---|---|
| 0以下(無効) | -5 |
| 1〜100(有効) | 50 |
| 101以上(無効) | 200 |
50 で正しく動くなら 51 でも動くはずだ、という見込みで数を減らします。
② 限界値分析
まとまりの境目にあたる値を選びます。上の例なら、0、1、100、101 の4つです。
なぜ境目かというと、誤りが境目に集まるからです。「100以下」と書くべきところを「100未満」と書いてしまえば、100 だけが通らなくなります。50 をいくら試しても、この誤りは見つかりません。
この2つは対立するものではなく、組にして使います。同値分割でまとまりを決め、その境目を限界値分析で突く、という順です。
ホワイトボックステストとの違い
対にして問われるので、違いを押さえておきます。
| ブラックボックステスト | ホワイトボックステスト | |
|---|---|---|
| 見るもの | 仕様書(入力と出力) | プログラムの中身(処理の通り道) |
| 確かめること | 仕様どおりに動くか | 命令や分岐を通したか |
| 主に使う場面 | システムテスト・受入テスト | 単体テスト |
| 中の作り | 見ない | 見る |
どちらが優れているという話ではありません。 見つけられる誤りの種類が違うので、両方を使います。
このテストで見つからないもの
ブラックボックステストが苦手なのは、仕様書に書かれていない誤りです。
たとえば、使われていない処理がプログラムに残っていても、入力と出力が仕様どおりなら気づけません。逆に、仕様書に書かれた機能の作り忘れは、仕様に沿ってテストを用意していれば見つかります。ここはホワイトボックステストと正反対です。
覚え方:箱の色は「見えるかどうか」
名前だけで区別できます。
- ブラックボックス … 中が見えない。だから仕様書だけを見る
- ホワイトボックス … 中が見える。だからプログラムを見る
色は「中身が見えるかどうか」を表しているだけです。この一言で結び付けておけば、取り違えることはありません。
試験ではこう出る
科目A(旧・午前)の開発技術分野で頻出です。多いのは、ブラックボックステストの説明を選ばせる問題と、値の範囲を示して限界値分析で選ぶべきデータを答えさせる問題です。ホワイトボックステストと並べて、どちらの説明かを判断させる形もよく出ます。応用情報では、テストケースの過不足を指摘させる形に踏み込みます。
限界値の問題で迷ったら、「境目そのもの」と「そこから1つ外れた値」を書き出すのが確実です。1以上100以下なら 0・1・100・101 の4つになります。境目の内側だけ(1と100だけ)を選んだ選択肢は、無効な値をはじけるかを確かめていないので誤りだと判断できます。
関連する用語
- ホワイトボックステスト
- 中の処理の通り道を見て行うテスト。見る場所が正反対で、対にして問われる
- 同値分割
- 同じ結果になる入力のまとまりに分け、そこから代表を1つずつ選ぶ方法
- 限界値分析
- 有効と無効の境目の両側を選ぶ方法。誤りは境目に集まりやすいため
- 要件定義
- 何を作るかを決める工程。ブラックボックステストは、ここで決めたことの答え合わせ
- システムテスト
- 完成したシステム全体を、利用者の使い方に沿って確かめるテスト
ミニクイズ
1以上100以下の整数を受け付けるプログラムに対し、限界値分析によってテストデータを選ぶとき、最も適切なものはどれか。
正解は 1番:0、1、100、101
限界値分析は、有効と無効が切り替わる境目の、両側の値を選ぶ方法です。境目は1と100なので、有効側の1と100、無効側の0と101の4つを選びます。「1、50、100」は有効な範囲の中だけなので、無効な値を正しくはじけるかを確かめられません。「-100、0、100、200」に含まれる-100と200は境目から離れた値で、これは同値分割で選ぶ代表値にあたります。「50、51」は境目とは関係のない位置で、隣り合っているだけです。境目そのものと、そこから1つ外れた値を組にする、と覚えておいてください。
最終更新:2026-09-18