FE EXAM

ドライバ(上位モジュールの代役)

下位モジュールのテストで未完成の上位モジュールを代替する部品。

DIAGRAM
ドライバ(代役)
テスト対象(完成)
ボトムアップテスト:下位を先に作り、未完成の上位はドライバで代替ドライバ未完成の上位の代役下位を呼び出して結果を確認呼び出す結果を返す下位モジュール Aこれがテスト対象完成済み(呼び出される側)下位モジュール Bこれがテスト対象完成済み(呼び出される側)上位がまだできていなくても、下位モジュールのテストを先に進められるドライバ=呼び出す側(上位)の代役。テスト用の値を渡して下位を呼び出す戻ってきた結果が正しいかを確認することで、下位の動作を検証できる
解説

📌
ドライバとは

ドライバ(代役)呼び出す側下位(対象)完成済み下位(対象)完成済み

ドライバとは、結合テストのときに下位モジュールをテストするため、まだできていない上位モジュールの代わりに下位を呼び出す部品です。プログラムは複数のモジュール(=処理のまとまりとなる部品)が呼び出し合って動きます。

下位モジュール(呼び出される側)をテストしたいのに、それを呼び出してくれる上位モジュール(呼び出す側)がまだ完成していない──。そんなとき、本物の上位の代わりに「テスト用の値を渡して下位を呼び出し、結果を受け取る」部品を用意します。これがドライバです。

身近な例で考えると、新しいエンジンを試す「テスト走行のドライバー(運転手)」に似ています。完成した車体(本物の上位)がまだなくても、運転手がアクセルを踏んでエンジンを回せば、エンジン単体の性能を確かめられます。ドライバも同じで、上位の本物がなくても下位を動かして試すための代役です。

📌
使う場面

ボトムアップ:下から上へ作りながらテストドライバ下位(完成)下位(完成)

ドライバが活躍するのは、ボトムアップテストのときです。ボトムアップテストとは、プログラムの下位(呼び出される側)のモジュールから先に作り、テストしながら上へ進めていく手法です。

このとき問題になるのが、下位はできても上位がまだ完成していない状況です。下位は誰かに呼び出されないと動かせないため、テストできません。そこで次のように対処します。
未完成の上位:本物の代わりにドライバを用意する
ドライバの働き:テスト用の値を渡して下位を呼び出す
狙い:戻ってきた結果が正しいかを確認し、下位の動作を検証する

たとえば「税込価格を計算する下位」を先に作ったとき、ドライバから1000円を渡して呼び出し、1100円が返るかを確かめます。上位が完成したら、ドライバを本物に差し替えるだけです。

📌
スタブとの違い

項目ドライバスタブ
代役にするもの上位モジュール(呼び出す側)下位モジュール(呼び出される側)
テスト対象下位モジュール上位モジュール
使う手法ボトムアップテストトップダウンテスト
主な働き下位を呼び出し結果を受け取る呼ばれたら固定値を返す

ドライバとよく対比されるのがスタブです。どちらも「未完成のモジュールの代役」ですが、どちら側の代わりをするかが逆になります。

ドライバは上位(呼び出す側)の代役で、下位をテストするときに使います。一方スタブは下位(呼び出される側)の代役で、上位をテストするときに使います。テストしたい対象が下にあるか上にあるかで、必要な代役が決まると覚えると分かりやすいです。

覚え方のコツは、「ドライバは上から動かす/スタブは下を埋める」です。ドライバは下位を呼び出して「動かす」運転手のような部品、スタブは下位の「中身」を仮に埋める受け身の部品、とイメージすると混同しにくくなります。

練習問題

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

Q1.ドライバの説明として最も適切なものはどれか。
A.下位モジュールのテストで、未完成の上位モジュールを代替する部品
B.上位モジュールのテストで、未完成の下位モジュールを代替する部品
C.システム全体の応答時間を計測する装置
D.周辺機器を制御するためのソフトウェア専用の意味しかない
Q2.ドライバが使われるテスト手法はどれか。
A.上位から先に作って下へ進めるトップダウンテスト
B.下位から先に作って上へ進めるボトムアップテスト
C.発注者が運用を想定して行う受入テスト
D.内部構造に着目するホワイトボックステスト
Q3.ボトムアップテストでドライバが行う主な働きはどれか。
A.テスト対象の下位モジュールを呼び出し、結果を受け取って確認する
B.呼ばれたら固定の戻り値を返すだけ
C.プログラムの誤りを自動的に修正する
D.発注者に代わって受け入れの可否を判断する

関連コンテンツ

ドライバ | Vizigo