コンテンツへスキップ
ホーム » 記事一覧 » 結合テストとは?単体テストとの違いを具体例でやさしく解説

結合テストとは?単体テストとの違いを具体例でやさしく解説

結合テストとは?注文内容を保存する処理につなぎ、受け渡しを確認するイメージ

「単体テストは終わったので、次は結合テストです」と言われても、何を変えて確認すればよいのか迷いますよね。

結合テストでは、複数のプログラムや機能をつなぎ、データの受け渡しや処理の連携を確かめます。この記事では、ネットショップの例で、意味と目的、単体テストとの違いをやさしく解説します。

💡 このページでわかること

  • 結合テストの意味と、必要になる理由
  • 注文処理で確かめる内容と、失敗したときの考え方
  • 単体テスト・システムテストとの違い

結合テストとは?機能のつながりを確認するテスト

結合テストとは、複数のプログラムや機能を組み合わせ、データの受け渡しや連携が決められたとおりに動くかを確認するテストです。英語ではIntegration Testingといいます。

たとえば、レストランで注文を取る係と料理を作る係が、それぞれ仕事をできても、注文内容が厨房へ伝わらなければ料理は出てきません。「注文した料理と個数が、次の係へ正しく伝わるか」も大切です。

システムでも同じように、入力を受け付ける処理、金額を計算する処理、情報を保存する処理などが連携しています。結合テストは、この処理と処理のつながりに注目します。

単独では動いていても、受け渡す項目名や値の形式が食い違うと、組み合わせたときに不具合が起きます。こうした食い違いを見つけることが、結合テストの目的です。

具体例|ネットショップの注文で考えよう

ここでは、「注文内容を受け付ける処理」と「注文を保存する処理」をつなぐ例で考えます。保存先は、情報をまとめて管理するデータベースです。

このショップでは、商品Aを2個注文すると、商品と数量を保存し、保存できた場合だけ注文完了を表示する、と決めているものとします。

注文を受け付ける処理から商品A・数量2を保存処理へ渡し、保存できたかの結果を受け取る流れ

注文内容が、保存する処理へ正しく渡るか

まず、商品Aを2個注文し、受け付けた内容が保存先まで伝わるかを確かめます。

確認するところこの例で、どうなればよいか
商品と数量の受け渡し商品A・数量2として保存される
保存結果の受け取り保存に成功した結果を受け取り、注文完了を表示する

たとえば、受け付ける側は数量を「count」という名前で渡し、保存する側は「quantity」という名前の値を待っていたら、数量を受け取れない可能性があります。どちらも数量を表す名前ですが、受け渡しの決まりが一致している必要があります。

それぞれの処理を別々に確認したときには、相手から届くデータを仮に用意していたかもしれません。実際につなぐことで、このような認識の違いを発見できます。

保存に失敗したときも、正しく連携できるか

うまくいく場合だけでなく、連携先で問題が起きたときの動きも確認します。

この例では、保存に失敗したら「注文を保存できませんでした」と表示し、注文完了は表示しない決まりにします。テスト用に用意された方法で保存を失敗させ、受け付ける側がその結果を正しく扱うかを確かめます。

エラーの案内が出ても、決められた動きならテストは合格です。 反対に、保存できていないのに注文完了と表示されたら、決まりと違う結果です。

失敗時に表示する文言や、途中まで保存したデータの扱いはシステムによって異なります。この例をそのまま正解にせず、担当する機能の仕様(どのように動くかの決まり)を確認しましょう。

単体テスト・システムテストとの違い

大きな違いは、何に注目して確かめるかです。単体テストは個々の処理、結合テストは処理同士の連携、システムテストはシステム全体が必要な条件を満たすかに注目します。

単体テストは個々の処理、結合テストは処理同士のつながり、システムテストはシステム全体の働きに注目する

注文の例なら、数量を調べる処理だけを確かめるのが単体テストの例です。その処理を保存処理につないで、数量が正しく渡るかを確かめるのが結合テストの例になります。

