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

## まず結論

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

基本情報技術者試験では、トップダウンテストは **上から下へ結合するので、スタブが必要** と覚えると判断しやすいです。

反対に、ボトムアップテストでは **ドライバが必要** になります。

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

## 直感的な説明

トップダウンテストは、システムの大きな流れから確認していくイメージです。

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

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

トップダウンテストでは、まず上位モジュールを確認します。

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

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

ただし、上位モジュールを先に動かすと、まだ完成していない下位モジュールを呼び出す場面があります。

このとき、未完成の下位モジュールの代わりになる仮のプログラムを **スタブ** と呼びます。

## 定義・仕組み

トップダウンテストは、モジュール構成の上位モジュールから順に結合していくテスト方法です。

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

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

トップダウンテストでは、上位モジュールからテストを始めます。

しかし、上位モジュールは本来、下位モジュールを呼び出しながら動きます。

そのため、下位モジュールがまだ未完成の場合、代わりに呼び出される **スタブ** が必要になります。

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

## 科目Aでどう出る？

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

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

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

選択肢で「スタブが必要」とあれば、トップダウンテストを疑います。

一方で、「ドライバが必要」とあれば、ボトムアップテストを疑います。

## どんな場面で使う？

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

トップダウンテストでは、次のように考えます。

```text
上位モジュールを確認する
↓
中位モジュールを結合する
↓
下位モジュールを結合する
```

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

```text
上位モジュール
↓ 呼び出す
スタブ
```

つまり、スタブは **未完成の下位モジュールの代わりに呼ばれる仮部品** です。

問題文で「上位モジュールを先にテストする」「下位モジュールの代わりを用意する」とあれば、トップダウンテストやスタブを疑います。

## よくある誤解・混同

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

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

ボトムアップテストとの違いは、次の表で押さえると楽です。

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

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

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

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

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

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