近年、ソフトウェア開発の現場では、アジャイル開発を導入するプロジェクトや組織が増えています。
その背景には、ビジネス環境の急激な変化があり、それに迅速に対応しながら、短期間での開発を求められるケースが増えていることが挙げられます。
アジャイル開発は、こうしたダイナミックな状況に柔軟に適応する手法として注目されています。
本記事では、アジャイル開発の中でも「テスト」に焦点を当て、アジャイルテストの4象限モデルをもとに、アジャイルにおける品質確保のポイントを解説します。
アジャイル開発とは?
アジャイル開発は、変化に柔軟に対応しながら短いサイクルで開発とテストを繰り返す手法です。
ウォーターフォール型と比較すると、要件の変更に対応しやすく、開発中も成果物を継続的に提供できます。
また、テストも開発と並行して進める点も特徴です。これにより、品質を早期から作り込むことが可能になります。
アジャイル開発におけるテストの重要性
アジャイル開発では、2週間〜1ヶ月程度の短期間で、企画から開発、テスト、デリバリーまでを一連のサイクルで実施します。
この開発サイクルは「スプリント」と呼ばれ、各スプリント内で開発とテストが並行して進められるのが特徴です。そのため、テストは開発とは別工程ではなく、開発の一部として重要な役割を担っています。
しかし、こうした短期間の開発スタイルであっても、実際には企画・設計・開発の遅れによってテスト工数が十分に確保できないケースが少なくありません。
また、設計段階からテストの準備(テスト観点の明確化、環境・データ整備など)を行っていなかったために、テストが後ろ倒しになるケースもあります。
その結果、十分にテストされていないコードがデリバリーされたり、未テストのバックログが溜まってしまうといった問題が発生することもあります。
開発スタイルにかかわらず、テストは重要です。短いスプリントであっても、テスト工数を適切に確保し、各工程で品質を作り込む意識が不可欠です。
アジャイルテストの4象限
アジャイルテストの4象限は、アジャイル開発におけるテスト戦略を4つの視点で整理したものです。
これにより、テストの目的や手法を明確にし、開発プロセスへテストを組み込むことができます。
アジャイル開発の4象限は、以下のように4つの象限に分けられます。

