アジャイル開発では、「受け入れ基準(Acceptance Criteria)」を正しく定義することが、テストの品質を左右します。
今回はISTQB Agile Tester Extensionの第3章「アジャイルプロジェクトにおけるテスト技法」より、3.3.1「受け入れ基準・十分な網羅性・その他の情報」の前半部分を解説します。
✅ 1. 受け入れ基準(Acceptance Criteria)とは?
受け入れ基準とは、ユーザーストーリーや要件が「完了」と見なされるための条件を明確にするものです。
たとえば、「ログイン機能の実装」であれば、以下のような基準が設定されます。
-
ユーザー名とパスワードを正しく入力するとログインできる
-
間違ったパスワードではエラーメッセージが表示される
-
セッション管理が適切に行われ、ログアウト後は再認証が必要
つまり、何をもって“できた”とするのかをチーム全体で共通認識するための基準です。
✅ 2. 受け入れ基準に含まれるべき情報
受け入れ基準には、以下のような項目を含めることで、曖昧さを減らし、テストの抜け漏れを防ぐことができます。
|
項目 |
内容 |
例 |
|---|---|---|
|
機能的振る舞い(Functional Behavior) |
どんな機能を持つのかを定義 |
「ユーザーがボタンを押すと商品がカートに追加される」 |
|
品質特性(Quality Characteristics) |
非機能的側面(性能・セキュリティ・使いやすさなど) |
「3秒以内にページが表示される」「暗号化通信が使われている」 |
|
シナリオ・ユースケース |
実際の利用シナリオを想定 |
「会員登録後にメール確認→初回ログイン」など |
|
ビジネスルール |
制約や条件 |
「会員ランクにより割引率が変わる」 |
|
外部インターフェース |
外部システムとの連携条件 |
「決済APIと通信成功後に注文完了メールを送る」 |
|
データ定義 |
どんなデータを使うか |
「顧客IDは一意で英数字8桁」など |
これらを明確にすることで、テストケース作成時にも抜け漏れなく品質を保証できます。
✅ 3. テストレベルごとの「完了の定義(Definition of Done)」
アジャイル開発では、「各テストレベルで何をもって完了とするか」をチームで合意しておく必要があります。
これを Definition of Done(DoD) と呼びます。
🔹 Unit Testing(単体テスト)の完了基準
単体テストでは、コードレベルでの品質を保証します。
以下のような条件を満たすことが理想です。
-
可能な限り 100%の分岐網羅率(Decision Coverage) を達成
-
到達不可能なパスを確認し、レビュー済み
-
重大な未解決欠陥がない
-
技術的負債(テクニカルデット)が残っていない
-
全ての単体テストが自動化され、結果が確認済み
-
性能などの品質特性が許容範囲内
例:
ログイン関数に対して、正常系・異常系・例外処理をすべてテストし、100%分岐網羅できているかを確認します。
🔹 Integration Testing(結合テスト)の完了基準
モジュール間の連携やデータのやり取りを確認する段階です。
-
全ての機能要件(正・負テストケースを含む)を実施
-
モジュール間のすべてのインターフェースをテスト
-
リスクベースで必要十分な範囲の品質リスクをカバー
-
未解決の重大欠陥がない
-
回帰テストを可能な限り自動化し、リポジトリに保存
例:
「ログインAPI → 認証サーバ → セッション管理DB」間でのデータ連携が正しく行われるか確認。
🔹 System Testing(システムテスト)の完了基準
ここでは、システム全体がユーザー視点で正しく動作するかを確認します。
-
エンドツーエンド(E2E)のテストが実施されている
-
想定するすべてのユーザーペルソナをカバー
-
本番に近い環境でハードウェア・ソフトウェア両面から検証
-
合意された範囲内で全ての品質リスクを評価
-
可能な範囲で回帰テストを自動化
-
未解決の重大欠陥がない
例:
「新規登録 → ログイン → 商品購入 → 決済完了」までの一連の流れを、本番と同じ構成でテストする。
✅ 4. まとめ
受け入れ基準とDefinition of Doneは、チーム全員の共通理解を形成するための要です。
それを明確にすることで、品質のばらつきを防ぎ、開発のスピードと安定性の両立が可能になります。
この章は後編(Part 2)に続きます。次回は「テスト網羅性の評価とその他の情報」について解説します。
💡 補足:アジャイルにおける受け入れ基準のコツ
-
曖昧な表現(例:「すぐに」「使いやすい」)は避ける
-
テスター・開発者・PO(プロダクトオーナー)の3者で合意
-
BDD(行動駆動開発)の“Given-When-Then”形式を使うと明確になる
例:
Given ユーザーが正しい資格情報を入力したとき
When ログインボタンをクリックすると
Then ホーム画面が表示される


コメント