問題
問32
トップダウンテストにおいて、未開発の下位モジュールの代替として、テスト対象の上位モジュールからの呼び出しに対してダミーの応答を返すテスト用のモジュールはどれか。
- ドライバ
- シミュレータ
- エミュレータ
- スタブ
正解
正解は「エ」です。
解説
正解は「スタブ」です トップダウンテストは、システムの主要な機能を持つ上位モジュールから、詳細な機能を持つ下位モジュールへと順番にテストを進めていく手法です。このテスト方法では、上位モジュールのテストを行う時点で、それが呼び出す下位モジュールがまだ完成していない場合があります。そこで登場するのが「スタブ」です。スタブは、未完成の下位モジュールの代役を務める、テスト用の仮のプログラムです上位モジュールから呼び出された際に、あたかも本物の下位モジュールのように、簡単な応答(ダミーの応答)を返す役割を担います。
例えば、ECサイトの「注文ボタン」機能(上位モジュール)をテストしたいけれど、注文データをデータベースに保存する機能(下位モジュール)がまだできていないとします。このとき、「注文データを受け取りました」というメッセージを返すだけの簡単なスタブを用意すれば、「注文ボタン」が正しく下位モジュールを呼び出せるかどうかをテストすることができます
ア(ドライバ):
ドライバは、ボトムアップテストで使用され、未開発の上位モジュールの代わりに、テスト対象の下位モジュールを呼び出す役割を持ちますスタブとは逆の役割です。
イ(シミュレータ):
あるシステムの動作や振る舞いを、別のシステムで模擬するものです。テストだけでなく、訓練や予測などにも使われます。
ウ(エミュレータ):
特定のハードウェアやOSの機能をソフトウェアで再現するものです。例えば、PC上で家庭用ゲーム機のソフトを動かすプログラムなどが該当します。
解法のポイント
この問題を解く鍵は、「トップダウンテスト」とセットで「スタブ」を覚えているか、「ボトムアップテスト」とセットで「ドライバ」を覚えているかです。
- トップダウンテスト:上(上位モジュール)から下(下位モジュール)へテストする。下が未完成なので、代役のスタブが必要。
- ボトムアップテスト:下(下位モジュール)から上(上位モジュール)へテストする。上が未完成なので、代わりに呼び出すドライバが必要。
このように、テストの方向(トップダウン/ボトムアップ)と、必要なテスト用モジュール(スタブ/ドライバ)を対で覚えておくことが非常に重要です。問題文の「トップダウンテスト」と「未開発の下位モジュールの代替」というキーワードから、「スタブ」を導き出せるようにしておきましょう
用語補足
トップダウンテスト:
プログラムのテスト手法の一つで、システムの骨格となる上位モジュールからテストを始め、徐々に詳細な機能を持つ下位モジュールへとテスト範囲を広げていく方法です。全体の流れを早期に確認できるメリットがあります。
モジュール:
システムを構成する機能的な部品(プログラムの塊)のことです。レゴブロックのように、複数のモジュールを組み合わせて一つの大きなシステムを作ります。
スタブ:
トップダウンテストで使われる、未完成の下位モジュールの代役となるテスト用プログラムです呼び出されたら簡単な応答を返すだけのシンプルな作りになっています。ドラマの撮影で、まだ出演が決まっていない子役の代わりに、監督がセリフを読んであげるようなものです。
ドライバ:
ボトムアップテスト(下位から上位へテストする手法)で使われる、未完成の上位モジュールの代役となるテスト用プログラムですテスト対象の下位モジュールを呼び出し、テストデータを与える役割を持ちます。


