【ISTQB /JSTQB Agile Tester 解説】3.3.2 受け入れテスト駆動開発(ATDD)の適用|ISTQB Agile Tester Extension解説

JSTQB Agile Tester

アジャイル開発においては、ユーザーストーリーをどのように「テスト可能な形」に落とし込むかが非常に重要です。

今回のテーマは、**Acceptance Test-Driven Development(ATDD:受け入れテスト駆動開発)**の「適用方法」です。

前回学んだ「TDD(テスト駆動開発)」や「BDD(振る舞い駆動開発)」の延長線上にあり、特にATDDはアジャイル環境で頻繁に使われる手法です。


🔍 ATDDとは?

**Acceptance Test-Driven Development(受け入れテスト駆動開発)**とは、

「開発を始める前に“受け入れテスト”を定義するアプローチ」です。

つまり、「何を作るか」より前に「どうすれば完成とみなせるか(受け入れ条件)」を明確にするという考え方です。

🧩 例:

たとえばユーザーストーリーが

「ユーザーは正しいIDとパスワードを入力すると、ログインできる」

であれば、ATDDでは次のように「受け入れテスト条件」を先に書きます。

テストケース

入力

期待される結果

正常系(ポジティブ)

正しいIDとパスワード

ホーム画面が表示される

異常系(ネガティブ)

パスワードが間違っている

エラーメッセージ「パスワードが違います」表示

このように、**開発前に“テスト観点から仕様を明確化する”**のがATDDの基本姿勢です。


🧠 ATDDの進め方(ステップごとの流れ)

① スペシフィケーション・ワークショップ(Specification Workshop)

まず最初に、開発チーム・テスト担当・ビジネス担当者の3者で集まり、

ユーザーストーリーを分析・議論・文書化します。

この段階で以下の点を確認します:

  • 要件の曖昧さや不完全さを修正

  • 欠落している条件や例外パターンを洗い出す

  • 受け入れ条件を、チーム全体で共通理解する

👉 狙いは、早期に欠陥を防ぎ、修正コストを最小化すること。

✅ 例:

ユーザーストーリー:「パスワードを5回間違えるとアカウントがロックされる」

→ この時点で「何回目で警告を出すか」「解除条件は?」などを明確にしておく。


② テストの作成(Create the Tests)

次に、ワークショップで定義したシナリオをもとに、実際のテストケースを作成します。

これはチーム全体で作る場合もあれば、テスター単独で作成する場合もあります。

  • 作成者がテスターなら、ビジネス担当がレビュー・承認する。

  • 作成者がチーム全体なら、第三者(例:プロダクトオーナー)が検証する。

👉 この段階では、**「テスト=ユーザーストーリーの具体例」**という位置づけです。


③ ポジティブテスト(Positive Tests)

まずは**正常動作を確認するテスト(ポジティブテスト)**から始めます。

なぜなら、基本的な動作が通らない状態では、

異常系テストをしても意味がないからです。

例:

  • 有効なクレジットカード番号で決済できるか?

  • 有効なログイン情報でログインできるか?


④ ネガティブテスト(Negative Tests)と例外テスト

次に、異常パターンや例外条件をテストします。

これには、無効な入力や想定外の操作が含まれます。

例:

  • 無効なメール形式を入力したらどうなるか?

  • 必須項目を空欄にした場合、警告が出るか?

その後、**非機能要件(パフォーマンス・セキュリティ・UXなど)**も確認します。


⑤ スコープ外を避ける(No Out-of-Scope Examples)

ATDDでは、ユーザーストーリーに明示されていない内容を勝手に追加してはいけません。

つまり「テスト例はストーリー内の仕様に限定する」ことが鉄則です。

❌ 例:

ユーザーストーリーに「ソーシャルログイン機能」が書かれていないのに、

Facebookログインをテストする → スコープ外!


🌱 ATDDの効果まとめ

効果

内容

✅ 早期に欠陥を発見

ワークショップ段階で曖昧さを排除できる

✅ 仕様の共通理解

開発者・テスター・ビジネス担当が同じ基準で考えられる

✅ 自動化しやすい

受け入れテストはそのままBDDツール(Cucumberなど)に移行可能

✅ リリース品質が安定

“完成”の基準が明確になるため、品質のぶれが減る

💬 まとめ

  • ATDDは「開発前に受け入れ条件を明確化する」テスト駆動アプローチ。

  • チーム全体で協働し、曖昧さを減らし、修正コストを最小化する。

  • ポジティブ → ネガティブ → 非機能の順でテストを進める。

  • ユーザーストーリー外の内容は含めない。

このように、ATDDはアジャイルの原則「早期・頻繁なフィードバック」を実現するための、

非常に実践的なテクニックです。


🧭 次のステップ

次回は「3.3.3 振る舞い駆動開発(BDD)の適用」について解説します。

TDD・ATDD・BDDを比較しながら、どのように現場で使い分けるかを見ていきましょう。

コメント

タイトルとURLをコピーしました