テストダブル(スタブ・モック・フェイク)とは?てすとだぶる
テストダブル(スタブ・モック・フェイク)とは、テスト対象が依存する相手を、検証のために置き換える代役の総称。決まった値を返すだけのスタブ、呼ばれ方(回数・引数・順序)まで検証するモック、簡易実装で本物同様に動くフェイクなどがある。実機やセンサが揃う前でも、また実機では起こしにくい異常系でも、同じ条件を確実に再現できる。
最終更新:2026-10-06
エンベデッドSPを最短で暗記・合格する →背景
組込みのコードはレジスタ・センサ・通信相手といったハードへ直に触るため、そのままではホスト上で動かせず、実機が上がるまでテストが始められない。しかも試したい条件——センサの断線、通信のタイムアウト、電圧低下——は実機でも意図して起こしにくい。依存先を抽象化して代役へ差し替えられるようにすれば、この二つの制約が同時に外れる。裏を返せば、差し替えられる構造かどうかがテスト容易性そのもので、設計段階の判断になる。
具体例
I2C接続の温度センサを読む処理なら、ドライバ層をスタブへ差し替えて規定外の値やNAK応答を返させる。タイムアウト時に再試行が3回で打ち切られるかは、モックで呼出し回数を数えて確かめる。不揮発メモリはRAM上のフェイクに置き換えれば、書換え寿命を気にせず消去と書込みを何万回でも回せる。
試験での引っ掛け
代役を増やすほどテストは速く安定する一方、本物との差が積もって「テストは通るのに実機で壊れる」状態を招くため、実機やHILを使う結合テストを一定量残す判断が要る。スタブとモックの違いは値を返すかどうかではなく検証の対象で、スタブは戻り値を与えるだけ、モックは呼ばれ方そのものを検証する。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。