単体テストを徹底解剖!

結合テストを解説!テストの目的から実際の流れを紹介

秋本直樹

秋本直樹

インフラエンジニア/ボールド歴2年

結合テストとは具体的にどんなテストか、どのように実施するか気になった事はないでしょうか。
その具体的な目的や観点、テスト手法について曖昧なまま実施している人もいると思います。
本記事では、結合テストの目的や観点から、実際にテストする際の流れを解説します。


1.結合テストの概要

システム開発で行う結合テスト。その目的からテストの流れが想像できるよう、「1-1~1-4」で具体的な説明、大まかな流れを紹介します。

1-1.結合テストの目的・観点

結合テストの目的は、「各モジュールを組み合わせて動作させた時、意図した通りの動作になる」ようにする事です。テストした結果、「動作結果が仕様書に沿っているか」、「モジュール同士を繋げるインターフェイスが正しく動作しているか」といった観点で確認します。

1-2.結合テストの位置づけ・他テストとの違い

結合テストは「各モジュール単体でのテストが問題ないことを確認(単体テスト)」後に実施されるテストです。よって、「単体テスト」→「結合テスト」の順に実施されます。また、次工程のテストとして「システム全体でのテスト(システムテスト)」、「運用を想定してのテスト(運用テスト)」などがあります。

flow test

1-3.結合テストの手法

結合テストには大きく2つの手法があります。

① トップダウンテスト
上位モジュールから先にテストを済ませていく手法。スタブ(未テストの下位モジュールの代用)を使いテストします。上位から実施するため抜け漏れは少ないですが、上位ができないとテストできないため時間がかかります。テスト期間に猶予が無いなどの理由がなければ、この手法で試していきます。

Upper module

②ボトムアップテスト
下位モジュールから先にテストを済ませていく手法。ドライバ(未テストの上位モジュールの代用)を使いテストします。下位から実施するため同時並行的にテストできますが、上位でエラーが出た場合の出戻りが大きくなります。テスト期間が短い場合や、ドライバでエラーが出にくい(仕様が簡易)場合に実施します。

Driva

1-4.結合テストの流れ

結合テストは大まかに「仕様書作成→テスト実施→テスト結果報告」の順に進みます。ただし、事前にテストにかかる時間を予測してスケジュールを設定する他、必要な資材や環境を準備しておく必要があります。それらの詳細は次項目の「2.結合テストの準備」で紹介します。


2.結合テストの準備

結合テストは実施時間だけでなく、準備にも時間を要します。その際、どのような準備が必要か、「2-1.~2-3.」で紹介します。

2-1.テストスケジュール

結合テストにかかる時間は、各単体モジュール同士を繋げたインターフェイスの確認をする他、動作が仕様書通りにならなかった場合の出戻りなどを考慮すると、単体テストより時間を必要とします。よって、単体テストがどの程度で完了するか、いつまでに完成している必要があるかなどの開始・終了時期を考慮して設定する必要があります。

2-2.テスト仕様書の作成

テスト仕様書は、テスト操作だけでなくテスト観点や、必要な環境なども記載します。作成に当たって考慮すべき主な点を列挙します。
・要件定義を元にして必要機能を洗い出す
・結合テストの手法、観点
・実施条件、環境

2-3.テスト資材・環境準備

テスト仕様書が作成し、テストを実施するだけになった後は、テストを実施するために必要な資材や環境を整備します。
万が一間違った資材や環境でテストしてしまうと、エラーが発覚後にテスト全体の信頼性が落ちてしまいます。
テストする資材・環境が仕様書に沿っているか、問題ないか確認してからテストします。
もしテスト中に資材などに不備が見つかった場合は、その時点でテストを中断し、テストに影響を与えるものか判断が必要です。影響有りと判断されれば、テストのやり直しも検討します。


3.結合テストの実施

準備が完了したらいよいよテストを実施します。ただし、テストを実施する上で注意すべき点がありますので、「3-1~3-3」で紹介します。

3-1.テスト実施・注意点

テスト実施時には、「ユーザーが利用する環境(本番)に近い環境」で実施します。
通常、テスト環境はユーザーが利用している環境に影響を及ぼさないよう、別のネットワーク上に本番同様の環境を作成します。
ただ、ネットワーク以外にも本番とテスト環境で差異がある場合、リリース後にその部分がエラー原因となりかねません。
よって、事前に本番とテスト環境の差異がテストに影響する差異なのか確認してから実施する必要があります。もし影響があるのであれば、設定を一時的に変更するなどして対応します。

3-2.テスト中にエラーが起きた場合

テスト中にエラーが発生した場合、その場でエラーが発生したモジュール等を修正しないようにしましょう。
原因や修正影響が確定していない状況で修正すると、別エラーの原因になりかねない他、不要な修正となる可能性があります。
エラーが起きたらまずは修正箇所の見直しと、その影響について確認後に修正しましょう。

3-3.テストの結果報告

テストが完了したら、結果報告を行います。エラーが発生したら必ず報告し、テストの見直しや修正に入ります。
成功していた場合でも、エビデンス確認や成否判断が難しい点を確認し、問題ないことを確認してからテストを完了とします。
また、エラー内容が修正不可の場合、仕様変更も視野に入れて内容を再検討します。

◆参考URL:
【完全版】結合テストとは?目的や観点についてわかりやすく解説|YesNoCode…テストの流れ・手法について


4.まとめ

結合テストの目的からその準備、実施時の注意点までをまとめました。
単体テストだけでも時間を必要とする場合がありますが、結合テストは更に多くの時間を必要とするため大変な工程になります。
ただし、この工程を成功させることでリリースの成功につながりますので、手を抜かずに実施しましょう。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め定年まで働けるエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって、エンジニアとしてだけでなくビジネスパーソンとして高い水準を目指し、社会や顧客に必要とされることで、関わる人々に感動を与える集団であろうと思っています。

  • 定年までIT業界で働くためのスキルが身につく「感動大学」と「技術勉強会」!
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な「人事評価制度」!
  • 理想のエンジニア像に近づくためのよきアドバイザー「専任コーチ制度」!
  • 稼動確認の徹底により実現できる平均残業時間17時間の働きやすい環境!

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

IT業界を目指す求職者へ

プレミアムSESで市場価値の高いエンジニアへ

株式会社ボールドが約束する5つのプレミアムとは?

IT業界を目指す求職者へ

プレミアムSESで市場価値の高いエンジニアへ

株式会社ボールドが約束する5つのプレミアムとは?