テスト計画の基礎

テスト計画の策定

テスト計画の構成は三つに分かれる

そのテストが成功するか、それとも失敗してしまうか、多くはテスト計画で決まると言って、過言ではありません。

テスト計画とは、テストの設計、実装、実施、管理といった、テストのすべての活動に対し、指針を定めるものです。

テスト計画の骨格は、以下の三つのパートで構成されます。

  • 要求の整理・分析
    • テスト対象・範囲は何か
    • テストの目的・目標、重点項目は何か
    • テスト対象の開発状況はどうか
    • どんな課題やリスクがあるか
  • 要求の実現方法
    • テストはどんな組み立てで行うか
    • ツールや環境はどんなものが必要か
    • テストプロセスで生成する成果物は何か
    • 各種基準や目標の詳細
    • 体制・役割分担・作業場所
    • スケジュール
  • 各種管理の計画
    • 課題管理、リスク管理
    • 不具合管理
    • 文書やデータの管理
    • 進捗管理・コミュニケーション
      • (他もあるがここでは割愛)

上記の三つのパートは、互いに関連しあっています。

要求の整理・分析」を行うことで、テストに対する要求を正しく理解し、取り巻く状況を整理し、課題・リスクを抽出します。

要求と状況を整理した上で、課題とリスクを踏まえながら、「2.要求の実現方法」で実行計画を策定します。

更に、テストを下支えする各種マネジメントの準備を「3.各種管理の計画」で定義します。

要求の整理・分析

「1.要求の整理・分析」を行うことで、テストに対する要求を正しく理解し、取り巻く状況を整理し、課題・リスクを抽出します。

「要求の整理・分析」の解説は、レッスン「テストの要求分析」にありますので、そちらを参照してください。

要求の実現方法

要求と状況を整理した上で、課題とリスクを踏まえながら、「2.要求の実現方法」で実行計画を策定します。

2.1 テストの粒度と実施順序

テストに要求されていることを元に、実施するテストタイプ(テストの種類)と粒度、実施順序を定めます。例えば、

  • 単機能テストの正常パターンと限界パターンを優先的に行う
    • 次に、準正常パターン、異常パターン、組合せパターンをテストする
    • 性能テストは定期的に行う
    • リグレッションテストは自動テストで常に行う

このように、個々のテストを設計する前に、テストの全体を設計します。

ここで注意すべき点は「実施するテスト」を計画するだけでなく、「実施しないテスト」も計画することです。なぜそれをテストしないのか、理由も一緒に明らかにします。

2.2 使用する機材、ツール・環境

テストで使用する機材、ツール・環境は多岐に渡ります。

  • テスト設計に用いるもの
    • テスト実施に用いるもの
    • テストデータの作成に用いるもの
    • 不具合報告、管理、分析に用いるもの
    • 進捗管理、各種連絡に用いるもの
    • 構成管理、文書管理に用いるもの

これらを明らかにするとともに、機材の調達や、ツール・環境の準備に必要なタスクを洗い出し、計画に落とし込みます。

  • ライセンスの取得、ID登録の数やタイミング
    • 機材、ツール・環境のセットアップ、初期動作確認
    • テストデータの調達、作成
    • 不慣れなメンバがいる場合、レクチャーと必要に応じてリハーサル

これらの準備は、意外に時間も労力もかかります。あらかじめ計画しておかないと、後で突貫的に作業することが余儀なくされ、悪くすればテストの遅延が生じることになります。

2.3 成果物の定義

テストの成果物は、テストの各種プロセスからのoutputであり、さまざまなものがあります。 代表例を以下に記します。

  • <テスト計画プロセスからのoutput>
    • テスト計画書
  • <テスト設計プロセスからのoutput>
    • テスト設計仕様書
    • 機能動作確認一覧
    • テストマップ
    • テスト明細
  • <テスト実装プロセスからのoutput>
    • テストデータ
    • テストケース
  • <問題解決プロセス>
    • バグ票
    • 課題票
    • リスク票
  • <進捗管理・品質管理プロセスからのoutput>
    • 各種 計測データと、そこから導き出される分析データと見解
    • 進捗報告、品質分析報告
  • <テスト終結プロセス>
    • サマリーレポート

これら成果物を作成するタスクのWBS(Work Breakdown Structure)を作成し、開始日・終了日・担当者を割り振って実行計画に落とし込んでいきます。

2.4 基準・目標

  • <基準>
    • テスト開始基準、テスト終了基準、必要に応じて、テスト中断基準、テスト再開基準を設定します。
    • 以下にイメージを記します。
  • <目標>
    • テスト消化ペース、バグ票 起票のリードタイムなどの目標値を立てます。
    • 以下にイメージを記します。

2.5 体制・役割設計・作業場所

テストの各プロセスを実行する体制と役割設定、必要に応じて作業場所を定義します。このあとに控えるテスト設計を円滑に行うため、連絡・確認ルートなどを体制図などで表現します。

2.6 スケジュール

これまで検討した内容を、ガントチャート等で表現します。

ガントチャート等には、テストの設計、実施、不具合改修確認などのタスクだけでなく、テストデータの作成、ツールや環境構築、トレーニングなどのタスクも盛り込み、各タスクの前後関係を明らかにします。

ガントチャート等は、規模に応じて、テスト計画とは独立した文書にすることもあります。ガントチャートを別紙にする場合、テスト計画書には、そのガントチャートの内容のポリシー、計画の意図などを記載しておきます。

各種管理の計画

テストを遂行する主軸は、計画、設計、実装、実施のプロセスです。

これらのプロセスを円滑に的確に運用するために、各種管理の準備・計画を行います。

以下に概要を記します。

まとめ

これまで説明してきたように、テスト計画に記載すべき事項は多岐に渡りますが、大きく分けると以下の三つのパートで構成されます。

  • 要求の整理・分析
  • 要求の実現方法
  • 各種管理の計画

ポイントは、計画策定やテスト設計を行う前に、テストに対する要求を正しく理解し、取り巻く状況を整理することです。

要求を正しく理解し、状況を整理した上で計画を策定すると、考慮の漏れ抜けが防止でき、課題やリスクに対して配慮が行き届き、マネジメント力が向上します。

つまり、テスト計画は、テストへの要求を元に、テストの設計や管理の個別の事項に橋渡しをする、重要な役割を持っているのです。