テストレベル

JSTQB FLのシラバスによると、テストレベルとは、系統的にまとめ、マネジメントしていくテスト活動のグループのことです。ソフトウェア開発において、個々のコンポーネント(部品)単位から完成したシステム全体に至るまでの、開発段階に応じたテストプロセスのまとまりを指します。

主に以下の5つのテストレベルが定義されています。

1. コンポーネントテスト(ユニットテスト)

プログラムの最小単位であるコンポーネントを単独でテストすることに焦点を当てます。通常は、開発担当者が自身の開発環境で行います。

属性内容
テスト対象コンポーネント、モジュール、クラス、関数など
テストベース詳細設計、コード、データモデルなど
典型的な欠陥誤った計算、不正なロジック、型エラーなど
担当者開発担当者

2. コンポーネント統合テスト(ユニット統合テスト)

開発されたコンポーネント同士のインターフェースや、相互処理が正しく行われるかに焦点を当ててテストします。

属性内容
テスト対象コンポーネント間のインターフェース、API
テストベースソフトウェア設計書、シーケンス図など
典型的な欠陥データの受け渡しミス、インターフェースの不一致など
担当者主に開発担当者

3. システムテスト

システムやプロダクト全体の振る舞いや能力全般に焦点を当てます。エンドツーエンド(一連の業務の流れ)に対する機能テストや、非機能テスト(性能や使用性など)が含まれ、独立したテストチームによって実施されることがあります。

属性内容
テスト対象システム全体、エンドツーエンドのシナリオ
テストベースシステム要件仕様、ユースケース、リスク分析など
典型的な欠陥要件不一致、機能の欠落、非機能要件の未達など
担当者独立したテストチーム

4. システム統合テスト

テスト対象のシステムと、他のシステムや外部サービスとの間のインターフェース(連携)に焦点を当ててテストします。運用環境に近い適切なテスト環境が必要となります。

属性内容
テスト対象外部システム・サービスとの連携部分
テストベースシステムアーキテクチャ、外部インターフェース仕様など
典型的な欠陥外部APIとの不整合、データ変換エラーなど
担当者テストチーム、または運用チーム

5. 受け入れテスト

システムがユーザーのビジネスニーズを満たしているか(妥当性確認)や、本番環境へデプロイ(リリース)する準備ができているかの実証に焦点を当てます。理想的には想定されるユーザーによって実施されます。

属性内容
テスト対象ビジネスプロセス全体、本番相当の環境
テストベースビジネス要件、ユーザーニーズ、規制・法令など
典型的な欠陥ビジネスルールの誤り、本番との環境差異など
担当者ユーザー、顧客、ビジネスオーナー

受け入れテストには、以下のような形式があります。

  • ユーザー受け入れテスト(UAT):業務ユーザーが実施する妥当性確認
  • 運用受け入れテスト(OAT):システム管理者が本番運用可能かを確認
  • 契約・規制受け入れテスト:契約要件や法規制への適合を確認
  • アルファ・ベータテスト:開発組織内外でリリース前の品質を確認

テストレベルの代表的な属性

各テストレベルは、以下の5つの代表的な属性によって明確に区別されます。テスト活動の重複を避けるために、それぞれのレベルで何を・なぜ・どのようにテストするかを明示することが重要です。

属性説明
テスト対象そのレベルでテストする具体的な成果物・コンポーネント
テスト目的そのレベルで検証・妥当性確認すべき品質特性
テストベーステスト設計の根拠となるドキュメント・成果物
欠陥、および故障そのレベルで典型的に見つかる欠陥の種類
アプローチと責務担当者・実施方法・必要な環境

V字モデルとの対応

テストレベルは、V字モデル(開発工程とテスト工程を対応させたモデル)における各フェーズと対応しています。

要件定義         ←→ 受け入れテスト
  システム設計   ←→ システムテスト / システム統合テスト
    詳細設計     ←→ コンポーネント統合テスト
      コーディング ←→ コンポーネントテスト

V字モデルでは、開発の早い段階の成果物(要件・設計書)がテストのベースとなります。これにより、「早期テストで時間とコストを節約」というテストの原則を実践できます。