基本情報技術者試験過去問 令和6年度(2024年)科目A問11
階層構造のモジュール群から成るソフトウェアの結合テストを,上位のモジュールから行う。この場合に使用する,下位のモジュールの代替となるテスト用のモジュールはどれか。
選択肢
- ア:エミュレータ
- イ:シミュレータ
- ウ:スタブ
- エ:ドライバ
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
結合テストを上位モジュールから行う方法はトップダウンテストです。トップダウンテストでは、未完成の下位モジュールの代わりに、上位モジュールから呼び出されたときに決められた応答を返すテスト用モジュールを使います。これをスタブといいます。反対に、下位モジュールから確認するボトムアップテストでは、上位モジュールの代わりにドライバを使います。
Point
この問題は、結合テストの進め方が上位モジュールから(トップダウン)であるときに、下位モジュールの代替として使うテスト用モジュールがスタブであることを理解しているかを確認しています。あわせて、ボトムアップで用いるドライバとの使い分けも問われます。
解くために必要な知識
この問題を解くには、結合テストの進め方と、スタブとドライバの役割を理解している必要があります。
用語の整理
| 用語名 | 意味 |
|---|---|
| 結合テスト | 複数のモジュールを組み合わせ、モジュール間のインタフェースや連携が正しいかを確認するテストです。 |
| トップダウンテスト | 上位モジュールから順に結合していく方式です。下位モジュールが未完成の場合は、下位モジュールの代替が必要になります。 |
| スタブ | 呼び出される側の代替として用意するテスト用モジュールです。上位モジュールから呼び出され、固定値や想定した値を返すなどの簡易的な動作をします。 |
他の選択肢に出てくる用語
| 用語 | 概要 |
|---|---|
| エミュレータ | 別の環境で対象の動作を再現する仕組みです。 |
| シミュレータ | モデル化した挙動を模擬して予測や解析に用いる仕組みです。 |
| ドライバ | ボトムアップテストで使用します。未完成の上位モジュールの代わりとして、下位モジュールを呼び出して実行を制御します。 |
選択肢ごとの解説
- ア:不正解
エミュレータは、別のハードウェアやOS環境などを再現する仕組みです。結合テストで未完成モジュールの代替として使うものではありません。よって誤りです。
- イ:不正解
シミュレータは、対象の振る舞いをモデル化して再現する仕組みです。トップダウン方式の結合テストで、未完成の下位モジュールの代わりとして用意するテスト用モジュールはスタブです。よって誤りです。
- ウ:正解
スタブは、呼び出される側である下位モジュールが未完成のときに、その代わりとして用意するテスト用モジュールです。上位モジュールから呼び出されるため、上位から結合する方式で必要になる下位の代替に該当します。よって正解です。
- エ:不正解
ドライバは、ボトムアップテストで未完成の上位モジュールの代替として使うテスト用モジュールです。今回のように上位から結合していくトップダウンテストで必要になるのはスタブです。よって誤りです。
まとめ
結合テストを上位モジュールから行う方法はトップダウンテストです。トップダウンテストでは、未完成の下位モジュールの代わりに、上位モジュールから呼び出されたときに決められた応答を返すテスト用モジュールを使います。これをスタブといいます。反対に、下位モジュールから確認するボトムアップテストでは、上位モジュールの代わりにドライバを使います。
エミュレータは、別のハードウェアやOS環境などを再現する仕組みです。結合テストで未完成モジュールの代替として使うものではありません。よって誤りです。
シミュレータは、対象の振る舞いをモデル化して再現する仕組みです。トップダウン方式の結合テストで、未完成の下位モジュールの代わりとして用意するテスト用モジュールはスタブです。よって誤りです。
スタブは、呼び出される側である下位モジュールが未完成のときに、その代わりとして用意するテスト用モジュールです。上位モジュールから呼び出されるため、上位から結合する方式で必要になる下位の代替に該当します。よって正解です。
ドライバは、ボトムアップテストで未完成の上位モジュールの代替として使うテスト用モジュールです。今回のように上位から結合していくトップダウンテストで必要になるのはスタブです。よって誤りです。