結合テストとは?単体・システム・受入テストとの違いと流れ

結合テストの目的と確認対象を解説。単体・システム・受入テストとの違い、結合点の洗い出し、進め方、優先順位、テストケース、成果物、次工程へ進む判断材料を整理します。

執筆 PartnerBase Mag 編集部約8分

結合テストとは、部品や機能をつないだときに、データや処理の受け渡しが仕様どおりに行われるかを確かめる活動です。個々の機能が単体で動いていても、画面からAPIを呼び出す場面や、登録したデータを別の機能で参照する場面では、接続したことで初めて問題が現れることがあります。

結合テストを進める際は、工程名を覚えるだけでは足りません。対象となる結合点、確認する順番、開始・完了の判断材料を整理する必要があります。この記事では、自案件で確認すべき結合点と、次工程へ進むための判断材料を整理できるようになります。

単体テスト、結合テスト、システムテスト、受入テストの流れと、結合テストで確認する画面・API・保存先・外部連携の接続点を示す図
単体テスト、結合テスト、システムテスト、受入テストの流れと、結合テストで確認する画面・API・保存先・外部連携の接続点を示す図

結合テストは、単体で確認した部品・機能をつなぎ、受け渡しが正しく行われるかを確認する工程です。

01Section結合テストとは:部品・機能間の接続を確認する

結合テストは、複数の部品・機能を組み合わせた状態で、相互の受け渡しを確認するテストです。ここでいうインターフェースとは、部品・機能間で「何を、どの形式で受け渡すか」を定めた取り決めを指します。

ISTQBのFoundation Levelシラバスでは、コンポーネント結合テストを、部品間のインターフェースと相互作用を確認するテストレベルとして整理しています。記事内では、部品間だけでなく外部サービスとの連携も含めて「結合テスト」と呼ぶことがありますが、どこまでを対象にするかはテスト計画で明確にします。

単体で動いても、つなぐと問題が起きる理由

単体テストでは、関数や画面部品などを比較的独立した状態で確認します。一方、結合テストでは、ある機能の出力を次の機能が正しく受け取れるか、失敗したときに適切な処理へつながるかを確認します。

たとえば、登録処理そのものが正しく動いていても、画面から渡す項目名が異なる、権限情報が引き継がれない、時間差で動く処理の完了後に一覧へ反映されない、といった問題は接続後に判明しやすいものです。入力、処理、出力だけでなく、エラー時の受け渡しも確認対象になります。

まず洗い出したい結合点

案件の結合点は、機能一覧、画面一覧、API仕様、データ項目定義、構成図を見ながら洗い出します。代表的な候補は次の5つです。

  • 画面からAPIへの接続:画面操作が処理の窓口であるAPIを呼び出し、結果やエラーを表示する流れ
  • APIからデータ保存先への接続:処理結果をデータベースなどの保存先へ登録・更新・取得する流れ
  • 認証から各機能への接続:ログイン状態や利用者権限を、各機能が正しく利用する流れ
  • 外部サービスとの接続:決済、通知、本人確認など、組織やシステムの境界を越える連携
  • 時間差で実行される処理:依頼を受けた後に別の処理が動く非同期処理で、処理中・完了・失敗を引き継ぐ流れ

結合点ごとに「入力元」「渡し先」「期待する処理」「失敗時の扱い」を書き出すと、確認対象の漏れを減らせます。

02Section単体・結合・システム・受入テストの違い

単体、結合、システム、受入テストを対象範囲と中心となる確認内容で比較した図
単体、結合、システム、受入テストを対象範囲と中心となる確認内容で比較した図

工程名ではなく、何を対象にして何を確かめるかでテストレベルを区別します。

単体・結合・システム・受入テストは、理解しやすい基本モデルとして並べられることがあります。ただし、実際の工程名、実施順、反復の有無、担当範囲は、開発手法や品質方針によって異なります。名称ではなく、何を確かめたいのかで区別することが重要です。

