スタブとドライバは呼出しの向きでどう見分ける?
基本情報技術者試験 令和元年度秋期 午前 問48 / システム開発技術 › ソフトウェア結合・適格性テスト
過去問にチャレンジ
テストで使用するスタブ又はドライバの説明のうち,適切なものはどれか。
- ア
スタブは,テスト対象モジュールからの戻り値の表示・印刷を行う。
- イ
スタブは,テスト対象モジュールを呼び出すモジュールである。
- ウ
ドライバは,テスト対象モジュールから呼び出されるモジュールである。
- エ
ドライバは,引数を渡してテスト対象モジュールを呼び出す。
会話形式の解説
講師この問題は、テスト対象モジュールを基準に、呼出しの向きを見ると整理できます。
受験者私はスタブとドライバの名前が混ざりやすいです。どちらがテスト対象を呼び出すのでしょうか。
講師テスト対象を呼び出す上位モジュールの代役がドライバです。反対に、テスト対象から呼び出される下位モジュールの代役がスタブです。
受験者では、引数を渡してテスト対象を呼び出すという説明は、ドライバに合いますね。
講師そのとおりです。これが適切な説明です。では、テスト対象を呼び出すモジュールをスタブとする説明はどうでしょうか。
受験者呼び出す側はドライバなので、スタブという部分が違います。
講師はい。テスト対象から呼び出されるモジュールをドライバとする説明も、役割が逆です。
受験者呼び出される側ならスタブですね。戻り値を表示・印刷するという説明も、スタブではないのでしょうか。
講師はい。テスト対象からの戻り値を表示・印刷するのは、呼出し元となるドライバ側の処理です。
受験者テスト対象を呼び出すのがドライバ、テスト対象に呼び出されるのがスタブ、と考えれば四つとも判断できます。
講師その整理で大丈夫です。説明に動作が書かれていても、まずテスト対象を基準に呼出しの向きを確かめてください。
まとめ
スタブは、テスト対象モジュールから呼び出される下位モジュールの代役です。ドライバは、テスト対象を呼び出す上位モジュールの代役です。引数を渡してテスト対象を呼び出すという説明が適切で、正解はエです。
解答・解説
正解はエです
この問題のテーマ
スタブとドライバを、テスト対象モジュールとの呼出し関係から区別する問題です。
解き方の考え方
まず、テスト対象がほかのモジュールを呼び出す側なのか、ほかのモジュールから呼び出される側なのかを考えます。テスト対象に呼び出される下位モジュールの代役がスタブで、テスト対象を呼び出す上位モジュールの代役がドライバです。この関係に各選択肢を当てはめます。
選択肢ごとの解説
- ×ア スタブは,テスト対象モジュールからの戻り値の表示・印刷を行う。アの戻り値を表示・印刷するという説明は、呼出し元となるドライバ側の処理です。スタブの役割を述べたものではありません。
- ×イ スタブは,テスト対象モジュールを呼び出すモジュールである。イのテスト対象を呼び出すモジュールは、ドライバに当たります。スタブは逆に、テスト対象から呼び出される側です。
- ×ウ ドライバは,テスト対象モジュールから呼び出されるモジュールである。ウのテスト対象から呼び出されるモジュールは、スタブに当たります。ドライバはテスト対象を呼び出す側なので、役割が入れ替わっています。
- ○エ ドライバは,引数を渡してテスト対象モジュールを呼び出す。エのドライバは、テスト対象を呼び出す上位モジュールの代役です。呼出し時に引数を渡すという説明は、その役割に合っています。
POINT
- 呼出しの向きを判断するときは、テスト対象モジュールを基準にします。
- スタブは、テスト対象が呼び出す相手の代役です。
- ドライバは、テスト対象を呼び出す相手の代役です。
