問題
問11
階層構造のモジュール群から成るソフトウェアの結合テストを,上位のモジュールから行う。この場合に使用する,下位のモジュールの代替となるテスト用のモジュールはどれか。
- エミュレータ
- シミュレータ
- スタブ
- ドライバ
[出典:基本情報技術者試験 令和6年度(科目A) 問11]
スポンサーリンク
正解
正解は「ウ」です。
解説
この問題は、ソフトウェアの結合テストにおいて使われる「テストモジュール」に関する基本的な知識を問うものです。
階層構造のソフトウェアでは、上位モジュールから下位モジュールを呼び出す構造になっていることが多く、結合テストの際には一部のモジュールがまだ未完成である場合があります。
このような場合、未完成の下位モジュールの代わりに仮のモジュールを用意して、上位モジュールの動作を検証します。この仮モジュールが「スタブ(stub)」です。スタブは、下位モジュールが返すであろう想定の値を返すだけの簡単な処理で構成され、上位モジュールの処理を進めるための道具として使われます。
例えば、ショッピングサイトのシステムで「支払処理」モジュールが未完成でも、「注文処理」モジュールのテストを進める必要がある場合、「支払処理」に対応するスタブを用意して想定の応答(例:決済成功)を返せるようにします。これにより、上位の機能のテストが可能になります。
- ア(エミュレータ):
ハードウェアの動作を模擬するためのソフトウェアであり、ソフトウェアの結合テストにおいてモジュールの代替には通常使いません。 - イ(シミュレータ):
対象の動作を模倣するモデルであり、実環境の挙動を再現する目的で使われます。結合テストにおけるモジュールの置き換えとは用途が異なります。 - エ(ドライバ):
スタブとは逆で、下位モジュールのテストのために、上位モジュールの代わりに動作を呼び出す役割を果たします。上位から結合テストをする場合には不要です。
難易度
この問題はソフトウェア開発における基本用語「スタブ」と「ドライバ」の使い分けに関するもので、結合テストの方向(上位からか下位からか)を理解していれば難易度は低めです。ただし、似たような用語との混同に注意が必要です。
スポンサーリンク
用語補足
スタブ:
結合テスト時に、未完成の下位モジュールの代わりに使われる簡易的なモジュールです。入力を受け取って固定の応答を返すことで、上位モジュールの動作確認を可能にします。
ドライバ:
スタブと対になる存在で、下位モジュールをテストするために上位モジュールの代わりとして使います。テスト対象のモジュールを呼び出して動作確認を行います。
結合テスト:
複数のモジュールを組み合わせて、それらが正しく連携するかを検証するテスト工程です。上下のモジュール間のインタフェースの整合性を確認します。
対策
結合テストにおける「スタブ」と「ドライバ」の違いは、基本情報試験で頻出です。どちらが上位モジュール/下位モジュールに対応するかを図で理解しておくと効果的です。また、用語の用途や役割を日常の例と結び付けて覚えると、定着が早くなります。