BUSINESS TIPS発注担当者の方へ、発注成功の為のお役立ち情報

結合テストとは?単体テストとの違いや種類、実施方法をわかりやすく解説

目次

結合テストとは?単体テストとの違いや種類、実施方法をわかりやすく解説

ITシステムやソフトウェアなどを開発する際に欠かせないのが、テスト工程です。テストを行って不具合がないか、仕様通りの機能を実現するかを確認します。

一般的にテスト工程は、単体テスト、結合テスト、総合テスト、運用テストという流れです。ここでは、結合テストとはどのようなテストなのかを解説します。

結合テストとは

一般的にテスト工程は以下のように進み、結合テストは単体テストの次に行われます。

<テスト工程>
  • 単体テスト(ユニットテスト)
  • 結合テスト(統合テスト)
  • 総合テスト(システムテスト)
  • 運用テスト(受入テスト)

単体テストでモジュールやコンポーネントごとにテストを行い、機能確認した後、複数のモジュールやコンポーネントを組み合わせて行うテストです。モジュール間の連携が正しく行われているか、機能を組み合わせることで正しく動作するかなどをテストします。

なお、結合テストは、統合テストと呼ばれることもあります。

システムテストの依頼先探しなら リカイゼン にお任せください!

システムテスト実績を多数持つ会社の中から、ご要望に合う会社を厳選して 無料 でご紹介します。企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は03-6427-5422
受付時間:平日10:00~18:00

結合テストを実施する目的

結合テストを実施する目的は、以下のとおりです。

・モジュール同士を結合しないとテストできない部分があるため
単体テストで行うのはモジュール単体のテストであり、モジュール同士を結合しないと、確認できない部分もあります。たとえば、上位モジュールが下位モジュールに渡すパラメーターの設定が間違っている場合は、結合テストを行ってはじめて不具合を検出できます。
・不具合を早期に発見して修正するため
後工程の総合テスト、運用テストの前に、早い段階でバグや不具合を発見して修正することで、手戻りを防ぎます。後工程にバグや不具合を持ち越すと、発生箇所や原因の特定、修正対応が困難になりますが、単体テストや結合テストを行うことで早期に対応することが可能です。

単体テストとの違い

単体テストとは、モジュールやコンポーネントごとに機能を確認するテストです。一方、結合テストは複数のモジュールやコンポーネントなどを結合して、それぞれの機能やデータの連携に関して動作確認を行うものです。

2つのテストは、テストの観点が異なることがわかります。

結合テストの種類

結合テストには、いくつかの種類があります。ここでは、いくつかの種類の結合テストについて解説します。

システムテストの依頼先探しなら リカイゼン にお任せください!

システムテスト実績を多数持つ会社の中から、ご要望に合う会社を厳選して 無料 でご紹介します。企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は03-6427-5422
受付時間:平日10:00~18:00

インターフェーステスト

各モジュールやコンポーネントを連携させて、問題なく動作することを確認するテストです。インターフェースは「接点」と訳され、モジュール間のインターフェースに問題がないかを確認します。たとえば、モジュール同士が、必要なデータを正しく受け渡しているかなどです。

ブラックボックステスト

ブラックボックステストとは、プログラムの中身がわからない状態でテストをする手法です。プログラムへの入力と出力が正しいかをテストするもので、ユーザー目線で仕様を満たしているかどうかをテストします。

プログラムの内部に詳しくない担当者もテストできる、設計者やプログラマーが意図していないエラーなどを確認できるというメリットがあります。

一方、プログラム内部に着目してテストを行うのが、ホワイトボックステストです。ホワイトボックステストは、内部処理にそって詳細にテストができるというメリットがあります。ブラックボックステストと併用して行うことで、テスト内容をある程度網羅することが可能です。

シナリオテスト

シナリオテストとは、ユーザーが実際に使うことを想定したテストです。たとえば、航空券のオンライン購入システムの場合、同時に複数のユーザーが同じ席を購入しようとした場合に、問題なく処理が行われるかなどを確認します。

システムの開発者が想定しないようなユーザーの挙動に対しても、問題なく処理が行われるかをシナリオテストで確認します。

負荷テスト

