スタブとは、未完成のプログラムや外部機能の代わりに一時的に使われる簡易な部品やコードを指します。特にソフトウェア開発のユニットテストで、テスト対象モジュールが依存する未開発の下位モジュールやデータベース、APIなどの代役として使われ、テストを独立して効率的に進めることを可能にします。
主な使われ方
- ソフトウェア開発:
- 機能: まだ開発されていない下位モジュール(呼び出される側)の代わりに、最低限の機能だけを持つダミーのコードを用意し、上位モジュール(呼び出す側)のテストを可能にする。
- 目的: 開発のボトルネックを防ぎ、個別のモジュールを隔離して品質を担保し、全体開発の進行を助ける。
- テスト手法:
- トップダウンテスト: 上位から下位へ(呼び出し元から呼び出し先へ)テストを進める際に活用される。
- ドライバとの対義語: 逆に、上位モジュールの代わりに使われる代用品は「ドライバ」や「コントローラ」と呼ばれる。
- 電子回路:
- 意味: 信号線が途中で枝分かれしている部分(切り株のような部分)。意図しないスタブは信号品質を悪化させる原因にもなる。
スタブのメリット
- 開発の並行化: 下位コンポーネントが未完成でもテストできるため、開発を同時並行で進められる。
- テストの効率化: 外部要因に左右されず、テスト対象の動作のみを検証できるため、テストの信頼性と速度が向上する。
- 早期の設計問題発見: 早期にモジュールのインターフェースや連携部分の問題を発見し、修正コストを抑えられる。
具体例
- まだ作られていないデータベースへの接続部分を、データを返すだけの簡単な関数に置き換える。
- 外部APIが未実装の場合、そのAPIが返すデータを模倣する。

コメント