---
title: "ブラックボックステストとは？入力と出力で仕様どおりか確認する方法【基本情報技術者試験】"
description: "ブラックボックステストを「内部処理を見ずに、入力と出力が仕様どおりかを確認するテスト」として整理し、ホワイトボックステストとの違いとFE試験で選択肢を切る判断基準を解説します。"
last_modified_at: "2026-06-25"
canonical_url: "https://stemtazoo.github.io/fe/black-box-testing/"
section: "fe"
---

## まず結論

ブラックボックステストとは、**プログラムの内部処理を見ずに、入力と出力が仕様どおりかを確認するテスト**です。

基本情報技術者試験では、ブラックボックステストは **機能仕様・インタフェース仕様に基づいてテストケースを作る方法** と覚えると判断しやすいです。

逆に、処理手順、ロジック経路、条件判定の真偽を見ている説明は、ブラックボックステストではなくホワイトボックステスト寄りです。

## 直感的な説明

ブラックボックステストは、**中身が見えない自動販売機を外から試す**イメージです。

例えば、自動販売機の中の配線や制御プログラムは見ません。

見るのは、次のような外から分かる動きです。

- 100円を入れて、100円の商品が買えるか
- 売り切れの商品を選んだとき、購入できないか
- おつりが正しく返るか
- 押したボタンに対応した商品が出るか

このように、ブラックボックステストでは **内部でどんな処理をしているか** ではなく、**入力に対して期待した出力になるか** を確認します。

## 定義・仕組み

ブラックボックステストは、システムやプログラムの内部構造を考慮せず、外部から見える機能に注目して行うテストです。

テストケースは、主に次のような情報をもとに設計します。

| 見るもの | ブラックボックステストでの役割 |
|---|---|
| 機能仕様 | どの入力に対して、どの出力になるべきかを確認する |
| インタフェース仕様 | 画面、API、入出力項目などの外から見える仕様を確認する |
| 入力値の範囲 | 正常値、異常値、境界値を決める |
| 期待結果 | 出力、エラー表示、処理結果が仕様どおりかを確認する |

代表的なテストケース設計の考え方には、次のようなものがあります。

| 手法 | 見るポイント |
|---|---|
| 同値分割 | 同じように扱える入力をグループ化する |
| 限界値分析 | 境界の値や、その前後を確認する |
| デシジョンテーブル | 条件の組合せと結果を整理する |
| 原因結果グラフ | 入力条件と出力結果の関係を整理する |
| エラー推測 | 起こりやすいミスを想定して確認する |

このテーマは、基本情報技術者試験の「ソフトウェア開発」や「テスト」に関係する内容です。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目Aでどう出る？

科目Aでは、ブラックボックステストとホワイトボックステストの違いがよく問われます。

判断するときは、**テストケースを何に基づいて設計しているか** を見ます。

| 説明に出てくる言葉 | 判断 |
|---|---|
| 機能仕様に基づく | ブラックボックステスト |
| インタフェース仕様に基づく | ブラックボックステスト |
| 入力と出力に注目する | ブラックボックステスト |
| 処理手順に基づく | ホワイトボックステスト |
| ロジック経路に基づく | ホワイトボックステスト |
| 条件判定の真偽を実行する | ホワイトボックステスト |
| ソースリストを参照する | ホワイトボックステスト寄り |

例えば、次のような説明はブラックボックステストです。

```text
プログラムの機能仕様やインタフェース仕様に基づいて，
入力値と期待結果を決め，テストケースを設計する。
```

この説明は、内部処理ではなく、外から見える仕様に基づいています。

一方で、次のような説明はホワイトボックステスト寄りです。

```text
プログラムの処理手順やロジック経路を確認し，
すべての条件判定の真偽を少なくとも1回ずつ実行する。
```

この説明は、内部の処理構造を見ています。

科目Aでは、**仕様・入力・出力ならブラックボックス、ロジック・経路・条件ならホワイトボックス** と考えると選択肢を切りやすいです。

## 科目Bでどう使う？

ブラックボックステスト自体は、科目Bの擬似言語トレース問題で中心になることは多くありません。

ただし、科目Bで問題文の仕様を読むときに、ブラックボックステストの考え方は役立ちます。

例えば、問題文に次のような仕様があるとします。

```text
点数が60点以上なら「合格」と表示する。
60点未満なら「不合格」と表示する。
```

この仕様からテストケースを考えるなら、内部のif文そのものを見るのではなく、入力と期待結果を整理します。

| 入力 | 期待結果 |
|---:|---|
| 59 | 不合格 |
| 60 | 合格 |
| 61 | 合格 |

このように、ブラックボックステストでは、**仕様から入力値と期待結果を作る** ことを意識します。

科目Bでプログラムを読むときも、問題文の仕様と出力結果が対応しているかを確認すると、処理の目的を見失いにくくなります。

## よくある誤解・混同

ブラックボックステストで一番混同しやすいのは、ホワイトボックステストです。

| テスト | 見るもの | 判断の合図 |
|---|---|---|
| ブラックボックステスト | 外から見える機能 | 入力、出力、仕様、インタフェース |
| ホワイトボックステスト | 内部の処理構造 | ソースコード、ロジック、経路、条件判定 |

ブラックボックステストは、プログラムの中身を全く知らなくてもよい、という意味ではありません。

試験では、**テストケースを作る根拠として内部構造を使わない** と考えると十分です。

また、ブラックボックステストは「コーディング後に行うテスト」という意味でもありません。

実施時期だけで判断すると迷いやすくなります。  
FE試験では、**何に基づいてテストケースを設計するか** を優先して見ます。

- 機能仕様に基づくなら、ブラックボックステスト
- ソースコードや処理経路に基づくなら、ホワイトボックステスト

この切り分けを押さえておくと、似た選択肢でも判断しやすくなります。

## まとめ（試験直前用）

- ブラックボックステストは、内部処理を見ずに入力と出力を確認するテスト
- テストケースは、機能仕様やインタフェース仕様に基づいて作る
- 「仕様」「入力」「出力」が出たらブラックボックステストを疑う
- 「ソース」「ロジック」「経路」「条件判定」が出たらホワイトボックステストを疑う
- 実施時期ではなく、何に基づいてテストケースを設計するかで判断する