負荷テストとは、システムに対して負荷をかけても、システム停止や遅延などが起こらないかを確認するテストです。アクセスが集中する、ユーザーが増える、大量のデータが送信される、長期間連続でシステムを稼働させるなど、さまざまなケースを想定して確認します。

【目的別】結合テストで使われるテストタイプ

結合テストのテストタイプについて、目的ごとにご紹介します。

システムテストの依頼先探しなら リカイゼン にお任せください!

システムテスト実績を多数持つ会社の中から、ご要望に合う会社を厳選して 無料 でご紹介します。企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は03-6427-5422
受付時間:平日10:00~18:00

疎通テスト:基本的な接続確認

モジュール同士を連携させたときに、問題なく接続できるかを確認するテストです。結合テストの初期には、そもそも連携ができないというケースがあります。まずは疎通テストを行うことで、問題箇所を発見して対処していきます。

機能テスト:仕様通り動作するかの確認

個々の機能が仕様通りに、問題なく動作するかを確認するテストです。「画面が仕様通りに表示される」「〇〇ボタンを押すとメールが送信される」など、細かく機能を確認します。

性能テスト:処理速度や応答性の確認

システムやソフトウェアの性能に問題がないかをテストするものです。たとえば、画面が表示されるまでにかかる時間が想定通りかなど、処理速度や応答性について確認します。

回帰テスト:修正が既存の動作に影響を与えないかの確認

不具合が発生したときにプログラムの修正を行う際、既存の動作に影響を与えてしまうことがあります。修正した結果その部分の問題は解決したが、修正したモジュールを呼び出しているほかのモジュールに、新たな不具合が発生するなどのケースです。

既存部分への影響を確認するため、修正箇所を中心に、システム全体の挙動をテストするのが回帰テストです。

セキュリティテスト:不正アクセス防止の検証

悪意ある第三者からシステムへのサイバー攻撃が行われても、問題ないことを確認するテストです。たとえば、入力フォームにSQLインジェクションと呼ばれるデータ操作を行うための不正な入力をしても、無効化されることを確認するなどです。

ユーザビリティテスト:使いやすさの確認

ユーザー目線で、操作性や視認性、使いやすさなどを確認するテストです。システムの使い方を詳しく知らないユーザーでも、画面に表示される指示通りに進めていけば問題なく使えるか、わかりにくい箇所はないかなどの観点でテストを行います。

結合テストの実施方法

結合テストは、テスト対象の特徴によって、どのような順番で行うかが重要です。ここでは、結合テストの実施方法と、どのようなケースに適しているかについてご説明します。

トップダウンテスト

上位モジュールから順番にテストし、下位モジュールのテストへと進めていく方法です。致命的な問題を早めに発見できることがメリットです。

ボトムアップテスト

下位モジュールから順番にテストしていく方法です。システムの根幹にかかわる重要な処理を行う、下位モジュールがある場合などに適しています。

ビッグバンテスト

単体テストが終わった後に、すべてのモジュールを結合して行う方法で「一斉テスト」とも呼ばれます。小規模なシステムを、素早くテストできるというメリットがあります。大規模システムの場合は、不具合箇所の特定が難しいため向きません。

結合テストを成功させるためのポイント

結合テストを成功させるための重要なポイントについて、ご説明します。

スケジュールに余裕をもった計画を立案する

テストスケジュールは、できるだけ余裕をもたせておく必要があります。余裕がないと、バグ発生時に修正をミスして、さらに問題を起こしてしまうケースなどが考えられるためです。イレギュラーな事態が発生することも考えられるため、余裕をもったスケジュールを立てる必要があります。

優先度の高い機能からテストを実施する

重要な機能やメインの機能など、優先度の高い機能からテストを実施する必要があります。

たとえば、ECサイトの場合には、取引履歴確認機能やキャンセル機能などよりも、ユーザーへの影響が大きいメイン機能である商品選択機能、決済機能を優先的にテストすべきです。

狭い範囲から広い範囲へテストを進める

まずは、狭い範囲をテストすることで、不具合が発生した箇所を特定しやすくなります。そして、徐々にテスト範囲を広げていくことで、確実にバグをつぶしていくことが可能です。

本番に近い環境でテストを実施する

