1. HOME
  2. Geekly Media
  3. トップダウンテストとは??ボトムアップテストと比較しながら分かりやすく解説!
サムネイル-TOPDOWNとBOTTOMUP

トップダウンテストとは??ボトムアップテストと比較しながら分かりやすく解説!

トップダウンテストは、上位モジュールから下位モジュールへの連携をテストします。システム開発者としては必須の知識といえるでしょう。また、テスト時に利用するスタブの役割なども知っておく必要がります。今回は、トップダウンテストについて、ボトムアップテストと比較しながら分かりやすく解説します。

平均年収UP率77万円!キャリアアップを叶えるならIT転職ギークリー - キャリアの相談をしてみる

トップダウンテストとは

 

イメージ画像-トップダウンぽい画像

 

トップダウンテストとは、システム開発における結合テストのひとつです。

システムは、さまざまな機能にわかれたモジュールが、すべて組み合わさり機能しなければなりません。

一つ一つのモジュールテストを単体テストと呼び、モジュールを組み合わせたテストを結合テストと呼びます。

このとき、テスト対象のモジュールを上位モジュールから下位モジュールへテストする流れをトップダウンテストといいます。

トップダウンテストをおこなう際に、利用できない下位モジュールがある場合にはスタブというダミーの下位モジュールを利用します。(スタブについては後述します)

 

ボトムアップテストとは

 

イメージ画像-BOTTOMUPぽい画像

 

上位モジュールからテストをおこなうトップダウンテストに対して、下位モジュールからおこなうテストをボトムアップテストといいます。

まずシステムの部品となる下位のモジュールのテストのテストを行い、問題がなければ上位モジュールと結合してテストを進めていきます。

ボトムアップテストをおこなう際に、まだ利用できない上位モジュールが必要な場合には、ダミーの上位モジュールであるドライバを用意します。(ドライバについては後述します)

 

ビッグバンテストとは

 

トップダウンテストやボトムアップテストはモジュールを1個ずつ追加していく増加テストに対して、まだテストを行っていないモジュールも含め一気に行うビッグバンテストがあります。

この方法だとテストを速く行える一方、もし不具合が生じた場合にどこに原因があるか調べるのが難しいという欠点もあります。

基本的にはボトムアップテストやビッグバンテストを完了後に最終確認として用いられます。

しかし、プロジェクトの進捗がギリギリになってしまいやむ得ない場合や、モジュールの少ない単純なプログラムの場合にもビッグバンテストは採用されます。

本記事ではトップダウンテストとボトムアップテストについて紹介していきますが、ビッグバンテストという方法があることも是非覚えといていただけると幸いです。

 

IT業界の求人を探すならGeekly(ギークリー)がおすすめ

 

\ AIスキルを活かす求人が見つかる! /

 

 

「自分に合う条件の求人がなかなか見つからない…」

「今のスキルでチャレンジできる求人ってあるの?」

「もっと環境が良い職場で働きたい!」

 

上記のような大切なキャリアのご相談はぜひ「IT特化の転職エージェント ギークリー」にお任せください!

GeeklyではIT業界や職種を熟知したキャリアアドバイザーがどんなお悩みでもお話を伺い、業界特化の45,000件*以上の豊富な求人情報から、あなたに合った求人をご提案いたします。

(*26年1月時点)

 

求人を紹介してもらう

 

 

Geeklyを利用して転職成功したKさんの例

 

転職プロフィール

  • ご年齢:40代
  • 企業:受託開発⇒事業会社
  • 職種:システムエンジニア⇒Webエンジニア
  • 転職回数:1回
  • 転職理由:自社のプロダクトに携わりたかった

 

Q.転職活動においてどのようなことを不安に感じられましたか?

単にどのくらい転職活動に時間をかけないといけないのか見えていなかったという点と、転職活動を考え出した35歳は市場や企業にとって需要があるのかという点です。

 

