前回の「テストの管理Vol.2 〜テストの見積もり〜」では、テスト実施前の不確定要素を軽減する適正な見積もりのポイントについてご紹介しました。そこで今回は、テストを進めるうえで重要なテストの進捗管理の概要と、テストの進捗を測定する基準についてご紹介します。
テストの進捗管理の概要
皆さんは、夏休みの最終日になって宿題が終わっていないということはありませんでしたか?ほとんどの人が「最初の一週間で終わらせる」「毎日やれば10日で終わる」と思っていたのに、いつの間にか最終日を迎え「自由研究が終わっていない」「読書感想文を忘れていた」という経験をしているのではないでしょうか。これらの原因の多くは、夏休みによくあるイベントや行事を考慮していなかったり、日々の課題進捗管理を怠っていたりするためです。
そしてこれは、夏休みの宿題にだけ言えることではありません。プロダクトを作る際にも、納期をきちんと守るためには、綿密な計画と日々の進捗管理が必要不可欠です。さらに、テスト進捗で重要になってくるのが、起こりうるイレギュラーやインシデントの数を想定し、何をどこまでやればテスト完了とするのか基準を設けて管理することです。
テスト計画の作業のレベル
次に、テスト計画をどのように立てていくのかをご紹介します。
テスト計画は、目的ごとに分けて作成しましょう。まず、プロジェクト全体のテストをまとめる「マスターテスト計画」と、その下の「個別のテスト計画」があります。個別のテスト計画は、複数のモジュールを組み合わせて行う「統合テスト」の他に、テストレベルに合わせて作成する「システムテスト計画」、「受け入れテスト計画」があります。システムテストはさらに、特定のテストの種類に合わせて作成する「性能テスト計画」と「セキュリティテスト計画」に分かれます。
マスターテスト計画は複数のテストレベルの計画を扱うため、計画書として独立していることもあれば、プロジェクト計画書の一部として記載しても問題ありません。しかし、個別のテスト計画は、それぞれ独立した計画書を作成する必要があります。
テスト計画書の作成
それでは実際にテスト計画書をどのように作成すればいいのでしょうか。「テストの管理Vol.1 〜テスト計画のレベルと内容を知る〜」の復習となりますが、以下を参考にしてみてください。(「Standard for Software Test Documentation (IEEE 829)」を参考)
- テスト計画識別番号
- はじめに
- テストアイテム
- テストすべき機能
- テストしない機能
- アプローチ
- テストアイテムの合否判定基準
- テストの中止・再開基準
- テスト成果物
- テストのタスク
- 環境要件
- 責任範囲
- 要員計画とトレーニングの計画
- スケジュール
- リスクと対策
- 承認
01.テスト計画識別番号
テスト計画書に付ける番号で、一意になるように設定します。
02.はじめに
テストの目的、それぞれのテストアイテムをどのようにテストしていくかなどを明文化し、まとめたものです。プロジェクト計画書や品質保証計画書など、テストの際に参照が必要なものはこちらに記載しておきます。
03.テストアイテム
テストを実施するそれぞれの要素を指します。ひとつのテスト対象に対し、多数のテストアイテムが存在するのが一般的です。また、テスト対象となるソフトウェアのバージョンやリビジョンもこちらに記載します。
04.テストすべき機能
すべてのソフトウェアの中から、今回テストするべき機能を抽出し、記載します。
05.テストしない機能
テストしないと判断した機能と、その理由を記載します。
06.アプローチ
プロジェクトのためのテスト戦略を示すもので、どのようなアプローチでテストを行うかを記載します。対象となるソフトウェアの品質目標や、テストレベル(ソフトウェアの開発工程モデルや、テストの目的、テストの対象、 参照するキュメントなど)の設定方法、それらの担当者など、テストの進め方について記載していきます。また、具体的なテスト技法や、使用するテストツールなどについてもこちらに記載します。
07.テストアイテムの合否判定基準
それぞれのテストアイテムごとに合格・不合格を判定するための基準を記載します。
08.テストの中止・再開基準
テストアイテムに問題があった際にテストを中止する基準を記載します。このとき、再開する基準についても記載しておきましょう。
09.テスト成果物
テスト計画書を含む、テストの過程で作成されるドキュメント類について書き出します。
10.テストのタスク
テスト前に必要な準備も含めて、テストに必要な作業を書き出します。依存関係のある作業や特殊な知識・スキルが必要な場合についても記載しておきましょう。
11.環境要件
ソフトウェアがテストされる環境(メディアやハードウェア)について記載します。
12.責任範囲
テストに関わる人と、各関係者の責任範囲について記載します。
13.要員計画とトレーニング計画
テストに必要な知識・スキルを明らかにし、必要なテスト要員の計画を立てます。求められる知識・スキルを身につけるためにトレーニングが必要な際にもこちらに記載します。
14.スケジュール
テストのマイルストーンを設定し、スケジュールを立てます。テストツールやテスト環境に使用期限がある場合にはそれらを制約事項としてスケジュールに記載しておきましょう。
15.リスクと対策
テストに関わるリスクと、その対策について記述します。
16.承認
最後に、このテスト計画を承認する人の名前を記載しておきます。
テストの進捗測定の基準
テストの進捗を測定するうえで重要なのが「開始基準」と「終了基準」です。
テストの開始基準
それぞれのテストレベルにおいて、どのタイミングで開始するのかを定義します。テストを実行するために必要な準備について記載します。開始基準の例には以下のようなものがあります。
- テスト環境が利用できる状態になっていること
- テストツールが利用できる状態になっていること
- テストコードが利用できる状態になっていること
- テストデータが利用できる状態になっていること
テストの終了基準
テストの進捗管理においてもっとも重要なのが、この終了基準です。なにを持ってテストを終了するのか、テストのゴールを設定します。そのため、終了基準はステークホルダーとの認識を合わせておく必要もあります。終了基準の例には以下のようなものがあります。
カバレッジで測定できるもの
コードカバレッジ、要件・仕様のカバレッジ、リスクに対するカバレッジなどで、全体の数値化をはかることで、どこまでテストを実施したかが分かれば、終了基準を設定しやすくなります。
欠陥密度や信頼性の見積り
信頼度成長曲線などを利用して、終了基準に設定することもあります。
コスト
テストにかける予算がなくなったら終了するという基準です。テスト対象の品質とコストを考慮した際に、コストを優先する場合などに用います。
残存リスク
未修正の欠陥(バグ)や、カバレッジで示すことができていない領域がどの程度あるかを基準に考えることもできます。
スケジュール
スケジュールの終了日を持ってテストを終了するという基準です。テスト対象の品質と納期を考慮した際に、納期を優先する場合などに用います。
まとめ
ここまで、テストの進捗管理の方法と、測定の基準設定についてご紹介しました。
・テスト計画には、いくつかのレベルや目的がある
・テスト進捗の管理には、「開始基準」「終了基準」を設けることが重要
■テスト・検証に関する課題解決はお任せ下さい
弊社は、webサイトやスマホアプリ、クラウド製品、業務システムなどのソフトウェアにおけるテスト・検証を支援する、第三者検証サービスを提供しております。テスト管理に限らず、テスト・検証に関する課題がございましたら、お気軽にお問い合わせください。
■テストの管理に関するその他の解説記事
テストの管理Vol.1 〜テスト計画のレベルと内容を知る〜テストの管理Vol.2 〜テストの見積もり〜
テストの管理Vol.3 〜テストの進捗管理〜【本記事】
テストの管理Vol.4 〜テストの構成管理〜
テストの管理Vol.5 〜テストで考慮すべき2つのリスク〜
テストの管理Vol.6 〜インシデント管理〜
【参考文献】:
『ソフトウェアテスト教科書 JSTQB Foundation 第3版』