- Q1. 技術的なテスト・・・開発者による単体テストやコンポーネントテスト
- Q2. 業務的なテスト・・・ビジネス要件を確認するための機能テスト
- Q3. ユーザー受け入れテスト・・・エンドユーザーによるシステムの受け入れテスト
- Q4. 非機能テスト・・・パフォーマンステストやセキュリティテストなど
3-1 Q1. 技術的なテスト
技術的なテストとは、主に開発チームが担当するテストで、コードの正しさや安定性を技術的な観点から確認するものです。
たとえば、単体テスト、連結テスト、コンポーネントテストなどが含まれます。
これらは、開発者がコードを実装する際に実施されることが多く、システムの基本的な品質を支える重要な工程です。
- 単体テスト
各モジュールやコンポーネントが正しく動作するかを確認します - コンポーネントテスト
システムの各コンポーネントが正しく動作するかを確認します - 結合テスト
複数のモジュールやコンポーネントを組み合わせて、正しく動作するかを確認します
技術的なテストは自動化しやすいです。
CI/CDパイプラインに組み込むことで、コードを実装する際に自動的にテストを実行できます。
テスト自動化は、開発者への早期フィードバックを可能にし、製品の品質向上に寄与します。
3-2 Q2. 業務的なテスト
業務的なテストは、主にQAチームが担当するテストです。開発されているソフトウェアが、ビジネス要件にマッチしているかを検証します。たとえば、機能テストやストーリーテストが該当します。
- 機能テスト
要件定義や仕様書に基づいて、各機能が正しく動作するか検証します - ストーリーテスト
ユーザーストーリーに基づいて、システムが正しく動作するか検証します
業務的なテストも自動化が可能です。イテレーション開始時に作成されるドキュメントに合わせてテストシナリオが作成でき、最終成果物の品質を確認できます。
業務的なテストは、開発者とQAチームが協力して実施することが重要です。
3-3 Q3. ユーザー受け入れテスト
ユーザー受け入れテストは、エンドユーザーがシステムを実際に操作し、要件を満たしているかを確認するテストです。
ユーザー受け入れテストは、エンドユーザーが参加し、開発者やQAチームが協力して実施します。
ユーザー受け入れテストでは、基本的に手動テストが行われます。また、正常系のワークフローについて正しく動作するか検証します。ユーザー受け入れテストは、エンドユーザーの視点からシステムを評価するため、ビジネス要件に基づいたテストになります。
ユーザー受け入れテストの詳細については以下をご覧ください。
▶ ユーザー受け入れテスト(UAT)とは?主な観点と進め方のポイントを解説
3-4 Q4. 非機能テスト
非機能テストは、システムパフォーマンスやセキュリティ、運用性など、機能以外の要件を確認するテストです。非機能テストは、関連するチーム(インフラチームなど)とQAチームが連携して実施します。
- パフォーマンステスト
処理速度やレスポンス時間など、パフォーマンスが要求を満たしているか確認します - 負荷テスト
高負荷(同時接続、高負荷な処理など)をかけて、性能や安定性を確認します - ストレステスト
極端な負荷をかけて、システムの限界や耐障害性を確認します - ユーザビリティテスト
UI/UXを確認します。使いやすさ、操作性や視認性を確認します - セキュリティテスト
セキュリティ要件を確認します。データの暗号や機密データの取り扱い、脆弱性診断などを実施します - 運用テスト
運用に関する要件を確認します。バックアップやリカバリ、障害時の対応手順などを検証します - アクセシビリティテスト
障害者や高齢者など、特定のユーザーに対しても利用可能かを確認します - 互換性テスト
異なる環境やプラットフォームで正しく動作するかを確認します
非機能テストは、要件に基づいて多岐に渡って行われます。その中には、セキュリティテストのように専門的な知識が必要なものもあります。
イテレーションの中で常に実行する必要があるのか、定期的な実施で良いのかと言った設計はQAチームの指揮の下に行われるでしょう。
開発サイクルに4象限を組み込む方法
今回紹介したアジャイルテストの4象限を、いかに開発サイクルの中に組み込んでいくかを考えてみましょう。
すべてをいきなり導入するのは難しいですが、優先順位と容易性によって、段階的に導入できるでしょう。
- 計画(バックログ精査時にQ2のテスト条件を定義)
- 実装+CI(Q1をパイプラインに統合し、ブロッカーを即検知)
- スプリントレビュー(Q2/Q3でステークホルダー評価を得る)
- リリースゲート(Q4の非機能ラウンドで品質基準を満たすか確認)
- レトロスペクティブ(4象限の効果測定とテスト技法のアップデート)
4-1 計画
各スプリントでは、前スプリントにおける積み残し(バックログ)を含めて、スプリント内で実装する機能を決定します。
その際には、Q2の業務的テストを意識して、テスト条件を定義します。品質を可視化するためにも、どういったテストが行えるか明確にし、そのためのテストデータを準備しはじめます。
4-2 実装+CI
実装の段階に入ったら、開発チームはQ1の技術的なテストを意識して、テスト自動化を進めます。
これにはユニットテストや結合テストの作成が挙げられます。CI/CDパイプラインに組み込むことで、開発者は早期テストとフィードバックを受けられます。
4-3 スプリントレビュー
スプリントレビューでは、Q2の業務的なテストとQ3のユーザー受け入れテストを実施します。
開発チームとQAチームが協力して、ビジネス要件に基づいたテストを行います。そして、エンドユーザーの視点からシステムを評価し、品質を確認します。
4-4 リリースゲート
リリースゲートでは、Q4の非機能テストを実施します。
パフォーマンステストやセキュリティテストなど、システムの品質基準を満たしているか確認します。
これにより、リリース前にシステムの品質を確保することが可能です。これも自動化されていれば、回帰テストを含めて実施できます。
4-5 レトロスペクティブ
レトロスペクティブでは、4象限の効果測定を行います。
テストの結果を分析し、どのテストが効果的だったかを評価します。また、テスト技法のアップデートを行い、次回のスプリントに向けて改善点を見つけていきます。
組織の体制や開発スタイルによって、適合しているものと、していないものがあるでしょう。そのため、実際に実施してみて、効果測定と見直しを行うことが求められます。
アジャイル開発の品質を向上させるポイント
アジャイル開発における品質保証の鍵になるポイントについて2つご紹介します。
5-1 ペアワーク/モブワーク
アジャイル開発では、早い段階から品質を高める取り組みが重要です。
その鍵となるのが、ペアワークやモブワークです。ペアワークでは、開発者とQAが一緒に作業することで、設計や実装の時点からテスト観点を取り入れることができます。
モブワークはチーム全体で1つの作業に取り組む手法で、知識の共有や品質意識の向上に効果的です。
これらの手法を通じて、品質を「後からチェックする」ではなく「最初から作り込む」文化が根づきます。
アジャイルにおける品質保証の基盤づくりとして、非常に有効なアプローチです。
5-2 テスト自動化
テスト自動化は、開発とテストの壁をなくし、早期フィードバックを実現します。これにより、開発者はコードを書きながらテストを行い、品質を高めることができます。
また、テストを繰り返し実行できるので、回帰テストが容易になります。
新機能開発によって、既存機能に影響が出てしまうのを未然に発見、防止ができるようになるでしょう。
テスト自動化については以下の記事をご覧ください。
まとめ
今回は、アジャイル開発におけるテストのポイントを解説しました。
アジャイル開発におけるテスト戦略のもとになる考え方「アジャイルテストの4象限モデル」は
下の4つに分類されます
- Q1:技術的テスト(単体・結合テストなど、開発者主導で自動化しやすい)
- Q2:業務的テスト(ビジネス要件を満たすか、QA中心で機能やストーリーテスト)
- Q3:ユーザー受け入れテスト(エンドユーザー視点で要件を確認)
- Q4:非機能テスト(性能・セキュリティ・運用性など、専門知識が必要な広範囲な検証)
これらの象限をスプリント計画からリリース・振り返りまでの各工程に組み込むことで、継続的な品質確保が実現します。
さらに、品質向上の実践的手法として、開発者とQAが協力するペアワークやモブワーク、早期フィードバックを促すテスト自動化が挙げられます。これにより、「品質を後から確認する」のではなく、「最初から品質を作り込む」文化を根付かせることができます。
アジャイル開発における品質保証に課題を感じている方は、ぜひ本記事を参考にしてみてください。
また、バルテスでは、無料でダウンロードいただけるお役立ち資料を提供しています。
アジャイル開発におけるテストでの成功事例を集めた資料です。こちらもぜひご覧ください。