単体テスト・結合テスト・総合テストとは
単体テストは、プログラムの最小の部品(関数や機能の単位)が、単独で正しく動くかを確認する試験です。結合テストは、複数の部品を組み合わせて、部品同士のやり取りが正しく行われるかを確認する試験です。総合テスト(システムテスト)は、完成したシステム全体が、要件どおりに動くかを確認する試験です。
小さい単位から大きい単位へと、段階的に確認の範囲を広げていくのが基本です。小さな単位で問題を見つけるほうが、原因の特定が容易で、修正の費用も小さくなります。
これらの後に、発注側が業務の観点で確認する受入テストが続く場合もあります。
仕組み・ポイント
三つのテストの違いを整理します。
| テスト | 確認の範囲 | 主な確認事項 |
|---|---|---|
| 単体テスト | 一つの部品 | 計算や判定などが設計どおりか |
| 結合テスト | 複数の部品の組み合わせ | データの受け渡しや連携が正しいか |
| 総合テスト | システム全体 | 要件を満たすか、性能や安全性に問題がないか |
計画の際は、テストの種類ごとに、確認する観点と合格の基準を決めます。同じ内容を重複して確認しないよう、各層の役割を分けます。
特に重要な利用の流れ(購入、登録、支払いなど)を洗い出し、それがどの層のテストで確認されるのかを対応づけておくと、確認の漏れを防げます。自動化できるテストは、繰り返し実行しやすいように、早い段階で整えておきます。
実務での使い方・具体例
架空の例として、予約の仕組みを開発する場面を考えます。単体テストでは、日付の計算や料金の算出といった部品を個別に確認します。結合テストでは、予約の登録が、在庫の更新や通知の送信と正しく連動するかを確認します。総合テストでは、利用者が予約から決済、確認の連絡までを通しで操作して、問題がないかを確かめます。
最も重要な「予約から決済まで」の流れは、各層で何度も確認される構成にします。不具合が見つかった場合は、どの層で見逃したのかを振り返り、次回のテストの設計に反映します。
不具合が見つかった際は、再発を防ぐために、同じ種類の問題を検出できるテストを追加しておくと、品質が積み上がっていきます。
判断のチェックポイント
- 各テストの目的と合格の基準を、事前に定めたか
- 重要な利用の流れを、どの層で確認するか整理したか
- 重複した確認を省き、役割分担を明確にしたか
- 繰り返し実行するテストの自動化を検討したか
- 不具合の原因を、どの層で見逃したか振り返る仕組みがあるか
- 実際の環境に近い条件で、総合の確認を行う計画があるか
よくある誤解と注意点
- 最後のテストだけで品質は担保できない:小さい単位での確認が土台になります。
- すべてを網羅しようとしない:重要度に応じて、確認の濃淡を付けます。
- テストが通れば不具合がないとは限らない:確認していない観点には問題が残ります。
- 開発側のテストと受入の確認を混同しない:業務の観点の確認は別に行います。
- 後回しにしない:公開直前では、直す時間が足りなくなります。
関連用語
- 受入テスト(UAT):発注側が業務の観点で行う試験
- テスト自動化:繰り返し行う確認を自動にする仕組み
- 回帰テスト(リグレッションテスト):変更後に既存の動作が壊れていないか確かめる試験
- E2Eテスト:利用者の操作を通しで確認する試験
Otsumuに相談できること
テストは、品質と費用のバランスを取る設計の作業でもあります。新規事業では、最も重要な利用の流れを重点的に確認し、範囲を絞った計画が現実的です。Otsumuでは、公開前に押さえるべき確認項目の整理を、ご一緒にお手伝いできます。
MVP開発のご支援内容もご覧いただけます。進め方に迷う段階であれば、30分の無料相談でお話しください。
執筆:Otsumu株式会社 / 編集日 2026.10.04