テストレベル主な目的対象範囲確認の深さ主な利用資料
単体テスト部品が単独で期待どおりに動くかを確認する関数、クラス、画面部品、内部ロジック部品をできるだけ独立させ、入出力や分岐を確認する詳細設計、ソースコード、部品仕様
結合テスト部品・機能間の受け渡しが正しいかを確認する画面とAPI、APIとデータ保存先、認証、外部連携など入出力、データ整合、処理順、例外処理を特定の連携経路で確認するAPI仕様、インターフェース仕様、データ定義、構成図
システムテストシステム全体が要件を満たすかを確認する複数機能を含むシステム全体業務を横断する流れや、性能・セキュリティなどの要件を確認対象に含める場合がある要件定義、業務シナリオ、非機能要件、運用要件
受入テスト利用者の業務ニーズや受入条件を満たすかを確認する実業務に近いシナリオ、受入条件利用・導入できる状態かを確認する受入条件、業務要件、受入テスト項目

ポイント

結合テストとシステムテストは、規模や工程名ではなく、特定の受け渡しを確認したいのか、システム全体の要件を確認したいのかで区別します。

IPA「共通フレーム2013に基づく調達管理ガイド」でも、調達工程の例として結合・統合テスト等と受入れテストは区別されています。ただし、これはすべての案件に同一の名称や順序を求めるものではありません。

結合テストとシステムテストの境界を判断する

迷ったときは、次の4点を順に確認します。

  1. 中心課題は何か:特定の画面、API、データ保存先の受け渡しが正しいかを確認するなら、結合テスト寄りです。業務全体が成立するかを確認するなら、システムテスト寄りです。
  2. 対象範囲はどこまでか:特定の連携経路を追うなら結合テスト寄りです。承認、通知、権限、運用を含めて複数機能を横断するなら、システムテスト寄りです。
  3. 主な利用資料は何か:API仕様やデータ定義が中心なら結合テスト寄り、要件定義書や業務シナリオ、非機能要件が中心ならシステムテスト寄りです。
  4. 外部サービスへ実接続するか:外部サービスとの接続を結合テストに含める場合も、システム結合テストとして独立させる場合もあります。対象環境と確認範囲を計画に記載します。

たとえば「申請画面から登録APIを呼び出し、登録データが一覧に反映されるか」は、特定経路の受け渡しを確認するため結合テスト寄りです。一方で「申請、承認、権限判定、通知、監査記録までを業務ロール別に確認する」は、全体要件の確認が中心となるためシステムテスト寄りです。

受入テストとのつながり

受入テストは、利用者や発注者の立場から、業務上の受入条件を満たしているかを確認する活動です。結合テストの完了は、受入テストや検収の完了を意味するものではありません。

受入テストで確認する業務条件を早めに把握しておくと、結合テストで重要な連携や残存課題を見落としにくくなります。受入テストの進め方は、受入テストとは?目的・進め方・テスト項目の作り方で詳しく確認できます。

03Section結合テストの進め方:対象整理から結果報告まで

対象整理、方針・条件の合意、環境・ケース準備、実施・再確認、結果の申し送りからなる結合テストの流れ
対象整理、方針・条件の合意、環境・ケース準備、実施・再確認、結果の申し送りからなる結合テストの流れ

結合テストでは、実施前の対象・環境・判定条件の整理と、実施後の残存リスクの申し送りを含めて管理します。

結合テストは、ケースを実行する作業だけではありません。対象を決め、環境を整え、不具合を修正・再確認し、結果と残存リスクを次工程へ申し送るまでを一連の活動として扱います。

結合テストを進める基本の流れ

  1. Step01

    対象と優先順位を整理する

    機能一覧、構成図、API仕様、データ定義から結合点を洗い出します。業務影響や外部依存を基に、先に確認する経路を決めます。

  2. Step02

    方針・開始条件・体制を合意する

    対象と対象外、環境、実施者、確認者、判定者、模擬応答と実接続の範囲、開始・完了条件、障害時の連絡先をテスト計画に記載します。

  3. Step03

    環境・データを準備してケースを設計する

    接続先、アカウント、権限、テストデータ、ログ取得手段を確認します。正常時だけでなく、失敗時や再試行時の期待結果もケース化します。

  4. Step04

    実施・不具合対応・再確認を行う

    実結果を期待結果と比較し、証跡と不具合を記録します。修正後は、修正内容の確認テストに加え、変更の影響範囲を回帰確認します。

  5. Step05

    結果を評価し、次工程へ申し送る

    実施・未実施、未解決不具合、実連携未確認範囲、残存リスク、次工程での確認担当を整理し、移行可否を判断します。

