ボトムアップテストは、ソフトウェア開発でよく使われるテスト手法のひとつです。しかし、具体的な実施方法やメリットについて詳しく知らない人も少なくありません。

そこでこの記事では、ボトムアップテストに関連する概念やメリット・デメリットまで詳しく解説します。

ボトムアップテストとは?

ボトムアップテストとは?

ボトムアップテストとは、ソフトウェア開発におけるテスト手法のひとつです。下位のモジュールから上位へと順に結合しながら動作を検証していきます。

複数のモジュールを組み合わせて開発を行う際、問題の発生箇所を特定しやすいように、完成後にすべてをつないでテストすることは一般的ではありません。少しずつモジュールを追加しながら繰り返し検証する「結合テスト」がよく用いられます。

その際、ドライバ(ダミーの上位側)を用意し、下位モジュールから順に結合してテストする方式がボトムアップテストです。

ボトムアップテストを行う前に知っておきたい4つの概念

ボトムアップテストを行う前に知っておきたい4つの概念

ボトムアップテストを行う前に知っておきたい概念には、以下の4つが挙げられます。

  1. 上位モジュール
  2. 下位モジュール
  3. スタブ
  4. ドライバ

ここではそれぞれに分けて解説しますので、詳しく見ていきましょう。

1.上位モジュール

上位モジュールは、システム内において「下位モジュールを呼び出す」場所に位置しています。システムのリソースなどを常に把握し、システム上ではアクティブな状態にあるモジュールです。

スマートフォンを例に考えると、スマートフォンが上位モジュールにあたり、インストールされているアプリが下位モジュールに該当します。

2.下位モジュール

下位モジュールは、システム内において「上位モジュールに呼び出される」場所に位置しています。下位モジュールの特徴は、以下の通りです。

  • 単体機能が多い
  • 呼び出されることによって機能を実行する

スマートフォンを例に考えると、アプリ自体は、いつスマートフォンから起動されるかは把握できないため、呼び出されたら機能を実行します。

3.スタブ

スタブはテストを実施する際、下位モジュールの代わりに利用されるモジュールです。スタブは、何の機能も有していないため、モジュールから呼び出されるだけのダミーモジュールと考えるとわかりやすいかもしれません。

スマートフォンの例を挙げると、アプリを起動した際にモジュールを呼び出せるかという動作を確認するためだけに呼び出されるモジュールです。

4.ドライバ

ドライバはボトムアップテストを実施する際、必要となる上位モジュールの代わりに使われるものです。ドライバは、ダミーの上位モジュールとして、テスト対象のモジュールを呼び出すことだけが役割となります。

つまり、トップダウンテストで利用される「スタブ」と逆の目的が与えられたダミーモジュールと考えるとわかりやすいかもしれません。

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

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

ボトムアップテストのメリットとデメリットについて見ていきましょう。

メリットには、開発と同時進行しやすいことが挙げられます。

下位モジュールからテストを実施するため、初期段階から開発とテストを同時に進められます。モジュール単体の機能を反芻したり、テスト結果の検証を十分に行うことが可能です。

デメリットとしては、最終段階で大幅な修正を余儀なくされるおそれがあることが挙げられます。

上位モジュールのテストは最後に実施するため、最終段階で大きなトラブルが発生する可能性が考えられるでしょう。また、上位モジュールで問題が発生し、修正した場合は、下位モジュールにも影響が波及することがあります。

ボトムアップテストを実施する流れ

ボトムアップテストを実施する流れ

ボトムアップテストは、下位モジュールからテストを実施し、上位のモジュールへと進めていきます。

下位から結合テストを実施するため、上位モジュールは未完成の状態です。そのため、テスト時には上位モジュールの代わりにドライバを使用して動作の確認を行います。

下位モジュールの検証が済んだあと、次はドライバを実際の上位モジュールに置き換えて検証を繰り返します。この手順を繰り返すことがテスト実施の一連の流れです。

ボトムアップテストに関するよくある2つの質問

ボトムアップテストに関するよくある2つの質問

ボトムアップテストに関するよくある質問には、以下の2つが挙げられます。

  • 質問1.ボトムアップテストとは何ですか?
  • 質問2.ボトムアップテストのメリットを教えてください

ここではそれぞれに分けて解説しますので、詳しく見ていきましょう。

質問1.ボトムアップテストとは何ですか?

ボトムアップテストとは、ソフトウェアの結合テストにおいて、最下位のプログラムからテストを実施し、上位プログラムへと結合して最後に全体をチェックする手法です。

テストを実施する際、プログラムに関連する下位プログラムの検証が済んでいる必要があります。その際、上位モジュールの代わりに使用されるものがドライバです。ドライバを駆使しながら、順に結合してテストする方式をボトムアップテストと呼びます。

質問2.ボトムアップテストのメリットを教えてください

ボトムアップテストは、プログラムがツリー構造になっていれば、末端の枝部分ごとにテストと並行しながら開発を進められることがメリットです。

また、ボトムアッププログラミングでは下位モジュールから作成し、テストを実施することによって、プログラミングが完了したら即時テストするサイクルを確立してプロジェクトを進められることも利点だといえます。

まとめ

まとめ

ボトムアップテストに関することを解説しました。ボトムダウンテストは、下位モジュールから上位モジュールへと順にテストを実施する手法です。プログラミングと検証をフロー化して開発を進められることがメリットだといえます。

しかし、最終テストまで全体のエラーの可否が判定できないため、大掛かりな修正を余儀なくされるおそれがあることがデメリットです。ボトムアップテストのメリット・デメリットを理解して、ソフトウェア開発に活用してみてください。