Scrum Inc.認定スクラムマスターの局です。
一般的なアジャイル方法論やスクラム開発のプラクティスをベースとしつつ、NCDCのこれまでの経験を取り入れた独自の方法論「NCDC Agile Development Process」の概要を全6回に分けて説明します。
NCDC Agile Development Process(NADP)解説記事
キックオフ(Kick-off)
要求(Requirements)
デザイン(Design)
スプリント計画(Sprint Planning)
開発(Development)
総合テスト(System Testing)←本記事
今回は総合テストについてです。
スクラムというと、リリース可能な機能をスプリントごとで提供するので総合テストは必要ないんじゃないか?と誤解されているケースが多いようです。
しかし、総合テストが必要ないわけではありません。スクラムでは、総合テストをスプリントごとに入れるか、最後に入れるかを議論して決めることになります。
総合テストに該当するテストをスプリント毎に入れると、テスト時間はスプリント数に応じて増えていくので、トータルのテスト時間は比較的多くなりがちです。しかし、スプリント毎にエンドユーザーへのリリースを入れるのであればこれがいい方法でしょう。
一方で、スプリント毎にエンドユーザーへのリリースはせず事前にリリース期日が決まっている場合や、機能がある程度揃ってからリリースする場合は、リリース前にリリーススプリントを設けて総合テストを行う方がトータルのテスト時間を抑えられるので効率がよいといえます。
プロジェクトの特性に応じて、スプリント毎か、最後にまとめてか、はたまた一部はスプリント毎に実施するか等、テスト計画を立てておきましょう。
「総合テスト」の要点
本番リリース前の仕上げとして、総合テストを実施します。中には、スプリント中に行うものもあります。どこまで行うかはプロジェクトで合意を取っておきます。
テストは細かくやればやるほどより高い品質保証に繋がりますが、コストも増加するため、プロダクトオーナーやステークホルダーとも相談してバランスを見て判断することが大切です。
総合テストの確認項目
テスト環境構築
本番環境同等のものを用意します。必ずしもテスト環境でテストをしなければいけないわけではありませんが、テスト環境を用意しない場合はその理由やリスクを話し合い、関係者間で合意を取ってください。
特に外部システムが関わっているシステム開発では、テスト環境があった方が安全です。構築の際に考慮する項目は以下です。
- プラットフォーム
- リソース
- サービス
- ネットワーク
- 実装物
- 外部システム
シナリオテスト
ユーザーストーリーから変換されたテストシナリオを作成します。
一連の操作、画面等を確認し、機能面でユーザーストーリーを満足しているかのテストです。
例えば下記のようなシナリオが考えられます。
- 一般ユーザーの業務プロセス
- 管理者の業務プロセス
性能テスト
ユーザーストーリーから変換されたテストシナリオを作成します。
一連の操作、画面等を確認し、性能面でユーザーストーリーを満足しているかのテストです。
ロードテスト、ストレステスト、拡張性テスト、オートスケールを含みます。
セキュリティテスト
権限に関するテストを作成します。
開発するサービスに関するセキュリティ診断ツールを最低1種実施します。
可用性テスト
障害が発生した時の動作をテストします。
フェイルオーバー、スイッチオーバーテスト、メンテナンスなどによる計画停止時の動作のテストも含みます。
長期安定テスト
連続動作時の安定性をテストします。
運用を想定した動作を最低一週間行い、各リソースの状態、メモリリークを確認します。
リグレッションテスト(機能追加開発時のみ)
既存の機能、サービスへの影響をテストします。
ドキュメント検証
プロジェクトにより、納品に必要なドキュメントが揃っているか確認します。
要件書、設計書、報告書や、ユーザーマニュアル、運用マニュアルなどがあります。
特に重要だと感じるポイント
総合テスト用のスケジュールを短く見積もりがちですが、テストには十分な時間をとることが大切です。
特に対向システムがある場合のテストは想定外の不具合や仕様漏れが発見されるものです。テストを実施するスケジュールだけでなく、発見された課題を修正・確認するためのスケジュールも確保しておきましょう。
アジャイル開発に取り組みたい方、改善したい方へ
最終回となる今回の記事では「NCDC Agile Development Process」に関して「総合テスト」の説明をさせていただきました。
NCDCでは「NCDC Agile Development Process」をベースに、これからアジャイル開発に取り組みたい方や、既存のやり方を改善したい方へのご支援を行なっています。
アジャイルを用いた開発案件の依頼先をお探しの方、または自社でアジャイル開発体制を構築したい、改善したいといったご相談がある方は、お問い合わせフォームからご連絡ください。
また、ご希望の方には資料も配布しております。
NCDC Agile Development Processを取り入れてみたい方は下記フォームからお申し込みください。
資料請求「アジャイル開発方法論」
NCDC Agile Development Process解説記事
キックオフ(Kick-off)
要求(Requirements)
デザイン(Design)
スプリント計画(Sprint Planning)
開発(Development)
総合テスト(System Testing)←本記事