ISTQBのテスト計画と完了条件の説明では、テスト計画に範囲、責任、リスク、開始・完了条件、環境・データ要件などを含める考え方が示されています。反復型の開発では、上記の流れを機能追加や変更の単位で繰り返すこともあります。

開始と完了は、条件・記録・判定者をセットで決める

開始条件は「何がそろえばテストを始められるか」、完了条件は「何を確認すれば、そのテスト活動を終えられるか」を示すものです。どちらも不具合件数だけで判断せず、条件、確認記録、判定者、未達時の扱いを同じ単位で定めます。

開始・完了判断で残す記録

開始:実装と単体確認が完了している

条件:対象機能の実装と、結合前に必要な単体確認が完了していること。

確認記録:ビルド番号、リリース記録、単体テスト結果。

判定者:開発責任者またはテスト責任者として、案件の体制で定めた担当者。

未達時の扱い:修正・再配布後に記録を更新し、開始可否を再確認する。

開始:環境・権限・データを利用できる

条件:接続先、アカウント、権限、テストデータ、ログ取得手段を利用できること。

確認記録:環境確認表、接続試験結果、データ準備記録。

判定者:環境担当・連携先担当・テスト責任者のうち、案件で定めた担当者。

未達時の扱い:利用制約を記録し、対象範囲または実施順を見直して、準備完了後に再判定する。

開始:期待結果を判定できる仕様がある

条件:API仕様、データ定義、例外時の扱いなど、期待結果を判定するための仕様と未決事項の扱いが合意されていること。

確認記録:仕様書、未決事項一覧、合意内容の記録。

判定者:設計責任者またはテスト責任者として、案件の体制で定めた担当者。

未達時の扱い:判定できないケースを保留し、決定者と期限を定めてから開始または再設計する。

完了:実施・未実施状況を整理した

条件:優先度別に計画したケースについて、実施・未実施・結果・証跡が整理されていること。

確認記録:実施記録、証跡、未実施一覧。

判定者:テスト責任者として、案件の体制で定めた担当者。

未達時の扱い:未実施理由、実施予定、次工程で確認する場合の担当者を結果報告へ申し送る。

完了:未解決不具合と残存リスクを判断できる

条件:未解決不具合の影響、回避策、対応予定、修正後の再テスト・回帰確認の状況が整理されていること。

確認記録:不具合票、影響分析、再テスト・回帰確認結果、残存リスク一覧。

判定者:プロジェクト責任者など、リスク受容の権限を案件で定めた関係者。

未達時の扱い:追加修正・追加確認を行うか、条件付き移行とするかを判断し、対応者と期限を記録する。

完了:実連携未確認範囲と次工程担当を明確にした

条件:模擬応答で代替した範囲、実接続で未確認の項目、残る前提条件、次工程での確認担当が明確であること。

確認記録:結果報告、実連携未確認一覧、申し送り一覧。

判定者:次工程責任者を含む関係者のうち、移行判定を案件で定めた担当者。

未達時の扱い:実接続の条件・日程・担当を確定してから再判定し、未確認のまま移行する場合は残存リスクを明示する。

判断結果は「進める」「条件付きで進める」「追加確認後に再判定する」のように記録します。実施者、確認者、判定者、例外を承認できる人は固定ではないため、案件の体制、品質方針、契約条件に応じてテスト計画で明確にします。

テスト工程全体で、どの資料を次の活動へ渡すかを把握したい場合は、システム開発の工程と進め方も参照してください。

04Section結合点の優先順位を決める

結合点が多い場合、すべてを同じ深さ・同じ順番で確認するとは限りません。リスクに応じて優先順位を付けることで、影響の大きい連携や、確認可能な時間が限られる連携を早めに扱えます。

