下位モジュールから順に上位を結合して検証していくテスト。
ボトムアップテストとは、複数のモジュール(=部品となる小さなプログラム)を結合していくとき、下位(呼び出される側)のモジュールから順に、上位(呼び出す側)を結合して検証していく方式のことです。複数モジュールを組み合わせて検証することを結合テストと呼びます。
身近な例で考えると、レゴで小さなパーツを先にしっかり組み立ててから、大きな作品にまとめていくのに似ています。一つひとつの部品が確実に動くことを先に確かめ、それらを積み上げて全体を作るイメージです。
上のツールで▶ボタンを押すと、最下位 D・E から始めて B・C、最後に A へと、下から上へモジュールを本物に置き換えながら結合していく流れを確認できます。
下位モジュールをテストしようとすると、その下位は本来、上位モジュールから呼び出されて動きます。しかし上位がまだ完成していないと、下位を動かせません。そこで使うのがドライバ(driver)です。ドライバとは、下位モジュールを呼び出して動かすための、上位モジュールの仮の代用品です。
ドライバの特徴は次のとおりです。
・呼び出す役:テストしたい下位モジュールに引数を渡して実行させる
・上位の代わり:本来の上位がまだ無いときの「運転手」になる
・順次置き換え:上位が完成したら本物に差し替えていく
車に例えると、エンジン(下位)を試運転するための仮の運転席や操作レバーのようなものです。本物の車体(上位)がなくても、ドライバがあればエンジンを回して確かめられます。上のツールで紫色の点線枠がドライバで、本物が完成すると緑に変わります。
結合テストには、下から進めるボトムアップと、上から進めるトップダウンの2つの方向があります。どちらも目的は同じですが、進む向きと使う仮の部品が逆になります。
| 項目 | ボトムアップテスト | トップダウンテスト |
|---|---|---|
| 進む向き | 下位 → 上位 | 上位 → 下位 |
| 使う仮の部品 | ドライバ(上位の代用) | スタブ(下位の代用) |
| 早く分かること | 下位の細かい機能の正しさ | 全体の制御の流れ(骨格) |
覚え方として、ボトムアップは「上を仮置き」なのでドライバ、トップダウンは「下を仮置き」なのでスタブと、向きと仮部品をセットで押さえると混同しにくくなります。