FE EXAM

ボトムアップテスト(下位から結合)

下位モジュールから順に上位を結合して検証していくテスト。

INTERACTIVE VISUALIZATION
結合済
ドライバ
テスト中
フェーズ
idle
結合した本物
0 / 5
使用中ドライバ
0
シナリオ
ステップ1 / 6
STEP 1/6モジュール構成を確認プログラムは複数のモジュール(=部品となる小さなプログラム)に分かれています。上から A(全体制御)、その下に B・C、さらに B の下に D・E がぶら下がる木構造です。ボトムアップテストでは、この木のいちばん下から順に結合していきます。
A 全体制御未着手B 入力処理未着手C 出力処理未着手D 検査未着手E 変換未着手
解説

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

BDE下位を先にテスト、上位はドライバで代用

ボトムアップテストとは、複数のモジュール(=部品となる小さなプログラム)を結合していくとき、下位(呼び出される側)のモジュールから順に、上位(呼び出す側)を結合して検証していく方式のことです。複数モジュールを組み合わせて検証することを結合テストと呼びます。

身近な例で考えると、レゴで小さなパーツを先にしっかり組み立ててから、大きな作品にまとめていくのに似ています。一つひとつの部品が確実に動くことを先に確かめ、それらを積み上げて全体を作るイメージです。

上のツールで▶ボタンを押すと、最下位 D・E から始めて B・C、最後に A へと、下から上へモジュールを本物に置き換えながら結合していく流れを確認できます。

🧩
ドライバの役割

上位ドライバ(仮)呼び出す下位 D(本物)

下位モジュールをテストしようとすると、その下位は本来、上位モジュールから呼び出されて動きます。しかし上位がまだ完成していないと、下位を動かせません。そこで使うのがドライバ(driver)です。ドライバとは、下位モジュールを呼び出して動かすための、上位モジュールの仮の代用品です。

ドライバの特徴は次のとおりです。
呼び出す役:テストしたい下位モジュールに引数を渡して実行させる
上位の代わり:本来の上位がまだ無いときの「運転手」になる
順次置き換え:上位が完成したら本物に差し替えていく

車に例えると、エンジン(下位)を試運転するための仮の運転席や操作レバーのようなものです。本物の車体(上位)がなくても、ドライバがあればエンジンを回して確かめられます。上のツールで紫色の点線枠がドライバで、本物が完成すると緑に変わります。

⚖️
トップダウンとの違い

結合テストには、下から進めるボトムアップと、上から進めるトップダウンの2つの方向があります。どちらも目的は同じですが、進む向きと使う仮の部品が逆になります。

項目ボトムアップテストトップダウンテスト
進む向き下位 → 上位上位 → 下位
使う仮の部品ドライバ(上位の代用)スタブ(下位の代用)
早く分かること下位の細かい機能の正しさ全体の制御の流れ(骨格)

覚え方として、ボトムアップは「上を仮置き」なのでドライバ、トップダウンは「下を仮置き」なのでスタブと、向きと仮部品をセットで押さえると混同しにくくなります。

練習問題

🎯
基本情報技術者 練習問題

Q1.ボトムアップテストの説明として最も適切なものはどれか。
A.上位モジュールから順に下位を結合して検証していく方式
B.下位モジュールから順に上位を結合して検証していく方式
C.すべてのモジュールを一度に結合して検証する方式
D.1人の担当者だけでテストを行う方式
Q2.ボトムアップテストで使う「ドライバ」の役割として正しいものはどれか。
A.まだ完成していない下位モジュールの代わりに値を返す仮のプログラム
B.まだ完成していない上位モジュールの代わりに、下位を呼び出す仮のプログラム
C.テストデータを自動生成するツール
D.プログラムを高速化する装置
Q3.トップダウンテストとボトムアップテストの違いとして正しいものはどれか。
A.トップダウンはドライバ、ボトムアップはスタブを使う
B.トップダウンはスタブ(下位の代用)、ボトムアップはドライバ(上位の代用)を使う
C.両者はまったく同じ手順である
D.ボトムアップはモジュール分割をしない

関連コンテンツ