1.テストプロセスを構成する主な活動
テストプロセスとは、ソフトウェアの品質を確保するために行われるテストの準備段階から終了段階までの一連の作業であり、テスト目的を達成する確率を上げるための汎用的なテスト活動のセットを指します。
テストプロセスを構成する主な活動のグループは以下の通りです。
・テスト計画
・テストのモニタリングとコントロール
・テスト分析
・テスト設計
・テスト実装
・テスト実行
・テスト完了
各グループをシーケンシャルに行うこともあれば、複数のグループを重ねたり、組み合わせたり、同時に実行したり、省略したりすることもあります。
例えばアジャイル開発においては、反復(イテレーション)を繰り返しながら開発を進めていくため、テスト活動も反復的に継続して行うことになります。
プロジェクトや開発しているシステムの状況に合わせてテストプロセスを調整(テーラリング)する必要があります。
2.各活動のグループについて
■テスト計画
テストの目的を明確にします。
テストの目的は、納期やテスト対象の存在理由、テストレベルなどによって異なります。
納期や予算などの制約や状況を考慮し、テストの目的を達成するためのアプローチを定義します。
⇒スケジュールやコスト、リソースなどを明確にし、計画を立てる。
■テストのモニタリングとコントロール
・テストモニタリング:
テストの進捗が計画書通りであるか監視するために、テスト計画書で定義した
メトリクスを使用して計画と実際の進捗状況を継続的に比較する活動。
・テストコントロール:
テスト計画書通りにテストが行われ、目的が達成されるように対策を講じる活動。
モニタリング結果をもとに必要に応じてテスト計画やプロジェクト計画を見直す。
(テスト計画の継続的な更新活動)
■テスト分析
テストを行うためにテスト対象の具体的な仕様、特徴、使われ方などの必要情報を収集し、テストレベルごとにテストベースを適切に分析することで「何をテストするか」を決定します。
テストベースは、テストケースを考える際のソースになります。
<テストベースの例> テストベースはドキュメントとして明文化されたものに限らず、開発のコミュニケーション手段やスタイルによっても異なり、様々なものが含まれます。 |
|
・RFP(提案依頼書) | ・企画書 |
・購買仕様書 | ・ユースケース |
・要求仕様書 | ・アーキテクチャー仕様書 |
・リスク分析レポート | ・設計仕様書 |
・インターフェース仕様書 | ・標準文書(公のものから組織内での規定も含む) |
・会議の議事メモ | ・メール、チャットでのやり取り |
・ホワイトボードなどの開発時点でのメモ書き |
■テスト設計
テスト分析では「何をテストするか」を決定してテスト条件を作成するのに対し、テスト設計ではテスト条件をもとにして「それをどうテストするか」を決定します。
テスト条件とは、機能や特徴、品質属性、構造要素などをどのようにテストするかを表した総称です。どのようなテストケースで、どのようなテストデータを用意し、どのようなテスト環境でテストを行うかを決めていきます。
■テスト実装
テスト設計で作成されたテストケースに基づいて、テストウェア(テストプロセスで必要となる作業成果物全般)の作成やテスト環境の構築など、実際にテストを実行するために必要なものをすべて準備します。
<テスト実装の主な活動> ・テスト手順の優先度の割り当てや自動化テストスクリプトの作成 ・テスト手順や自動化テストスクリプトをもとにテストスイートを作成 ・効率的にテスト実行ができるように、テストスイートを調整 ・テスト環境の構築 ・テストデータの準備、読み込みの確認 ・テストベース、テスト条件、テストケース、テスト手順、テストスイート間の双方向トレーサビリティの検証と更新 |
テスト設計とテスト実装は同時に実施されることがあります。
■テスト実行
作成したテストケースを手動、自動にかかわらず、スケジュールに従って実行します。
<テスト実行の主な活動> ・テスト対象等のIDとバージョンの記録 ・テストを実行(手動又はテスト実行ツール) ・実行結果と期待結果を比較 ・不正を分析して原因を特定 ・故障を観察して欠陥を報告 ・テスト実行結果を記録(合格、不合格、ブロックなど) ・テスト活動を繰り返す(修正テストケース、確認テスト、リグレッションテスト) ・トレーサビリティの検証と更新 |
■テスト完了
完了したテストの全データ、ソフトウェア、プロジェクトから得られた情報をまとめる。
まとめた情報は次回も使用できるように整理・保管したり、ほかのステークホルダーに引き継いだり、テストプロセスの成熟度を改善するために利用したりもする。
3.まとめ
テストプロセスは、複数のテストの活動で構成されており、それぞれのテスト活動は、複数の個別のタスクで構成されています。
テストはプロジェクトや開発しているシステムの状況に合わせて、シーケンシャルに行ったり並行したり反復したりと、柔軟に調整し行う必要があります。