令和6年度 科目A11テクノロジ系

基本情報 令和6年度 科目A 問11:テクノロジ系に関する問題

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

  • aエミュレータ
  • bシミュレータ
  • cスタブ正答
  • dドライバ
正答:Cスタブ

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは c「スタブ」 です。

プログラムは部品(モジュール)を組み合わせて作ります。上から順番にテストしていくとき、まだ下の部品ができていないと動かせません。

そこで「下の部品のフリをする仮の部品」を置いて先にテストするのがスタブ。料理で例えると、まだ完成してない付け合わせの代わりに“盛り付けスペースを取るための紙”を置く感じです。

👉 覚え方:上から下へ → スタブ(下のフリ)。逆(下から上)はドライバ(上のフリ)。

ほかの選択肢:a エミュレータ=別の機械のフリをする装置/b シミュレータ=動きを真似て再現するソフト/d ドライバ=下からテストするときの“上のフリ”役。

標準試験対策の基準レベル

なぜこれが正解か

正解は c。トップダウンテストでは上位モジュールから順に結合テストを行うため、まだ実装されていない下位モジュールの代わりにスタブを用意する。スタブは呼び出されると固定値を返すなど、下位モジュールの振る舞いを最小限模した仮実装。

各選択肢の解説

  • a エミュレータ:異なるハードウェア/ソフトウェア環境を模倣する装置・プログラム。
  • b シミュレータ:対象システムの挙動を数理的に模倣する。テスト代替部品の用語ではない。
  • d ドライバ:ボトムアップテストで上位モジュールの代わりに下位を呼び出す側を担う。

覚え方・ひっかけ注意

ップダウン → タブ(下)」「トムアップ → ライバ(上)」と方向で対にして覚える。スタブ=切り株(stub)で“下にちょこんと残っているもの”のイメージ。サンドイッチテスト(両端同時)では両方使う。

上級誤答論破・背景理論まで深掘り

理論的背景

結合テスト(Integration Test)はモジュール間インタフェースの不整合を検出するフェーズ。順序戦略はトップダウン/ボトムアップ/ビッグバン/サンドイッチ(三明治)/インクリメンタルに分類される。トップダウンは上位の制御ロジック・主要シナリオを早期検証できる一方、下位の機能未実装によりI/Oや業務ロジックの検証が遅延しがち。これを補うのがスタブで、戻り値固定型・パラメータ判別型・記録型(spy)などの実装段階差がある。

実務での使われ方

xUnit系のテストダブル理論(Gerard Meszaros)では Dummy / Stub / Spy / Mock / Fake と分類され、IT資格で言う「スタブ」はこのうちStubに対応。実務ではMockito(Java)・unittest.mock(Python)・Jest(JS)などのモックライブラリで動的生成し、外部API・DB・決済ゲートウェイ等の副作用を遮断する。マイクロサービスではWireMock/Mountebankなどのサービス仮想化ツールがスタブ群を担う。

試験での位置づけ

基本情報では「スタブとドライバの方向」がほぼ毎回水準で出題。応用情報・PM試験ではテスト戦略選択や、CI/CD連携(契約テスト=Pact等)、テストピラミッド論まで広がる。近年はサービス間契約テスト(Consumer-Driven Contract)が高度試験でブレンド出題される傾向。

選択肢の発展補足

エミュレータとシミュレータの違いは頻出: エミュレータは“同じ結果を出す再現(命令セット互換等)”、シミュレータは“挙動の近似モデル化”。Androidエミュレータは仮想マシンレベルで命令を実行するため厳密にはエミュレータ寄り。ドライバはテストハーネスやJUnitのRunnerに相当し、CI環境では自動化されたドライバが各モジュールを駆動する。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 令和6年度 科目A11/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。