受け入れテストとは?
受け入れテストは、ソフトウェアがビジネス要件を満たし、ユーザーやステークホルダーに受け入れられる準備ができているかを検証します。
ユニットテストや統合テストが「コードは動くか」を問うのに対し、受け入れテストは「正しいものを作ったか」を問います。顧客やプロダクトオーナーが実際に重視する要件に照らしてシステムを確認し、通常は外側から、ユーザーに見える振る舞いの観点で行います。受け入れテストに合格することは、機能が完成したというシグナルです。
それが答える問い
受け入れテストは、実装ではなく要件に対して検証します。合意された振る舞いが、ユーザーの視点から存在し正しいことを確認します。ある機能はすべてのユニットテストに合格しても、間違った問題を解決していれば受け入れテストには不合格となり得ます。
ユーザーによる受け入れと自動化された受け入れ
受け入れテストには2つの形態があります。ユーザー受け入れテスト (UAT) は、実際のユーザーやステークホルダーによって、多くの場合手動で実施されます。自動化された受け入れテストは、同じ要件を実行可能なシナリオとして表現し、しばしば BDD の Given-When-Then スタイルで書かれるため、生きたドキュメントとしても機能します。
簡単な例
自動化された受け入れテストは、要件をユーザーの用語で記述し、それが満たされていることを確認するためにシステムを駆動します。
An acceptance scenario
Scenario: New user sees onboarding
Given a brand-new account
When the user signs in for the first time
Then the onboarding wizard is shownそれが位置づけられる場所
- ユニットテストと統合テストが合格した後。
- エンジニアリングとビジネスの境界。
- 共通理解のために、しばしば BDD シナリオとして表現される。
- 機能が真に完成したと宣言するゲートとして。
CI における受け入れテスト
自動化された受け入れテストは、他のエンドツーエンドテストと同様に pipeline で実行され、システム全体を動かすため、より遅く、時に不安定です。高速で隔離された runner 上で並列に実行し、一時的な失敗をリトライすることで、release のゲートとして十分に信頼できる状態を保てます。
重要なポイント
- 受け入れテストは、ソフトウェアがビジネス要件を満たしているかを確認します。
- ユーザーの視点から、正しいものが作られたことを検証します。
- 自動化された受け入れテストは CI で実行され、多くの場合 BDD シナリオとして書かれます。
関連ガイド
What Is Behavior-Driven Development (BDD)?Behavior-driven development explained: Given-When-Then scenarios, shared language between developers and stak…
What Is End-to-End Testing?End-to-end testing explained: simulating a real user through the whole stack, an example, why E2E tests are s…
What Is Exploratory Testing?Exploratory testing explained: simultaneous learning, test design, and execution by a human, how it complemen…
What Is Smoke Testing?Smoke testing explained: a quick check that the most critical paths work before deeper testing, an example, a…