プロジェクトが進行中であるにもかかわらず、テスト計画が存在しない。 本来そんなことはないのが望ましいのですが中途参画のプロジェクトにおいては意外とあったりするのも事実です。
この場合、後追いでテスト計画を作成する必要があります。実施されていない部分がどこまでできていて、どこができていないのか。これを明確にしていき、プロジェクトの品質や進捗に影響を与えるリスクを把握、対策を打っていく必要があります。
以下では、そのような状況でどのように振舞うべきかについて説明していきます。
1. 現状の把握と優先順位の設定
まず、現状を正確に把握することが重要です。以下のステップを踏んで、現状を把握し、優先順位を設定します。
現状の把握
プロジェクトの進捗状況を確認します。どの工程が完了しているか、どの工程が進行中かを把握し、前工程で実施されていないテストやレビューのリストを作成します。
優先順位の設定
重要度の高いテストやレビューを優先的に実施します。例えば、影響範囲がシステム全体であったり、ユーザに直接影響を与えたりする部分は優先する必要があります。
2. テスト計画の作成
現状を把握したら、迅速にテスト計画を作成します。以下のポイントを押さえて、効率的なテスト計画を立てましょう。
テストマトリクスの作成
各工程で実施するテストと評価する観点を一覧化します。オーソドックスですが、以下のようなテストマトリクスを予め設けておくといざというときに速やかにチェックが可能です。
| 工程 | テスト種類 | テスト観点 |
|---|---|---|
| 要件定義 | 要件レビュー | 要件の完全性、一貫性、明確性、実現可能性、非機能面の定義有無の確認も必要です |
| 基本設計 | 設計レビュー | 設計の整合性、要件とのトレーサビリティ、設計の完全性 |
| 詳細設計 | 詳細設計レビュー | 詳細設計の正確性、基本設計とのトレーサビリティ、設計の完全性 |
| コーディング | コードレビュー | 詳細設計とのトレーサビリティ、コーディング規約の遵守、コードの可読性、保守性、効率性 |
| 単体テスト | 単体テスト | 単機能/単モジュールの正確性、エラー処理、境界値テスト |
| 結合テスト | 結合テスト | 機能間/複数モジュールのインターフェースの整合性、データの流れ、エラー処理 |
| システムテスト | システムテスト | 要件とのトレーサビリティ、機能の正確性、パフォーマンス、セキュリティ、リグレッションテスト |
| ユーザ受け入れテスト | ユーザ受け入れテスト | ユーザ要件の満足度、操作性、実運用環境での動作確認 |
テストスケジュールの設定
各テストの実施時期をスケジュールに組み込みます。プロジェクトの進捗に合わせて、テストのタイミングを調整します。
3. 実施されていないテスト/レビューの対応
本来前工程で実施されていなければならないテストやレビューが実施されていない場合、以下の対応を行います。これもよくあるのですが、テスト/レビューが実施された履歴はあっても、テスト観点を満たしていないケースがあるので気を付けましょう。
緊急レビューの実施
重要な設計やコードのレビューを緊急で実施します。特に、システム全体に影響を与える部分や、ユーザに直接影響を与える部分を重点的にレビューします。
テストの補完
実施されていないテストを補完します。例えば、単体テストが実施されていない場合は、結合テストの前に単体テストを実施します。
4. コミュニケーション
プロジェクトチーム全体で状況を共有し、適切なコミュニケーションを図ります。
定期的なミーティング
定期的にミーティングを開催し、進捗状況や問題点を共有します。テスト計画の進捗や、実施されていないテスト/レビューの対応状況を報告します。
関係者への報告
プロジェクトの進捗やテスト計画の状況を関係者に報告します。必要に応じて、関係者からのフィードバックを受け取り、計画を調整します。
5. 継続的な改善
後追いでテスト計画を作成する際の経験を活かし、今後のプロジェクトで同様の問題が発生しないように改善を図る必要があります。振り返りをしっかり行い、テスト計画が作成されるプロセスにしていきましょう。
後追いでの作業は現行スケジュールに少なからずインパクトを与えてしまうので、なかなか推進が難しいところではありますが、損して得取れの精神を共有し、是非プロジェクトを成功に導いていってください。

