【JSTQB AL TA】シラバス1.2 ソフトウェア開発ライフサイクルにおけるテストまとめ
テスト戦略で考慮すべき事項
テストアナリストは、テスト戦略を定義する際には、ソフトウェア開発ライフサイクル全体を考慮する必要があります。
プロジェクトにおいて採用されたソフトウェア開発ライフサイクルによって、テストアナリストの振る舞いが異なります。
具体的には、開発チーム内などにおける他関連組織に対して、どのような関与の仕方(程度・必要な時間・利用可能な情報・及び期待)をするかを検討する必要があります。
テストアナリストの他の関連組織との関わり方
テストアナリストは、テスト活動の一環として、プロジェクトを円滑に進めることを目的に、他の関連組織との関わり=活動の提供が重要となります。
テストアナリストが把握しておくべき、活動の提供先・提供する業務内容は以下の通りです(シラバスからそのまま引用)。
提供先 | 活動内容 |
要求エンジニアリング及びマネジメント | 要件レビューのフィードバック |
プロジェクトマネジメント | スケジュールに対する入力 |
構成管理及びマネジメント | ビルド検証テストの結果、バージョンコントロールの情報 |
ソフトウェア開発 | 検出された欠陥の通知 |
ソフトウェアメンテナンス | 欠陥レポート、欠陥除去効率、確認テスト |
テクニカルサポート | 正確に文書化した回避策及び既知の問題 |
テクニカルドキュメント作成 | これらのドキュメントへの入力とドキュメントのテクニカルレビュー |
上記の活動は、採用する開発ライフサイクルとの整合性を保つ必要があります。
以下は、シーケンシャルな開発ライフサイクルの場合で、V字モデルのテストプロセスのシステムテストについて記載した例です(シラバスからそのまま引用)。
- プロジェクト計画と同時にシステムテスト計画を始め、テスト完了までテストモニタリングとテストコントロールを継続する。これは、プロジェクトをマネジメントする目的でテストアナリストが提供するスケジュールに影響する。
- システムテストのテスト分析及びテスト設計は、システム要件仕様、システム及びアーキテクチャー(ハイレベル)設計仕様、及びコンポーネント(ローレベル)設計仕様などのドキュメントに沿って行う。
- システムテスト環境の実装は、システム設計時に開始する場合があるものの、その大部分は、コーディングおよびコンポーネントテストと同時に開始するのが常であり、システムテストの実行開始数日前までシステムテスト実装への取り組みが続いてしまうことが多い。
- システムテストの実行は、テストの開始基準を満たした(または必要に応じて免除された)ときにも始まる。これは最低でもコンポーネントテストと多くの場合はコンポーネント統合テストも終了基準を満たしていることを意味する。システムテストの実行は、システムテスト終了基準を満たすまで継続する。
- システムテストの完了活動は、システムテスト終了基準を満たした後に実行する。
シーケンシャルならではのスケジュールリスク等によるシステムテスト遅延についての記載もあり、そのようなリスクを防ぐためにも、前工程からテスト計画を始め、モニタリングとコントロールを行い、開発ドキュメントを用いたテスト分析・テスト設計を実施しておくべきであると、シフトレフトの具体的アクションまで落とし込むことができています。
イテレーティブモデルやインクリメンタルモデルの場合は、テスト活動の順番を柔軟に変更したり、「テスト分析・設計・実装・実行」を実行する単位をイテレーションごとにするなどの工夫が必要となります。
もしアジャイルソフトウェア開発を採用する場合は、明確なプロセスや役割区分を設けずにプロジェクトを進行します。したがって、テストアナリストのタスクはチーム全体で行うものとされ、開発開始時点と同時にテストを開始する形でプロジェクトを進めていきます。
テストアナリストが関連組織と関わる上で意識すべきこと
以上のように、開発ライフサイクルに基づいたテストアナリストの関わり方の選択が重要であることは確かです。
しかし何よりも重要なのは、採用するソフトウェア開発ライフサイクルに関わらず、テストアナリストがプロジェクト全体において期待される「関与への期待度とタイミング」を理解することです。
事前に定義されたロールに固執することなく、採用された開発ライフサイクルへの活動と関与のタイミングを検討し、調整することによって、ソフトウェア品質に最大限貢献することができます。