Q.転職活動で得られた気づきや考えの変化はありましたか?

転職活動に対しての不安はギークリーで面談して、一瞬で解消されました。面談後の書類の作成も一緒に進めていただいたので、「こんな感じでいいんだ」と不安が払拭されました。

 

Q.ギークリーで紹介された求人についてはいかがでしたか?

準備していただいた求人は100社以上もありパワフルさを感じたのですが、最初の面談の時に書類を応募する企業数と、そのうち一次面接を通る総定数や内定が出る企業の総定数を出していただいて、それをどのくらいの期間で行うのかという指針があったので、納得感がありました。

 

【あわせて読みたい】事業会社へ転職に成功したKさんの事例はこちら⇓

 

求人を紹介してもらう

 

 

Geeklyのサービスご利用の流れ

 

STEP1:以下のボタンから転職支援サービスにご登録

 

STEP2:キャリアアドバイザーとのカウンセリング

 

STEP3:求人のご紹介

 

STEP4:書類選考/面接

 

STEP5:入社/入社後フォロー

 

IT特化の転職エージェントのGeekly(ギークリー)なら、専門職種ならではのお悩みも解決できる専任のキャリアアドバイザーがカウンセリングから入社後まで完全無料で全面サポートいたします!

 

転職しようか少しでも悩んでいる方は、お気軽に以下のボタンからご相談ください。

 

\ エンジニアのキャリアに迷ったら! /

キャリア相談をしてみる

 

 

【ギークリー転職成功体験談】エンジニアの方の口コミ

 

 

ここでは、実際にGeekly(ギークリー)のサービスをご利用いただき、年収アップ転職を実現された方の声をご紹介します。

 

【ギークリー転職成功体験談】調査概要

  • 調査対象:弊社をご利用いただいたIT業界にお勤めの転職希望の方
  • 調査期間:2024年8月~2025年8月
  • 調査方法:Web上のアンケートフォームへの入力


 

<転職成功事例:30歳 バックエンドエンジニア>

 

『職場環境よりも、事業やプロダクトへの共感を重視して転職活動を行いました。自身のスキルの市場価値が分からず、「選考が通る企業があるのか」という不安が大きかったですが、ギークリーの担当者から面接のフィードバックを受け、よい意味で予想外に順調に進められたという実感があります。
日程調整もスムーズで、転職の軸を深堀りしてもらったおかげで職場決めも順調でした。』

 

 

<転職成功事例:38歳 QAエンジニア>

 

『新卒で入社した企業でQAエンジニアからキャリアをスタートしました。会社の業務方針が変わるタイミングで「QAを必要としている会社でQAとして働きたい」という考えに至ったのが、転職を決意したきっかけです。
「サービスを創る側に回ること」と「ワークライフバランスが良いこと」の2点を転職の軸として転職活動を行いました。ギークリーの担当者の経験に裏付けされたアドバイスと前向きな言葉が印象的でした。』

 

 

<社内SE(開発)⇒Webマーケティング企画へ転職>

 

『ぼんやりと現職以外の選択肢を考えてはいても、書類の作成や応募など、一人ではハードルとなって手が止まってしまう部分を最もスムーズにサポート頂いたことが決め手だったように思います。』

(30歳男性/2025年8月の口コミ)

 

<Web系エンジニア)⇒社内SE(開発)へ転職>

 

『担当の方は私の希望やキャリアの方向性を深く理解した上で、最適な提案をしていただきました。おかげさまで、自信を持って次のステップに進むことができそうです。心から感謝しております。』

(36歳男性/2024年8月の口コミ)

 

<業務系エンジニア⇒web系SE・PG(SI・受託)へ転職>

 

『スピード感のあるサポートは過去に使った他社と比較して、とても心強かったです。』

(27歳男性/2025年5月の口コミより)

<社内SE(開発)⇒プロジェクトマネージャー(業務系)へ転職>

 

