トップダウンテストとボトムアップテストの違いは何か?ソフトウェアのテストの方法を解説

2021年2月8日

トップダウンテストとボトムアップテストの概要

トップダウンテストボトムアップテストは、システム内の上位モジュールと下位モジュールの流れをテストする手法です。
上位モジュールから下位モジュールへの流れで行うテストを「トップダウンテスト」、下位モジュールから上位モジュールへの流れで行うテストを「ボトムアップテスト」と言います。

トップダウンテストについて

トップダウンテストとは

トップダウンテストは、上位モジュールから下位モジュールへの連携をテストするものです。
システムテストの中では「結合テスト」に位置します。
この「上位モジュール」とは、主に外部から直接呼び出されるものを指します。
上位モジュールはシステムの処理状態やリソースを管理しており、常にアクティブ状態のものが多いのが特徴です。
上位モジュールは、下位モジュールを呼び出すことが主な機能になります。
下位モジュールを呼び出す際のインターフェースなどをチェックするのがトップダウンテストです。
トップダウンテストは下位モジュールを少しずつつなぎ合わせ、問題がなければさらにつなぎ合わせるモジュールを増やします。これは結合テストの中で「増加テスト」に分類されます。

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

トップダウンテストは徐々にテストを行うため、不具合を早期発見できるというメリットがあります。
また、機能を呼び出す重要モジュールを何度も使用するため、信頼性を向上するのにも適しています。とくに新規システム開発で役立つテストといえるでしょう。

一方で、下位モジュールが未完成だった場合、テスト時に代替モジュールとなる「スタブ」を作成する必要があります。スタブとは上位モジュールから呼び出されるだけの機能を持ったダミーモジュールです。
システムが大きければスタブを作る量も多くなるため、このスタブ作成に時間がかかりやすいのがトップダウンテストの懸念点の一つです。

ボトムアップテストについて

ボトムアップテストとは

ボトムアップテストは、下位モジュールから上位モジュールへの連携をテストするものです。
まず下位モジュール単体のテストを行い、問題なければ上位モジュールと結合してテストを行います。
下位モジュールとは、システム内で上位モジュールから呼び出されるものを指します。単体で機能を持っているものが多く、それぞれの汎用性が高いのが特徴です。

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

ボトムアップテストは下位モジュールからテストを行うため、システム開発と並行してテストを行うことができます。これにより、開発しながらモジュールの機能の再検討や調整が可能です。
この特性から、ボトムアップテストはとくに既存システムの修正や、既存システムを利用しての開発に向いています。
もし上位のモジュールがまだテストできない場合、「ドライバ」と呼ばれる代替モジュールを作成してテストを行います。
ドライバとは、上位からテスト対象モジュールを呼び出すだけの機能を持ったダミーモジュールです。

ただし、もし上位モジュールのテストをした際に問題が発生した場合、下位モジュール全体を改修しなければならないことがあります。これらの改修は規模が大きくなりやすいため、不具合に対応するための余裕を持ったスケジュールが重要です。

参考