アジャイルテストの方法
JSTQB アジャイルテスト担当者シラバスの「3.1 アジャイルテストの方法」について、テスト担当者の視点で要約します。
アジャイルプロジェクトでは、開発の初期段階からテストを組み込む「テストファースト」の考え方や、自動化のバランス、テストタイプの分類を理解することが不可欠です。
テストファーストアプローチ(TDD, ATDD, BDD)
Section titled “テストファーストアプローチ(TDD, ATDD, BDD)”アジャイルでは、実際にコードを記述する前にテストを定義する技法が活用されます。これらは相互に補完し合う関係にあります。
- TDD(テスト駆動開発): ユニットレベルのテストを先に書き、そのテストを通すように実装・リファクタリングを繰り返す手法です。
- ATDD(受け入れテスト駆動開発): ユーザーストーリー作成時に、開発・テスト・ビジネスの三者で受け入れ基準(テスト)を定義し、それをガイドに開発を進めます。
- BDD(ビヘイビア駆動開発): 「Given/When/Then」形式でシステムの振る舞いを記述し、ステークホルダーが理解しやすい形で要件をテスト化します。
テストピラミッド
Section titled “テストピラミッド”テストピラミッドは、各レベルにおける自動テストの理想的なボリュームバランスを表すコンセプトです。
- 底辺(ユニットテスト): 最もボリュームが多く、実行速度の速い自動テストを配置します。
- 中間(統合・サービス): APIレベルなどのテスト。
- 頂点(システム・受け入れ): GUIベースのテストなどは、保守コストが高いため数を絞ります。
この構造により、欠陥をライフサイクルの早期に削減し、迅速なフィードバックを可能にします。
アジャイルテストの四象限
Section titled “アジャイルテストの四象限”テストの目的を「テクノロジ指向 / ビジネス指向」と「チームの支援 / プロダクトの評価」の2軸で4つに分類したモデルです。
| 象限 | 特徴 | 主なテスト内容 |
|---|---|---|
| 第1象限 (Q1) | テクノロジ指向・チーム支援 | ユニットテスト、コンポーネントテスト(自動化必須) |
| 第2象限 (Q2) | ビジネス指向・チーム支援 | 機能テスト、ストーリーテスト、プロトタイプ(手動/自動) |
| 第3象限 (Q3) | ビジネス指向・製品評価 | 探索的テスト、使用性テスト、ユーザ受け入れテスト(手動中心) |
| 第4象限 (Q4) | テクノロジ指向・製品評価 | 性能、セキュリティ、信頼性などの非機能テスト(ツール活用) |
テスト担当者の役割
Section titled “テスト担当者の役割”スクラムなどの現場では、テスト担当者は単に実行するだけでなく、以下の活動を主導します。
- スプリントゼロでの準備: ツール導入、テスト戦略の策定、完了(Done)の定義への寄与。
- 統合戦略の立案: 機能間の依存関係を識別し、継続的なデリバリーを可能にする統合・テスト順序を計画。
- ペアリング: 開発者やビジネス側とペアを組み、インクリメンタルなテスト設計やマインドマップの活用など、ベストプラクティスを実践。