基本情報

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

問題

基本情報 | 令和6年度 科目A | 分野:テクノロジ系

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

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は C
  • A
  • B
  • C
  • D

自信の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年度 科目A 問11
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 令和6年度 科目A 問11/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。