スタブ
この結合テストの前段階で、個々のモジュールは、あらかじめ正当性を検査しておくことが望ましい。その場合、呼び出す部品モジュールがまだ完成していないときには、スタブが用いられる。スタブは、単純で何もしないようなものであってもよく、テストしたい部分とリンクして動作させるのに十分であればよい。
また、このようなスタブは、モジュールの仕様設計の段階で作られる事がほとんどである。とりあえず設計段階で中身のないスタブモジュールを書くことによって、モジュール間の結合の設計に問題がないかを具体的に確かめながら仕様設計ができるからである。また、スタブモジュールのみを作成することもまずありえない。スタブモジュール作成によって工数を消費することはデメリット以外何物でもないからである。
一般にテストする対象が上位階層のモジュールであって下位の部品が未完成の場合、その代用となる仮の下位階層モジュールを、「スタブ」と呼ぶ。
いずれの場合も、全体のプログラムテストを飛躍的に効率よくする役割を果たす。
組み込みシステムのソフトウェアを開発する際には、コンパイラなどの開発ツールを動かすコンピュータ(ホストコンピュータ)と、開発対象となるコンピュータ(ターゲットコンピュータ)は全く異なるものであることが多い。この時、プログラムを実際に動かしながら動作を確かめるデバッガは、ユーザインタフェースを必要とする本体部分をホストコンピュータ上で動作させ、ターゲットコンピュータ上では本体部分から通信線による指示を受けてCPUやメモリの状態を読み書きする小さなプログラムを動かしておくという構成になることが多い。この、ターゲット上の小さなプログラムを「スタブ」と呼ぶ。
このようなデバッガのスタブは、当然のことながらターゲットコンピュータのCPUに強く依存したものになり、しばしばアセンブリ言語を用いて作成される。スタブが行なわなければならない主な内容は、次のようになる。
ホストコンピュータとの通信回線を初期化する
任意のメモリ内容を読み出して通信回線に送り出す
任意のメモリ内容を通信回線から受けたデータで書き換える