判断軸優先する状況確認する理由
業務影響・金銭・個人情報業務停止、決済・請求、本人情報、権限に関わる障害時の影響や復旧負担が大きくなりやすい
外部依存外部サービス、他チーム、共有基盤に接続する仕様差、利用時間、障害切り分け、調整が発生しやすい
非同期・更新競合時間差の処理、再送、同時更新、重複防止がある順序違い、反映遅延、重複処理、不整合が起きやすい
代替手段手作業で回避しにくい中核連携である障害時に業務を継続しにくい
変更影響直近で変更した箇所、共通認証・共通APIのように利用範囲が広い変更の影響が複数機能へ広がりやすい

優先順位は、合否や必要工数を自動的に決める採点ではありません。関係者が「なぜこの連携から確認するのか」を共有するための補助です。接続先を利用できる時間、後続ケースの前提となる関係、リリース条件も加味して順番を決めます。

優先順位を付ける前の確認事項

  • ✓

    業務停止、金銭、個人情報、権限への影響を確認した

    影響を受ける業務と利用者も記録する

  • ✓

    外部サービス・他チーム・共有基盤への依存を確認した

    接続先の利用時間と障害時の連絡先を含める

  • ✓

    非同期処理、再試行、重複実行、同時更新の有無を確認した

    処理状態と失敗時の回復方法を確認する

  • ✓

    障害時の代替手段と、変更による影響範囲を確認した

    回避策がない連携や変更直後の連携を優先候補にする

  • ✓

    優先度の根拠、実連携で再確認する項目、担当・連絡先を残した

    結合点一覧またはテスト計画に記録する

05Section確認観点をテストケースにする

結合テストのケースでは、「正常に動く」とだけ書くと、実施者とレビュー者で判定がずれるおそれがあります。画面、API応答、データ保存先の状態、時間差で動く処理の状態など、実際に観測できる結果へ分解して記載します。

結合点ごとに選ぶ確認観点

すべての結合点に同じ観点を当てはめるのではなく、構成とリスクに応じて選びます。主な確認観点は次のとおりです。

  • インターフェース整合とデータ整合性:項目名、形式、必須・任意、更新順序、関連データ、重複の扱いが仕様と合っているか
  • 正常系と異常系:想定どおりの入力に加え、入力不備、認証失敗、権限不足、連携先エラーで安全に失敗するか
  • 境界・再試行・非同期処理:文字数や件数の上限、応答遅延、再送時の重複防止、処理中・完了・失敗の状態が正しいか
  • 証跡と調査可能性:画面記録、リクエスト・レスポンス、ログ、データ確認結果を残せるか。機微情報を不要に記録しないか

期待結果は観測可能な状態で書く

申請画面から登録API、保存先、一覧反映までの連携経路と、画面状態・応答・保存件数・一覧反映を確認する観点を示す図
申請画面から登録API、保存先、一覧反映までの連携経路と、画面状態・応答・保存件数・一覧反映を確認する観点を示す図

期待結果は「正常に動く」とまとめず、画面、応答、データ、後続画面で観測できる状態に分けて記載します。

以下は、申請画面から登録APIを呼び出し、登録後に一覧へ反映する経路を確認する例です。表示文言、応答値、状態名、データ項目名は、案件仕様で定めた内容に置き換えます。

項目記載例
前提条件テスト用利用者が登録権限を持つ。登録API、データ保存先、一覧取得APIをテスト環境で利用できる。
操作・入力仕様上有効な必須項目を入力して登録を1回実行し、続けて一覧を取得する。
期待結果画面は仕様で定めた成功状態となり、APIは仕様で定めた成功応答を返す。対応するデータは1件だけ保存され、一覧には仕様で定めた状態・表示条件で反映される。
証跡画面記録、APIのリクエスト・レスポンス、登録データの確認結果、一覧取得結果、実施日時、実施者を保存する。

異常系では、通信失敗、権限不足、重複実行、応答遅延などから、自案件の結合点で起こり得る条件を選びます。失敗時も、利用者への表示、データの状態、再試行時の結果、調査に必要な記録を確認します。

外部連携は模擬応答と実接続を分ける

連携先を利用できない場合は、あらかじめ決めた応答を返す模擬応答で、自システム側の処理を確認できることがあります。その場合でも、どこまでを模擬応答で確認し、どこからを実接続で再確認するかをテスト計画と結果報告に残します。

模擬応答だけで外部連携の完了を判断しない

