💻 ソフトウェア開発
ソフトウェアテストの種類とは?単体・結合・システムテストをわかりやすく解説
ソフトウェアテストとは
ソフトウェアテストとは、開発したプログラムが正しく動作するか確認する工程です。バグ(不具合)を発見し、品質を保証するために行います。テストは複数の段階で実施されます。
💡 テストを早い段階で行うほど、バグ修正コストが低くなります(早期発見の原則)。
テストの4段階
① 単体テスト(ユニットテスト)
最小単位のモジュール(関数・クラス)単位でテストします。他のモジュールとの依存を切り離して単独で検証します。
② 結合テスト(統合テスト)
複数のモジュールを組み合わせた際の連携・インターフェースをテストします。モジュール間のデータの受け渡しが正しいか確認します。
③ システムテスト
システム全体を本番に近い環境で要件通りに動作するかテストします。機能・性能・セキュリティ・負荷など多角的に検証します。
④ 受入テスト(UAT:User Acceptance Testing)
完成したシステムを発注者・エンドユーザーが要件を満たしているか確認するテストです。最終的な承認の前に行われます。
| テスト種類 | 対象 | 実施者 |
|---|---|---|
| 単体テスト | 個々のモジュール | 開発者 |
| 結合テスト | モジュール間の連携 | 開発者・テスター |
| システムテスト | システム全体 | テスター |
| 受入テスト | 要件との適合 | 発注者・ユーザー |
ブラックボックステストとホワイトボックステスト
| 種類 | 特徴 | 何を見るか |
|---|---|---|
| ブラックボックステスト | 内部構造を知らずに入出力で検証 | 仕様通りに動くか |
| ホワイトボックステスト | 内部構造(コード)を理解してテスト | すべての分岐が通るか |
❌ 「テスト = 開発後にやるもの」という認識は間違いです。テスト計画は開発開始前から立てるべきです。
試験対策ポイント
✅ テストの4段階(単体→結合→システム→受入)の順序と目的を覚えましょう。
- 単体テスト:モジュール単位(開発者が実施)
- 結合テスト:モジュール間の連携確認
- システムテスト:システム全体を要件で検証
- 受入テスト:ユーザーが最終確認
- ブラックボックス vs ホワイトボックス = 内部構造を見るか否か