前回はテストをどう考えるかについて説明した。今回は、テストプロジェクトの目次となるテスト計画書とテストの種類について紹介していこう。テスト計画を作り、この計画をレビューしていくことがテストプロジェクトのスタートとなる。
第1回ではテストをどう考えるかについて説明した。テストは実装が完了した後で実施するのではなく、設計のフェーズから行うものであり、常に「テスト可能な設計になっているか」というレビューを実施するのが望ましい。ではどのようなテストを実施するのかを考えるにあたって、今回はテストの計画について解説していこう。
システム構築を行う場合、その構築するシステムの要求管理から最終テストまでをプロジェクトという単位でくくるのが一般的だろう。中規模以上のシステムの場合、プロジェクトをサブプロジェクトとして分割するなどして管理しやすい体制を整えているのではないだろうか。
ではテストはどうだろうか? いくつかのサブプロジェクトとして分割されたプロジェクトであっても、テストは各サブプロジェクト内に存在しているのである。テストも一般のプロジェクト(ここでは分かりやすく開発プロジェクトと表記)と同様に、テスト計画、テスト設計、テストの実装/実施、分析/評価がある。開発プロジェクトの計画手法に段階的プロジェクト計画(Phased Project Planning)、作業分割図(Work Breakdown Structure)、役割分担表(Task Responsibility Matrix)などがあるように、テスト計画についても開発プロジェクトがどのような開発プロセスを取るのかによって考え方が変わってくる。例えばウォータフォール型の開発では実装のフェーズに仕様書からテストケースを作成していったり、スパイラル型の開発では機能が少しずつ追加されていくため、テストケースもその流れに合わせて作成するなど開発の流れに合わせて進んでいくことになる。先ほどのサブプロジェクトに分割されたプロジェクトの中にテスト工程が含まれているというのは、テストは開発プロセスを考えずに行っているというわけである。開発プロジェクトから見ればテストは一つの工程のように見えるが、テストを一つのプロジェクトあるいは開発プロジェクト内のサブプロジェクトとして考えて計画してみてはどうだろう。
ではテストをプロジェクトとして考えた場合、プロジェクト計画書にあたるテスト計画書には何を書けばいいのだろうか。テスト計画書はプロジェクト計画書を書く場合と同様に基盤となる項目の一覧でかまわない。いわばテストプロジェクトの目次である。テスト計画書の例として米国で一般的に使われているIEEE std829-1998 Standard for Software Test Documentation規定のテンプレートを参考に記載しておく。
IEEE std 829-1998のテスト計画書のテンプレート(日本語訳) |
1.テスト計画書識別番号 2.目次 3.参考資料 4.用語集 5.概要 6.テスト項目 7.ソフトウェアのリスクに関する問題 8.テスト対象機能 9.テスト非対象機能 10.アプローチ 11.テスト項目の合否基準 12.一時定期基準と再開要件 13.テスト資料 14.テストタスク 15.環境条件 16.責任 17.スタッフの配置とトレーニング 18.スケジュール 19.プランニングリスクと対応策 20.承認 (日経BP社 体系的ソフトウェアテスト P349から抜粋) |
上記のテンプレートには、テストの合否基準、タスク、スケジュールまでテストに関するすべての情報が書かれていることが分かるだろう。IEEEのテンプレートのようにかっちりとしたテスト計画書を作成するにはそれなりの経験が必要になるだろうから、まずはテストプロジェクトの目次として、テスト項目、タスク、スケジュール、責任範囲、合否基準が記載され、各テストドキュメントとの相関関係が分かるようなテスト計画書を作成してみるといいだろう。このテスト計画書はほかのドキュメントと同様にプロジェクト期間中に何度もアップデートされていくものとなる。
弊社の場合もテスト計画書を作ることから始まり、このテスト計画書のレビューを経て、テストプロジェクトが動き始める。理想的には、マスターテスト計画を作成し、各フェーズや各レベルごとにテスト計画を作成していくのが望ましい。
ではテスト計画はどのタイミングで見直せばいいのだろうか。これはプロジェクトによってまちまちである。弊社の場合、テストセットの実施期間が1週間であればこの1週間で見直しをかけたり、テストをβ1、β2などとフェーズに分けているときはこのフェーズ単位で見直しをかけたりしている。開発プロジェクトの進捗をどのタイミングで計っていくのかに依存するだろう。
次ページでは、テストにはどのようなものがあるかを紹介するとともに、Webアプリケーション開発で必須となるテストを考えていく。
Copyright © ITmedia, Inc. All Rights Reserved.