システムテストでは、商品を選んで注文を完了する流れなど、システム全体として必要な働きがそろっているかを確かめます。必要に応じて、利用者が多いときの応答速度なども対象になります。

同じ注文操作を使っていても、確認の目的が異なります。また、単体や結合として扱う範囲、工程の呼び方はプロジェクトによって違うため、担当範囲を確認することが大切です。

テストの分類については、ISTQBの公式シラバス(英語・2.2.1)も参考になります。

結合テストは、どんな場面で行う?

結合テストは、新しく作った処理をつなぐときや、連携に関わる部分を変更したときに行います。

  • 新機能を作ったとき:注文を受け付ける処理と、保存する処理をつなぐ。
  • 渡す情報を増やしたとき:配達希望日の入力値が、保存先へ正しく伝わるかを確かめる。
  • 外部サービスとつなぐとき:外部の決済サービスが返す成功・失敗の結果を、注文側が正しく扱えるかを確かめる。

同じシステム内の部品をつなぐテストと、外部のシステムやサービスにつなぐテストを分けて管理する場合もあります。後者は「システム結合テスト」と呼ばれます。

基本のイメージは、個々の処理を確認してから、組み合わせて確認する流れです。ただし、開発中に少しずつつないで繰り返し確認する進め方もあります。「開発の最後に一度だけ行うもの」ではありません。

初めて担当するときに確認する3つのこと

結合テストを任されたら、まず「どことどこをつなぎ、何を渡し、どうなればよいか」を確認しましょう。

  1. つなぐ相手と範囲:注文受付から保存処理までなのか、決済サービスまで含むのかを確認します。
  2. 受け渡す情報と結果:商品・数量などの項目と、成功・失敗時にどう動くかを設計書や担当者に確認します。
  3. 試す場所と記録方法:指定されたテスト環境、使うデータ、保存結果の確認方法をそろえます。

注文完了の画面が出ただけでは、数量まで正しく保存されたとは判断できません。指定された管理画面などで保存内容も確認し、「数量2を注文したら、保存された数量も2だった」のように結果を残します。

保存先を見る権限がない場合は、確認できる担当者や確認方法を相談しましょう。連携先の障害を試す場合も、共有環境を勝手に停止せず、用意されたテスト方法を使います。

具体的な準備から報告までの流れは、末尾の「初めてテストを任されたら?」で詳しく説明しています。

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

画面を操作すれば結合テストになる?

操作方法だけでは決まりません。画面から操作しても、ツールからデータを送っても、何を組み合わせ、何を確かめるかで考えます。

たとえば、入力欄の文字数制限を見るだけなのか、入力した値が保存処理まで届くことを見るのかでは、確認の目的が違います。

連携する相手がまだ使えないときは?

相手の代わりに決まった返事をする、仮のプログラムを用意することがあります。こうした代役は「スタブ」などと呼ばれます。

代役で確認を進められても、実際の相手と問題なく連携できることまで確かめたわけではありません。どこを代役にしているかを記録し、実物との接続確認を別に計画します。

手動と自動、どちらで行うの?

どちらもあります。人が画面を操作する方法も、あらかじめ用意したテスト用プログラムで繰り返し確認する方法も使われます。

どちらの場合も、最初に「何を渡したら、どうなるはずか」を決めておくことが必要です。初めて担当するときは、職場で使っている手順やツールを確認しましょう。

まとめ|「つないだ先」まで確かめよう

結合テストは、複数のプログラムや機能を組み合わせ、データの受け渡しや連携を確認するテストです。

  • 個々の処理が動いても、つないだときに食い違いが起きることがある。
  • 渡す値だけでなく、相手が返す成功・失敗の結果も確認する。
  • 単体テスト・システムテストとは、注目する対象や目的が違う。

初めて担当するときは、設計書の中から「どの処理が、どの処理に、何を渡すか」を1つ見つけてみてください。そのつながりが分かると、結合テストで確認することも具体的になります。

関連記事

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です