マナビング基本情報技術者

スタブとドライバは呼出しの向きでどう見分ける?

基本情報技術者試験 令和元年度秋期 午前 問48 / システム開発技術 › ソフトウェア結合・適格性テスト

過去問にチャレンジ

令和元年度秋期 午前 問48

テストで使用するスタブ又はドライバの説明のうち,適切なものはどれか。

  1. ア

    スタブは,テスト対象モジュールからの戻り値の表示・印刷を行う。

  2. イ

    スタブは,テスト対象モジュールを呼び出すモジュールである。

  3. ウ

    ドライバは,テスト対象モジュールから呼び出されるモジュールである。

  4. エ

    ドライバは,引数を渡してテスト対象モジュールを呼び出す。

会話形式の解説

講師講師
この問題は、テスト対象モジュールを基準に、呼出しの向きを見ると整理できます。
受験者受験者
私はスタブとドライバの名前が混ざりやすいです。どちらがテスト対象を呼び出すのでしょうか。
講師講師
テスト対象を呼び出す上位モジュールの代役がドライバです。反対に、テスト対象から呼び出される下位モジュールの代役がスタブです。
受験者受験者
では、引数を渡してテスト対象を呼び出すという説明は、ドライバに合いますね。
講師講師
そのとおりです。これが適切な説明です。では、テスト対象を呼び出すモジュールをスタブとする説明はどうでしょうか。
受験者受験者
呼び出す側はドライバなので、スタブという部分が違います。
講師講師
はい。テスト対象から呼び出されるモジュールをドライバとする説明も、役割が逆です。
受験者受験者
呼び出される側ならスタブですね。戻り値を表示・印刷するという説明も、スタブではないのでしょうか。
講師講師
はい。テスト対象からの戻り値を表示・印刷するのは、呼出し元となるドライバ側の処理です。
受験者受験者
テスト対象を呼び出すのがドライバ、テスト対象に呼び出されるのがスタブ、と考えれば四つとも判断できます。
講師講師
その整理で大丈夫です。説明に動作が書かれていても、まずテスト対象を基準に呼出しの向きを確かめてください。

まとめ

スタブは、テスト対象モジュールから呼び出される下位モジュールの代役です。ドライバは、テスト対象を呼び出す上位モジュールの代役です。引数を渡してテスト対象を呼び出すという説明が適切で、正解はエです。

解答・解説

正解はエです

この問題のテーマ

スタブとドライバを、テスト対象モジュールとの呼出し関係から区別する問題です。

解き方の考え方

まず、テスト対象がほかのモジュールを呼び出す側なのか、ほかのモジュールから呼び出される側なのかを考えます。テスト対象に呼び出される下位モジュールの代役がスタブで、テスト対象を呼び出す上位モジュールの代役がドライバです。この関係に各選択肢を当てはめます。

選択肢ごとの解説

  1. ×ア  スタブは,テスト対象モジュールからの戻り値の表示・印刷を行う。
    アの戻り値を表示・印刷するという説明は、呼出し元となるドライバ側の処理です。スタブの役割を述べたものではありません。
  2. ×イ  スタブは,テスト対象モジュールを呼び出すモジュールである。
    イのテスト対象を呼び出すモジュールは、ドライバに当たります。スタブは逆に、テスト対象から呼び出される側です。
  3. ×ウ  ドライバは,テスト対象モジュールから呼び出されるモジュールである。
    ウのテスト対象から呼び出されるモジュールは、スタブに当たります。ドライバはテスト対象を呼び出す側なので、役割が入れ替わっています。
  4. ○エ  ドライバは,引数を渡してテスト対象モジュールを呼び出す。
    エのドライバは、テスト対象を呼び出す上位モジュールの代役です。呼出し時に引数を渡すという説明は、その役割に合っています。

POINT

  • 呼出しの向きを判断するときは、テスト対象モジュールを基準にします。
  • スタブは、テスト対象が呼び出す相手の代役です。
  • ドライバは、テスト対象を呼び出す相手の代役です。

※出典:令和元年度秋期 基本情報技術者試験 午前 問48