サンドイッチテスト【sandwich testing】折衷テスト
概要

結合テスト(統合テスト)とは、単体テストを終えた複数のモジュールを組み合わせ、モジュール間のインターフェースや連携動作が正しく機能するかを検証する工程である。ソフトウェアテストは単体テスト、結合テスト、システムテストなどの段階に分かれており、中間段階で実施されるテストである。
「トップダウンテスト」(top-down testing)は最上位のモジュールから順に下位へ結合しながらテストを進める手法で、未完成の下位モジュールは「スタブ」(仮の代替モジュール)で置き換えて検証する。「ボトムアップテスト」(bottom-up testing)は最下位のモジュールから順に上位へ向かう手法で、未完成の上位モジュールは「ドライバ」(テスト駆動用の仮想プログラム)で補う。
サンドイッチテストでは、あらかじめ中間に目標となるモジュール(ターゲット層)を設定し、最上位と最下位の両端から同時にテストを開始する。上下それぞれのテストがターゲット層に到達した時点で全体の結合検証が完了する。スタブとドライバの双方を準備する必要があるため工数は増えるが、開発の初期段階からシステム全体の動作確認を並行して進められるため、全体のテスト期間を短縮できる。
大規模な開発では、最上位のメインルーチンと最下位の共通モジュールやライブラリといった重要な部分を早期から並行して検証できるため、構造上の深刻な不具合を早い段階で発見しやすい。一方、中間層のモジュールで不具合が見つかった場合、原因が上位側にあるのか下位側にあるのかの切り分けが難しく、特定と修正に時間を要することがある。
(2026.6.24更新)