『こまめな連絡や企業との交渉など非常にありがたく、結果的に自分が望む活動、結果となりました。この度はありがとうございました。』

(48歳男性/2025年6月の口コミより)

 

\ レガシーな環境に悩んだら? /

無料相談してみる

 

 

上位モジュールと下位モジュール

 

トップダウンテストやボトムアップテストの説明をするうえで上位モジュールや下位モジュールがどのようなものかを理解しておく必要があります。

 

上位モジュール

 

イメージ画像-半導体

 

上位モジュールは、システム内で下位モジュールを呼び出す立ち位置です。システムの処理状態やリソースなどを把握しており、常にシステム上でアクティブであるモジュールです。

スマートフォンを例に挙げるとすると、スマートフォン自体が上位モジュールにあたり、スマートフォンを操作して起動するアプリが下位モジュールといったイメージです。

スマートフォンは、現在どのようなアプリが起動しているかを把握し、リソースの状態によっては不要なアプリの機能を停止します。

アラームをセットすれば、スマートフォン自体が時間モジュールから時刻を把握し、セットされた時間にアラームモジュールを呼び出し起動するイメージだとわかりやすいかもしれません。

上位モジュールは、単体の機能をもつ下位モジュールを呼び出し、状態を把握するモジュールです。

 

下位モジュール

 

イメージ画像-歯車

 

下位モジュールとは、システム内で上位モジュールに呼び出されるモジュールです。

下位モジュールの特徴と機能は以下の通りです。

・汎用性の高い単体機能が多い

・呼び出されたら単体で機能を実行する

上述のスマートフォンの例でいえば、いつスマートフォンから起動されるかは把握しておらず、呼び出されたら実行するというだけです。

アラームのモジュールであっても、実行する時間は把握していませんので、スマートフォンから呼び出されればアラームを鳴らしますし、スマートフォンから命令があればアラームを止めます。

リソースなども把握していませんので、上位モジュールに開放されれば素直に従います。

 

\ レガシーな環境に悩んだら? /

無料相談してみる

 

 

スタブとドライバ

 

イメージ画像-考える人

 

システムテストにおいて、トップダウンテストでもボトムアップテストでも、すべてのモジュールがそろっている状態が理想です。

しかし、モジュールがそろっていない場合には、簡易的にダミーのモジュール(スタブやドライバ)を用意してテストをおこないます。

 

スタブの役割

 

下位モジュールの代わりに利用するモジュールがスタブです。

スタブは、基本的に何の機能も持っておらず、モジュールから呼び出されるだけの、ダミーのモジュールとして用意されます。

スマートフォンの例でいえば、時間通りにアラームモジュールを呼び出せるかというテストの際、その動作を確認するためだけに、鳴らないアラームモジュールを用意するイメージです。これが、スタブの役割です。

 

ドライバの役割

 

ボトムアップテストをおこなう際、必要な上位モジュールの代わりに利用するのがドライバです。

ドライバは、ダミーの上位モジュールとして、テスト対象のモジュールを呼び出すだけの役割を果たします。

テスト対象のモジュールがスマートフォンのアラームであれば、アラームを呼び出す部分だけを持つ、ダミーのスマートフォンを用意するのです。

トップダウンテストで利用するスタブとは真逆のダミーモジュールです。

 

\ IT業界・職種の最新情報が満載! /

まずは情報収集してみる

 

 

トップダウンテストのメリットとデメリット

 

イメージ画像-チェックする人

 

トップダウンテストには、メリットとデメリットがあります。

 

メリット:不具合の早期発見

 

トップダウンテストは上位モジュールのテストを行い、下位モジュールを結合して徐々にテストをおこなうため、モジュールを結合した場合の不具合を早期発見できます。

呼び出せない下位モジュールや、リソース管理の不具合、処理や起動のタイミングなどで期待しない動きがあれば、早い段階で特定できるのです。