テスト環境特有の環境設定や、テストのために作成したテストデータなどでテストをしていても、実際にユーザーが利用する状況は作り出せません。そのため、本番に近い環境で、テストを実施する必要があります。

ツールを活用する

テスト自動化ツール、テスト管理ツールなどを活用することで、スムーズにテストを行えます。ただし、自動化ツールは、テスト内容に合わせて開発が必要です。開発の手間やコストを考慮して、費用対効果が高いと判断できた場合に導入するのがよいでしょう。

まとめ

結合テストとは、複数のモジュールやコンポーネントを組み合わせて行うテストです。モジュール間の連携が正しく行われているか、機能を組み合わせることで正しく動作するかなどをテストします。

単体テストの後に、結合テストと段階的にテストすることでバグを早期発見し、対処できるなどのメリットが得られます。

ソフトウェア・業務システム開発依頼先探しなら、
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社をご紹介いたします!

かんたん3ステップ
お急ぎの方はお電話で 03-6427-5422
※サポートデスク直通番号
受付時間:平日10:00〜18:00

ソフトウェア・業務システム開発依頼先探しでこんなお悩みはありませんか?

お悩み
  • 会社の選び方がわからない
  • 何社も問い合わせるのが面倒くさい
  • そもそも依頼方法がわからない
  • 予算内で対応できる会社を見つけたい

発注サポート経験豊富な専任スタッフが
あなたのご要望をお聞きし、最適な会社をご紹介いたします!
ご相談から会社のご紹介まで全て無料でご利用いただけます。
お気軽にご相談ください!

ソフトウェア・業務システム開発
依頼先探しなら
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社を無料でご紹介いたします!

サポートデスク

まずはご質問・ご相談なども歓迎!
お気軽にご連絡ください。

この記事の監修
リカイゼン サポートデスク 
吉田・新町
BtoBマッチングサービスであるリカイゼンにおいて、発注企業からのご相談のヒアリング、企業選定のフォローなどを行う部門の担当です。出展企業であるシステム開発やWEB制作、クリエイティブ制作会社ともコミュニケーションを取りながら、年間数百件の受発注のサポートを行っています。

ソフトウェア・業務システム開発の関連記事

エクストリームプログラミングとは?活用するメリットや実践方法を解説

エクストリームプログラミングとは?活用するメリットや実践方法を解説

エクストリームプログラミングとは、アジャイル開発で使われる手法のひとつです。「コミュニケーション」「シンプル」などの5つの価値と19のプラクティスを重視し、プロジェクト内のコミュニケーションや対応力を重視します。 この記事で...

結合テストとは?単体テストとの違いや種類、実施方法をわかりやすく解説

結合テストとは?単体テストとの違いや種類、実施方法をわかりやすく解説

ITシステムやソフトウェアなどを開発する際に欠かせないのが、テスト工程です。テストを行って不具合がないか、仕様通りの機能を実現するかを確認します。 一般的にテスト工程は、単体テスト、結合テスト、総合テスト、運用テストという流...

単体テストとは?結合テストとの違いやメリット・デメリット、実施手順を解説

単体テストとは?結合テストとの違いやメリット・デメリット、実施手順を解説

システムやソフトウェアを開発して運用をはじめる前には、必ずテストを実施します。テストは1回行えば良いわけではなく、いくつかの段階を踏んで行われるのが特徴です。 ここでは、テスト工程の最初のほうに行われる「単体テスト」について...

会計システムとは?どれを導入すべき?種類・機能・選び方を解説

会計システムとは?どれを導入すべき?種類・機能・選び方を解説

社内業務をサポートする基幹システムは種類が多く、なかでも会計や財務にかかるシステムは違いがわからないかもしれません。そこで今回は、会計システムにフォーカスして、搭載される機能や似たシステムとの違いについて解説します。 さらに...

「業務プロセス」とは?フローとの違いと改善を図るのに必要なポイント

「業務プロセス」とは?フローとの違いと改善を図るのに必要なポイント

生産性の低下や人件費の増加といった課題は、業務プロセスの改善で解消できる可能性があります。ただし、改善に取り組む際に業務プロセスへの理解を深めなければ、期待する成果は得られません。 そこで今回は、業務プロセスとは何を指すのか...

記事を探す

キーワードで探す

カテゴリーで探す