メインコンテンツへ
開発技術テスト技術

結合テストで使用するスタブ(Stub)とドライバ(Driver)の説明として、最も適切なものはどれか。

ア.スタブはテスト対象を呼び出す側のダミーモジュールであり、ドライバはテスト対象から呼び出される側のダミーモジュールである
イ.スタブとドライバはどちらも同じ役割であり、どちらを使うかは開発チームの好みによる
ウ.スタブはテスト対象から呼び出される側のダミーモジュールであり、ドライバはテスト対象を呼び出す側のダミーモジュールである正解
エ.スタブはパフォーマンス計測用の計装コードであり、ドライバはCIパイプラインの実行エンジンを指す

解説

スタブは「呼ばれる側のニセモノ」、ドライバは「呼ぶ側のニセモノ」。テスト対象の下(呼ばれる先)がまだないならスタブ、上(呼ぶ親)がまだないならドライバ——方向で覚えましょう。

なぜ ウ が正解か

スタブ(Stub):テスト対象モジュールから呼び出される下位モジュールが未完成の場合に使うダミー。固定値を返すなど最小限の実装で代用する。ドライバ(Driver):テスト対象モジュールを呼び出す上位モジュールが未完成の場合に使うダミー。テスト対象を実行させるための呼び出し役を担う。

なぜ ア は間違いか

スタブとドライバの説明が逆です。スタブは「呼ばれる側(下位)のダミー」、ドライバは「呼ぶ側(上位)のダミー」です。この逆の説明は最も頻出の引っ掛けパターンです。

なぜ イ は間違いか

スタブとドライバは役割が明確に異なります。使い分けはテストの方向性(トップダウン/ボトムアップ)によって決まるものであり、好みの問題ではありません。

なぜ エ は間違いか

スタブをパフォーマンス計測の計装コードと定義するのは誤りです。テスト文脈でのスタブ・ドライバはモジュール代替のダミーを指します。

出典: AI生成問題(学習用)