テスト計画について
テスト計画とは
テスト計画とは、仕様通りにシステムやソフトウェアが作動するかを確認するための指針と言えます。テストの目的、テスト対象、テストの手法、成果物、テストの工数やスケジュール、起こりうるリスクなどについて明示していくものとも言えます。良いテスト計画を立てることができれば、漏れのないテストを行うことができますし、チーム内で目的を共通して持つことができます。また、見積もりやスケジュールを立てやすくなり、トラブルが生じたときも対処しやすくなることでしょう。
テスト計画で決まったことは、テスト計画書に記載されます。一部ですが、テスト計画書に記載される項目を挙げます。
- はじめに(概要)
→ テスト計画の目的や背景、対象プロジェクトの概要など。 - テストの目的
→ このテストで何を確認するのか、どんな品質を確保したいのか。 - テスト対象(スコープ)
→ テストする機能や範囲、対象外(非スコープ)の明記も。 - テストの種類とレベル
→ 単体テスト、結合テスト、システムテスト、受け入れテストなどの説明。 - テスト環境
→ テストに使うPCやスマホの種類、OS、ネットワーク、DBなどの情報。 - テストスケジュール
→ 各フェーズの開始・終了日、重要なマイルストーンなど。 - テスト体制・役割分担
→ テストを担当する人・チーム、レビューや承認の責任者など。 - テスト項目の設計方針
→ どんな観点でテストケースを作るか(例:機能ベース、画面単位、ユーザーストーリー単位)。 - 品質基準(完了基準) → テストが「完了」と判断できる基準(例:重大なバグがゼロ、テストケース通過率90%以上)。
- リスクと対策
→ テスト中に起こりそうな問題と、それへの対応策。 - 使用ツール
→ テスト管理ツール、バグ管理システム、テスト自動化ツールなど。 - 用語の定義(任意)
→ 特殊な略語や専門用語がある場合の補足説明。
テスト計画の目的
上述したように、テスト計画は品質保証をするためにかかせないものです。仕様で求められている品質を、どのように確認し、それを確認するためにどのようなスケジュールや工数が必要になるのかを示す必要があります。主な目的として挙げられるのは以下のようなものです。
テストの方針を明確にする
テスト計画を作成して、テストの対象(スコープ)はどこまでなのか、どんな観点でテストするのか、どんな優先順位でテストするのかということを明確にしておくなら、テストの抜け漏れや重複を防げますし、効率よく作業を行えますし、その計画も立てやすくなります。また、テストの方針を明確にしておくと、関係者との共通認識が構築され連携ミスが減少します。
効率よくテストを進めるため
テスト計画をたてて、スケジュールや担当者をあらかじめ決めておくと無駄なくチームが作業をおこなうことができます。また、どれほどの数のテストケースを作るかを事前に決めておけば、大幅なスケジュールの変更や工数の増減を避けることができます。
品質の判断基準を明確にするため
テスト計画を作成して、品質の判断基準をあらかじめ定めておくことができれば、担当者によってテストの粒度が違い、テストの抜け漏れ、重複が生じるということを避けられます。
リスクを予測・管理するため
テスト計画を立てるなら、テスト中に発生しうる問題やリスクに対処しやすくなります。どれほどの不具合や欠陥がみつかるかということをあらかじめ想定するようにしましょう。そうすれば、例え問題が起きたとしても、迅速に対処することができますし、スケジュールや工数の大幅な変更を予防することができるでしょう。
テスト計画の種類
テスト計画は、そのテストの対象(スコープ)の違いで2種類に分けられます。全体テスト計画と個別テスト計画です。全体テスト計画は、全体を俯瞰した戦略的な計画と言えます。対して、個別テスト計画は、個々の機能やフェーズにフォーカスした具体的な実行プランだと言えるでしょう。
全体テスト計画
対象となるシステムやソフトウェアの全テストの工程の計画を策定するものです。記述されるのは以下のような項目です。
- 開発プロジェクトにおけるテスト全体の目的や方針
- テストの範囲
- テスト工程全体のスケジュール
- 全体のテスト工程を構成する個別のテストについての説明やリソースの配分
- 使用するテストツール
テスト工程全体のスケジュールを決める際には、前回のプロジェクトを振り返り、工数やスケジュールを決定するようにしましょう。また、個別のテストの説明には、どれほどの工数をかけ、どのようなテストをするか、完了の基準を明示します。もし使用するテストツールが新しいものであるなら、訓練のための時間を取り分けることを忘れないようにしましょう。
個別テスト計画
全体のテスト工程を構成する個別のテスト工程を策定するものです。記述される項目は以下のようなものです。
- テストの目的
- テスト対象の範囲
- どのようなアプローチでテストするか
- 必要なリソース(設備、環境、人員など)やスケジュール
- テスト作業の内容
- 使用するテスト技法
- テストの完了判定基準とその理由
全体テスト計画と項目が似通っていますが、対象範囲が個別のテスト工程に限定されるので、より具体的なものになります。前工程の状況を把握して策定されるため、スケジュールや工数の見積もり精度があがります。特に前工程で、品質の不安要素が見つかっていたなら、その後、策定される個別テスト計画でどのように対処するか検討されます。
テスト計画のタイミング
全体テスト計画が策定されるタイミングは、プロジェクトの初期段階(要件定義~基本設計)です。実際にテストが行われるのは、開発の後半なので、プロジェクトの進捗状況に合わせて、見直しや修正が行われていきます。プロジェクト計画が固まりだしたらすぐにと覚えておきましょう。
個別テスト計画が策定されるタイミングは、各テストレベルの直前です。実際には、直前というよりもある程度の余裕をもってとりくむようにしましょう。実装が進み、テストの対象が明確になってから策定できるようにしましょう。
テスト計画作成の流れ
テスト計画は、主に以下の3つの項目に分けて考えていくことができます。
② 要求の実現計画
③ テストの管理について
以下では、これらについて1つずつ紹介していきます。要求を整理して、何をどのようにテストするべきなのかをはっきりさせ、その要求を実現するために必要な計画をたて、テストの際どのような管理をするべきなのかを決めていきます。
① 要求整理
この部分では、何が求められているのか、要求を仕様書などから整理して決めていきます。要求は細かいレベルまで確認するようにしましょう。そして、テストを行う際の状況を理解し、前もってわかる課題・リスクを整理していきます。具体的には、以下のような内容を意識して整理していきます。
- 何をテストするのか
- テストのゴールは何か
- 顧客やステークホルダーは何を重視するか
- テストの対象・範囲は何か
(仕様書や設計書を確認したり、システムやアプリの機能を洗い出します) - 現状の開発の進捗や品質がどれほどのものなのか
(開発の規模・難易度、開発スタイル、前工程でのテストの実施状況など) - 前もってわかる課題やリスクはあるか
- テストにかかる期間・コストはどれほどか
テストに関わるもので把握できるものはできるだけ考慮の対象とするようにしましょう。どんな要求がされているかだけでなく、その理由もしっかり理解しておくようにしましょう。
② 要求の実現計画
前の部分で紹介したように、要求の整理が終わったら実際のテストの計画をたてていくことになります。ここで意識したいのは以下のようなポイントです。
- テストの粒度と段取り
- テストスケジュール
(スケジュールはリリース日から逆算することが多いです) - テストに必要なツールはそろっているか
- テストの開始・終了基準は明確か
(場合によっては中断基準、再開基準も用意する) - 成果物の定義
- メンバーの役割分担や作業場所は確保できているか
- テストの必要な環境はそろっている
(必要なPC、デバイス、データはあるか、本番環境に近い状態かどうか)
これらの点を一つ一つ確認していくなら、明確なテストスケジュールを立てることができるでしょう。テストスケジュールを立てる際には、テストにかかる期間やコストだけでなく不具合が見つかった際にどう対応するかの計画も考えておくようにしましょう。
必要なツール、環境、役割分担などもテストの計画段階で確保できる目途をたてておけるなら、より品質の高いテストを行うことができます。
③ テストの管理について
実際のテスト計画が立てられたら、テストを管理していくために必要な管理項目について検討しましょう。管理項目には以下のようなものがあります。
- リスクや不具合の管理
- 作成・記録するデータや文書の管理
- 進捗管理
- テストスケジュールの管理
- 機材・ツール・担当者の管理
- 仕様変更等の管理
- トレーサビリティの管理
- レビュー計画
- トレーニング計画
(新しいツールや人員がチームに入った時に必要)
これらの項目を管理することでテストを順調に進めていくことができます。特に、リスクの管理については、リスクとそれと対になる対応策を用意しておくようにしましょう。また、テストの結果については、ほかのテストでも参照することがあるので、進捗管理、仕様変更、データや文書の管理についても明確にしておくようにしましょう。
管理計画全体に言えることですが、関係者と管理ルールを共有し、可視化しやすい状態にしておきましょう。そうすれば、チーム全体で、ゴールを共有することができます。
まとめ
テスト計画は、システムやソフトウェアが仕様通りに稼働することを確認するために策定されるものです。
顧客やユーザーの要求を整理・分析し、実際のテスト計画を立てることでその要求を実現します。そして、明確な管理項目を設けて品質の高いテストを行っていきます。
テストへの要求やテストを取り巻く状況を正しく理解して計画を策定できるなら、抜け漏れを減らしリスクを低く抑えることができます。
この記事を書いた人