模擬応答では、自システムが想定した応答を受け取った際の処理を確認できます。一方で、認証、ネットワーク、証明書、接続元制限、利用時間、実データの制約などは、実接続で確認が必要になる場合があります。実連携が未確認なら、対象項目、確認条件、担当者、実施予定を申し送ります。

06Section成果物と役割分担:次工程へ何を引き継ぐか

成果物は、単に提出するための書類ではなく、対象範囲をそろえ、実施結果を追跡し、次工程の判断を支える記録です。小規模な案件では一つの管理表にまとめることもありますが、それぞれの確認目的は分けて残します。

結合テストで使う主な記録

テスト計画

対象・対象外の結合点、優先順位、体制、環境、開始・完了条件、模擬応答と実接続の範囲、報告方法を定めます。

テストケース

前提条件、操作・入力、観測可能な期待結果、証跡、必要に応じて異常時の確認条件を記載します。

実施記録・不具合票

実施日時、担当、実結果、画面・ログなどの証跡を残し、不具合は再現手順、影響、対応状況、再テスト結果を管理します。

結果報告・申し送り

実施・未実施、未解決不具合、実連携未確認範囲、残存リスク、次工程で確認する項目と担当を整理します。

実施者・確認者・判定者を計画で明確にする

重要なのは、誰が実施するかだけでなく、誰が結果を確認し、誰が未解決課題を含めた移行可否を判断するかを事前に決めることです。

体制、開発方法、契約条件に応じて、テスト計画に実施者・確認者・判定者と連絡経路を明記します。

工数・期間は作業単位に分けて考える

結合テストの期間や工数は、結合点数だけでは決まりません。固定の目安を当てはめるのではなく、少なくとも次の作業単位に分けて確認します。

  • 結合点の数、優先順位、変更範囲、回帰確認の対象
  • 外部連携の数、同期・非同期の違い、接続先との調整
  • 環境、アカウント、権限、テストデータ、ログ取得の準備
  • 正常系・異常系、再試行、回復処理、実接続確認のケース設計と実施
  • 不具合修正、再テスト、結果レビュー、次工程への申し送り

結合テストでよくある疑問

結合テストは単体テストの後に一度だけ実施するものですか?+

必ずしも一度だけとは限りません。反復型の開発では、機能追加や変更に合わせて結合テストを繰り返すことがあります。工程の順序や実施単位は、案件のテスト計画で確認します。

外部サービスを模擬応答で確認できれば、実連携の確認は不要ですか?+

不要とは限りません。模擬応答では確認できない認証、ネットワーク、利用制限、証明書、実データの制約があるため、実接続で確認する範囲と時期を別途定めます。

結合テストが終われば検収できますか?+

結合テストの完了と検収は別の判断です。受入条件、必要な成果物、未解決課題の扱い、判定手順を、要件や契約条件に照らして確認します。

結合テスト完了と受入・検収を混同しない

受入テストは利用者の業務条件を満たすかの確認であり、検収は必要な成果物や品質条件を確認する手続きとして整理されます。民間案件での具体的な条件や判断手順は、契約書、発注仕様書、要件定義書、合意済みの受入条件で確認してください。

発注者・利用部門の最小確認

  • ✓

    受入条件を確認する

    受入テストで確認する業務・品質条件と、結合テストの対象・対象外が矛盾していないかを確認します。詳細は受入テストの記事を参照してください。

  • ✓

    結果と未解決課題を確認する

    重要な未解決不具合、未実施項目、実連携未確認範囲、残存リスク、対応予定が整理されているかを確認します。

  • ✓

    検収条件と判断手順を確認する

    検収対象、必要な成果物、判定者、合否基準は契約条件により異なります。検収の記事とデジタル庁「標準ガイドライン解説書」を参照し、契約書・調達仕様書・要件定義書と照らして確認します。

PartnerBase Mag 編集部

PartnerBase Mag 編集部

デジタル発注の比較・発注準備を専門に扱う編集チーム。

執筆

デジタル発注の比較・発注準備を専門に、依頼範囲、費用、選定基準を実務で使える粒度に整理しています。

支援会社を比較する

得意領域、対応サービス、地域、実績を見ながら候補会社を絞り込めます。

会社を探す

ほかのトピック