また、テストでは重要なモジュールが何度も使用されるため、モジュールの信頼性を高めるというメリットがあります。

 

デメリット:スタブを作る必要がある

 

下位モジュールが開発途中の場合、スタブで対応します。しかし、完成していない下位モジュールの数が多い場合は、その分スタブをつくり続けなければなりません

下位モジュールは、システムによっては複数の分岐したモジュールが必要な場合もあります。

スタブは複雑になり、テストごとのスタブ作成だけで時間がとられてしまうことがあるのです。

 

\ 可能性が広がる職場が分かる! /

仕事タイプ診断をする

 

 

ボトムアップテストのメリットとデメリット

 

 

ボトムアップテストにも、メリットとデメリットがあります。

 

メリット:開発と同時進行しやすい

 

下位モジュールからテストしていくため、初期の段階で開発とテストの同時進行を行いやすいメリットがあります。そのためモジュール単体の機能の吟味やそのテストを十分に行うことが可能です。

 

デメリット:一気に影響を受けやすい

 

上位モジュールのテストを最後に行うため、最終段階でインターフェイス上で何か問題が出てくる可能性が高いです。

また、上位モジュールで問題が発生してしまい余儀なく改修する場合、その際に下位モジュールもそれに合わせて改修する必要があり影響がでてきます。

 

\ レガシーな環境に悩んだら? /

無料相談してみる

 

 

トップダウンテストをおこなうタイミングと注意点

 

イメージ画像-腕を組む人

 

以下、トップダウンテストをおこなう際に意識する、タイミングと注意点です。

・上位モジュールと下位モジュールを結合テストするタイミング

・余裕を持ったスケジュール

 

上位モジュールと下位モジュールの結合テスト

 

トップダウンテストをおこなうタイミングのひとつは、上位モジュールと下位モジュールの結合テストです。

システムの本来の動作を上位から実行することで、不具合の問題切り分けを容易にします

下位モジュールが多いほど、上位モジュールが実行される回数も多くなり、上述したメリットである信頼性の担保にもつながるのです。

 

余裕を持ったスケジュール

 

トップダウンテストは、システムテストをおこなう前の段階で実施されます。

結合テストですので、多くの不具合が出ることも予測しておかなければなりません。そこで注意すべき点は、不具合の改修の余裕も見越したスケジュール管理です。

システムの多くは、多岐にわたる下位モジュールをもっています。システムの処理が複雑になればなるほど、そのテスト範囲も広くなり、不具合も比例して多くなるでしょう。

スタブを使ったテストではうまくいっていたものも、すべての下位モジュールがそろうと不具合が出るという現象もあります。

不具合を改修し、テストをおこなう。この繰り返しを見越したスケジュール管理が必要ということです。

 

\ 最新のAI求人が見つかる! /

求人を紹介してもらう

 

 

まとめ

 

イメージ画像-パソコンいじる人

 

トップダウンテストは、上位モジュールから下位モジュールへと降りていく結合テストです。下位モジュールがなければスタブを作成することで、テストをおこないます。

スタブとドライバで混乱するという人もいますが、身近なモノに置き換え、しっかりとイメージして覚えましょう。

また、何度もテストを繰り返すことで、信頼性の向上にもつながります。状況に合わせて、トップダウンテストとボトムアップテストを使い分けることが大切です。

 

\ レガシーな環境に悩んだら? /

無料相談してみる

 

この記事の執筆者

ギークリーメディア編集部

主にIT・Web・ゲーム業界の転職事情に関する有益な情報を発信するメディアの編集部です。転職者であれば転職市場や選考での対策、企業の採用担当者様であればIT人材の流れ等、「IT業界に携わる転職・採用」の事情を提供していきます。

サムネイル-TOPDOWNとBOTTOMUP

この記事が気に入ったらSNSでシェアをお願いします

あわせて読みたい関連記事

新着記事はこちら