スポンサーリンク

基本情報技術者試験 | 令和6年度(科目A) [問11] 過去問解説

スポンサーリンク

問題

問11

階層構造のモジュール群から成るソフトウェアの結合テストを,上位のモジュールから行う。この場合に使用する,下位のモジュールの代替となるテスト用のモジュールはどれか。

  • エミュレータ
  • シミュレータ
  • スタブ
  • ドライバ

[出典:基本情報技術者試験 令和6年度(科目A) 問11]

スポンサーリンク

正解

正解は「」です。

解説

 この問題は、ソフトウェアの結合テストにおいて使われる「テストモジュール」に関する基本的な知識を問うものです。

 階層構造のソフトウェアでは、上位モジュールから下位モジュールを呼び出す構造になっていることが多く、結合テストの際には一部のモジュールがまだ未完成である場合があります。

 このような場合、未完成の下位モジュールの代わりに仮のモジュールを用意して、上位モジュールの動作を検証します。この仮モジュールが「スタブ(stub)」です。スタブは、下位モジュールが返すであろう想定の値を返すだけの簡単な処理で構成され、上位モジュールの処理を進めるための道具として使われます。

 例えば、ショッピングサイトのシステムで「支払処理」モジュールが未完成でも、「注文処理」モジュールのテストを進める必要がある場合、「支払処理」に対応するスタブを用意して想定の応答(例:決済成功)を返せるようにします。これにより、上位の機能のテストが可能になります。

  • ア(エミュレータ):
     ハードウェアの動作を模擬するためのソフトウェアであり、ソフトウェアの結合テストにおいてモジュールの代替には通常使いません。
  • イ(シミュレータ):
     対象の動作を模倣するモデルであり、実環境の挙動を再現する目的で使われます。結合テストにおけるモジュールの置き換えとは用途が異なります。
  • エ(ドライバ):
     スタブとは逆で、下位モジュールのテストのために、上位モジュールの代わりに動作を呼び出す役割を果たします。上位から結合テストをする場合には不要です。

難易度

 この問題はソフトウェア開発における基本用語「スタブ」と「ドライバ」の使い分けに関するもので、結合テストの方向(上位からか下位からか)を理解していれば難易度は低めです。ただし、似たような用語との混同に注意が必要です。

スポンサーリンク

用語補足

スタブ:
結合テスト時に、未完成の下位モジュールの代わりに使われる簡易的なモジュールです。入力を受け取って固定の応答を返すことで、上位モジュールの動作確認を可能にします。

ドライバ:
スタブと対になる存在で、下位モジュールをテストするために上位モジュールの代わりとして使います。テスト対象のモジュールを呼び出して動作確認を行います。

結合テスト:
複数のモジュールを組み合わせて、それらが正しく連携するかを検証するテスト工程です。上下のモジュール間のインタフェースの整合性を確認します。

対策

 結合テストにおける「スタブ」と「ドライバ」の違いは、基本情報試験で頻出です。どちらが上位モジュール/下位モジュールに対応するかを図で理解しておくと効果的です。また、用語の用途や役割を日常の例と結び付けて覚えると、定着が早くなります。