---
title: "ボトムアップテストとは？下位モジュールから結合して確認する方法【基本情報技術者試験】"
description: "ボトムアップテストを「下位モジュールから上位モジュールへ順に結合して確認するテスト」として整理し、ドライバ、スタブ、トップダウンテストとの違いをFE試験向けに解説します。"
last_modified_at: "2026-07-25"
canonical_url: "https://stemtazoo.github.io/fe/bottom-up-testing/"
section: "fe"
---

## まず結論

ボトムアップテストとは、**下位モジュールから上位モジュールへ、順に結合しながら確認する結合テスト**です。

基本情報技術者試験では、ボトムアップテストは **下から上へ結合するので、ドライバが必要** と覚えると判断しやすいです。

反対に、トップダウンテストでは **スタブが必要** になります。

```text
ボトムアップテスト：下から上へ。ドライバが必要
トップダウンテスト：上から下へ。スタブが必要
```

## 直感的な説明

ボトムアップテストは、部品から順に組み上げていくイメージです。

例えば、システムが次のような構造だとします。

```text
上位モジュール
  ↓
中位モジュール
  ↓
下位モジュール
```

ボトムアップテストでは、まず下位モジュールを確認します。

その後、中位モジュール、上位モジュールへと、少しずつ結合していきます。

```text
下位モジュール
↓
中位モジュールと結合
↓
上位モジュールと結合
```

ただし、下位モジュールを単独で動かすには、上位モジュールの代わりに呼び出してくれるテスト用プログラムが必要です。

このテスト用プログラムを **ドライバ** と呼びます。

## 定義・仕組み

ボトムアップテストは、モジュール構成の下位モジュールから順に結合していくテスト方法です。

主に、結合テストの進め方として出題されます。

| 用語 | 意味 |
|---|---|
| モジュール | プログラムを構成する部品 |
| 下位モジュール | 上位モジュールから呼び出される部品 |
| 上位モジュール | 下位モジュールを呼び出す側 |
| ドライバ | 未完成の上位モジュールの代わりに、下位モジュールを呼び出すテスト用プログラム |
| スタブ | 未完成の下位モジュールの代わりになる仮のプログラム |

ボトムアップテストでは、下位モジュールからテストを始めます。

しかし、下位モジュールは本来、上位モジュールから呼び出されるものです。

そのため、上位モジュールがまだ未完成の場合、下位モジュールを呼び出すための **ドライバ** が必要になります。

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

## 科目Aでどう出る？

科目Aでは、ボトムアップテストの特徴や、ドライバとスタブの違いを問う問題で出題されやすいです。

判断するときは、次の表現に注目します。

| 問題文・選択肢の表現 | 判断 |
|---|---|
| 下位モジュールから上位モジュールへ結合する | ボトムアップテスト |
| ドライバが必要 | ボトムアップテスト |
| 上位モジュールから下位モジュールへ結合する | トップダウンテスト |
| スタブが必要 | トップダウンテスト |
| モジュール間のインタフェースを確認する | 結合テスト |
| 個々のモジュールを単独で確認する | 単体テスト |

代表的な選択肢は、次のように切り分けます。

| 選択肢の方向性 | 判断 |
|---|---|
| 開発初期は並行作業が困難 | ボトムアップの特徴としては弱い |
| スタブが必要 | トップダウンテスト寄り |
| テスト済みの上位モジュールが必要 | ボトムアップの説明としては不適切 |
| ドライバが必要 | ボトムアップテスト |

ボトムアップテストのキーワードは、**下位から結合** と **ドライバ** です。

## どんな場面で使う？

問題文では、モジュール構成図やテスト計画を読んで、どの順序でテストするかを判断する場面があります。

ボトムアップテストでは、次のように考えます。

```text
下位モジュールを確認する
↓
下位モジュールを組み合わせる
↓
中位モジュールと結合する
↓
上位モジュールと結合する
```

もし、上位モジュールがまだ完成していない状態で下位モジュールをテストしたい場合は、ドライバを使います。

```text
ドライバ
↓ 呼び出す
下位モジュール
```

つまり、ドライバは **下位モジュールを動かすための仮の呼び出し役** です。

問題文で「下位モジュールを先にテストする」「上位モジュールの代わりに呼び出す」とあれば、ボトムアップテストやドライバを疑います。

## よくある誤解・混同

ボトムアップテストでよくある誤解は、**スタブとドライバを逆に覚えてしまうこと** です。

| 誤解 | 正しい理解 |
|---|---|
| ボトムアップテストではスタブを使う | ボトムアップテストではドライバを使う |
| トップダウンテストではドライバを使う | トップダウンテストではスタブを使う |
| ドライバは下位モジュールの代わり | ドライバは上位モジュールの代わりに下位を呼び出す |
| スタブは上位モジュールの代わり | スタブは下位モジュールの代わりに呼ばれる |
| ボトムアップテストは単体テストのこと | ボトムアップは結合テストの進め方 |

トップダウンテストとの違いは、次の表で押さえると楽です。

| テスト | 進め方 | 必要になりやすいもの |
|---|---|---|
| ボトムアップテスト | 下位から上位へ | ドライバ |
| トップダウンテスト | 上位から下位へ | スタブ |

覚え方は、次のようにするとシンプルです。

```text
下を動かすには、上から呼ぶ役が必要
→ ドライバ

上を動かすには、下の仮部品が必要
→ スタブ
```

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

- ボトムアップテストは、下位モジュールから上位モジュールへ結合して確認する
- ボトムアップテストでは、ドライバが必要になりやすい
- ドライバは、上位モジュールの代わりに下位モジュールを呼び出す
- トップダウンテストは、上位から下位へ進める
- トップダウンテストでは、スタブが必要になりやすい
- 「下から上ならドライバ、上から下ならスタブ」で切り分ける
