テストダブル(スタブ・モック・フェイク)とは?
テストダブル(スタブ・モック・フェイク)とは、テスト対象が依存する外部部品を、テスト用の代役に置き換える仕組みの総称。決まった値を返すだけのスタブ、呼ばれ方(回数・引数・順序)まで検証するモック、簡易実装で本物同様に動くフェイクなどがある。未完成の外部連携や再現しにくい異常系を先に検証できる。
エンベデッドシステムスペシャリスト試験の過去問では2回出題されています(2016年度〜2019年度)。
てすとだぶる
テストダブル(スタブ・モック・フェイク)の意味
テスト対象が依存する外部部品を、テスト用の代役に置き換える仕組みの総称。決まった値を返すだけのスタブ、呼ばれ方(回数・引数・順序)まで検証するモック、簡易実装で本物同様に動くフェイクなどがある。未完成の外部連携や再現しにくい異常系を先に検証できる。
テストダブル(スタブ・モック・フェイク)の具体例
決済代行の応答を代役にして、タイムアウト・二重課金・想定外コードといった実環境で起こしにくい異常を確実に再現する。データベースはインメモリのフェイクに差し替え、単体テストを数秒で回す。差し替えを可能にするには依存性注入など疎結合な設計が前提になる。
テストダブル(スタブ・モック・フェイク)は試験でどう引っ掛けられる?
代役を増やすほどテストは速く安定するが、本物との差異が積もり「テストは通るのに本番で壊れる」状態を招く。契約テストや、本物を使う結合テストを一定量残す設計判断が要る。スタブとモックの検証対象の違いも問われる。
テストダブル(スタブ・モック・フェイク)と関連する用語
テストダブル(スタブ・モック・フェイク)が出た過去問
リアルタイムシステムにおいて、アプリケーションタスクの要求によって入出力を行うデバイスドライバのタスク部が、要求された処理が完了したときに行う通知処理はどれか。
正解:イベントフラグを使って入出力要求元のタスクに入出力完了を通知する。
要点:完了通知はOSでなく要求元タスクへ同期機能で行う
デバイスドライバのタスク部は、割込みハンドラから処理完了を受け取ったあと、その事実を要求元のアプリケーションタスクへ知らせる必要がある。リアルタイムOSではイベントフラグやセマフォといった同期機能を使い、完了を待って待ち状態になっているタスクを実行可能状態へ戻す。通知の相手はOSやハードウェアではなく、あくまで待っているタスクである。
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 am2 問7(IPA)組込みソフトウェア開発を行うために、ターゲットシステム上で未完成の周辺ハードウェアが正しく動作しているようにエミュレーションするデバイスドライバを開発した。この…
正解:スタブ
要点:未完成の下位機能を代替する仮モジュールがスタブ
スタブとは、テスト対象から呼び出される下位のモジュールがまだ完成していないときに、その代わりを務める仮のモジュールである。ここでは未完成の周辺ハードウェアの振る舞いを模擬するデバイスドライバが、上位のソフトウェアから呼ばれる下位側の代役となっているのでスタブに当たる。逆に上位モジュールの代わりに下位を呼び出す役はドライバと呼ばれる。
出典:令和1年度 春期 エンベデッドシステムスペシャリスト試験 am2 問22(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。