CTS-KB

結合テスト

けつごうてすと

Integration Test インテグレーションテスト IT
#テスト #テストレベル #結合

複数のモジュール・コンポーネント・外部システム(DB・API)の連携を検証するテスト。単体テストでは検出できない結合点のバグを発見する。

概要

単体テスト は依存を全てモック化して純粋に振る舞いを見るが、 実際の本番では複数のモジュール・DB・外部 API が連動する 。結合点に潜むバグ(型ミスマッチ・SQL 誤り・API 仕様差異・トランザクション境界)は単体だけでは検出できない。

観点結合テストの特徴
対象モジュール間 / リポジトリ + DB / API クライアント + サーバ
速度数百 ms 〜 数秒
件数の目安数十〜数百
外部依存本物または Fake / Testcontainer で再現
主な検証連携 / 永続化 / 通信プロトコル / トランザクション

代表的なツール

用途ツール
DB をコンテナ起動Testcontainers / Docker Compose
HTTP モックサーバMSW(Mock Service Worker)/ WireMock
契約テスト(API 互換性)Pact / Spring Cloud Contract
GraphQLapollo-server-testing

モダンな結合テストの基本姿勢

Mock より Fake / 本物寄せ

単体テストでは Mock を多用するが、結合テストは 「本物に近い再現」 が肝。

アプローチ評価
全モック△ 単体テストになってしまう
Fake(インメモリ DB 等)○ 速いが本番との差が残る
Testcontainer で本物の DB◎ 本番と同等、CI でも秒で起動

Testing Trophy では中心

テストトロフィー では、結合テストを 最も厚く 配置する。理由は「実本番に近い検証ができ、モック過剰の罠を避けられる」から。

AI 駆動開発との関係

結合テストは 人間が骨組みを作って AI に拡張させる のが定石。設定(Testcontainer 起動・テストデータ準備)が複雑なため、AI に丸投げすると無駄に複雑化することがある。

役割分担内容
人間テスト基盤(コンテナ設定・共通フィクスチャ)を整備
AI個別シナリオの実装と網羅性追加
人間本番との乖離をレビュー

関連記事

関連用語