結合テスト(インテグレーションテスト)とは、単体テストをクリアした複数のプログラムやモジュール(部品)を組み合わせ、それらが仕様通りに連携して動作するかを確認するテスト工程です。 [1, 2]
主にシステム開発の中盤から後半にかけて実施され、個々の部品が正しく作られていても「つなぎ目」で発生するデータ連携の不具合やエラーを検知する目的があります。 [1, 3]
💻 他のテスト工程との違い
システム開発のテストは、一般的に以下の3段階(または受入テストを含めた4段階)で進められます。 [1, 4]
| テストレベル [1, 3, 4] | 対象の範囲 | 主な検証内容 |
|---|---|---|
| 単体テスト (UT) | 関数や画面など最小単位 | 個々の部品が単体で正しく動くか |
| 基準:結合テスト (IT) | 複数の部品の連携 | データの受け渡しや機能間の連動 |
| システムテスト (ST) | システム全体 | 要件定義通りの機能や性能を満たしているか |
🎯 結合テストの主な目的
- 単体では見つからない不具合の検出: 「データの型が合わない」「渡すタイミングがずれる」といった連携ミスを防ぎます。
- 後工程の手戻り防止: 全体を組み立てる前段階でバグを潰し、開発効率を上げます。
- 信頼性の向上: ユーザーの実際の操作に近い形でのデータの流れを保証します。 [1, 3]
🔍 結合テストの種類と観点
結合テストでは、主に以下のような観点から検証を行います。 [1, 4]
- インターフェーステスト: 画面から画面、あるいはプログラム間で正しくパラメータが引き渡されているか確認します。
- 業務シナリオテスト: 「ログイン ➔ 商品検索 ➔ カート追加 ➔ 決済」のように、実際の業務の流れに沿って操作します。
- 異常系・イレギュラーテスト: 存在しないIDの入力や想定外のボタン連打など、ユーザーの誤操作時のエラー処理を確認します。
- 負荷テスト: 大量のデータやアクセスを同時に発生させ、システムがダウンしないか検証します。 [2, 3, 4, 5]
🛠️ テストを進める2つのアプローチ
すべてのモジュールが同時に完成するわけではないため、以下の手法を使い分けます。 [4, 5]
- トップダウンテスト: システムの「上の階層(画面など)」から順にテストします。未完成の下位部品の代わりに、ダミー値を返す「スタブ」を用意します。 [3, 4]
- ボトムアップテスト: 「下の階層(データベース処理など)」から順にテストします。未完成の上位部品の代わりに、呼び出しを行うプログラム「ドライバー」を用意します。 [3, 4, 5]
結合テストについて、さらに具体的なテストケースの書き方や、テスト自動化の手法などについて詳しく知りたい情報はありますか?
