前回までは、テスト実行やその事前作業となるテスト実装、テスト設計の自動化について紹介しました。「テスト」というとこれらの作業にスポットが当たりますが、テストを計画通りに確実に進めるためには、その作業を管理することが欠かせません。そこで今回は、テスト実施時のさまざまな管理を自動化するテスト管理ツールを紹介します。
計画、設計、実行、評価を管理
テスト管理ツールとは、ソフトウエアテスト実施時の計画、設計、実行、評価という一連の作業に関するあらゆる管理を支援するツールを指します。
ASTER(ソフトウェアテスト技術振興協会)がまとめた「テストツールまる分かりガイド(入門編)」では、テスト管理ツールを表1の五つの種類に分類しています。
作業 | ツールの種類 | 主な管理項目 |
---|---|---|
テスト分析 | 要件管理ツール | 要件管理(トレーサビリティ管理) |
テスト実装 | テストケース管理ツール | テストケース管理 |
テストウエア管理*1 | 構成管理ツール | 構成管理 |
テスト結果管理 | テスト結果管理/テスト結果レポートツール | 品質管理 進捗管理 レポート作成 |
インシデント管理 | インシデント管理ツール | インシデント管理*2 |
表1に示した通り、ソフトウエアテスト実施時にテスト管理者が管理すべき項目は広範囲にわたります。テスト管理者はこれらの管理作業(進捗状況の確認や品質の分析など)に専念すべきですが、実際にはそのための情報収集などの雑多な作業に追われて時間が足りなくなり、十分な管理ができないことがしばしば起こります。テスト管理ツールを導入すれば、これらの管理作業を確実に、かつ効率良く行うことができます。
以下では、表1のテスト結果管理/テスト結果レポートツールで行うテスト結果管理作業のうち「進捗管理」と「品質管理」の自動化を、要件管理ツールで行うテスト分析作業のうち「要件管理」の自動化を取り上げます。
進捗管理の自動化
テストに限らず、システム開発では計画したスケジュール通りに作業が進んでいるかどうかを確認する進捗管理を行います。ここではテストプロセスの中から、テスト実行の進捗管理に絞って話を進めます。
一般的にテスト実行の進捗状況は、テストケースの消化数を監視します。テスト実行の期間中に毎日何件のテストケースを実行するかを計画し、実際に何件実施したかを記録することで“予実”を管理するのです。これにより、テスト実行が予定より遅れていないかどうかを把握できます。
しかし、テストがいつ完了するのかを予測するには、上記の情報だけでは十分ではありません。テストは決められた数をこなせば終わるわけではなく、欠陥がなくなるまで実施しなければならないからです。そのためには、欠陥の検出数を監視することで、欠陥の残存数を予測することも重要です。
テストケースの消化数や欠陥の検出数は、テスト実施者が日々報告したものを集計すれば把握できますが、報告や集計の手間がかかります。そこで、テスト結果管理/テスト結果レポートツールを使えば、これらの作業を自動化できます。ツールによりテスト実施の記録や欠陥の検出・修正が自動的に記録され、その結果を集計したレポートが自動で作成されます。欠陥の修正も含めた進捗状況の推移をタイムリーに監視できるようになるため、テスト完了日をより正確に予測可能になります。
さらに、テスト実行ツールやインシデント管理ツールと連携できる機能があれば、連携先のツールから進捗管理に必要な情報を自動的に取り込んで、進捗状況を確認できます。
このような進捗管理機能を備えるテスト結果管理/テスト結果レポートツールの代表的なものを表2に挙げます。
ツール名 | 提供元 |
---|---|
HP Quality Center/Application Lifecycle Management | 米Hewlett-Packard |
IBM Rational Quality Manager | 米IBM |
Microsoft Visual Studio Team Foundation Server | 米Microsoft |
Jenkins | オープンソース |
TestLink | オープンソース |
ここでは、オープンソースのテスト管理ツールである「TestLink」を紹介します。TestLinkはWebベースのテスト管理ツールで、無償のテスト管理ツールとして高く評価されています。有志による日本語化活動も行われており、ツールのデモやマニュアルなどが日本語で準備されています。
TestLinkは、いくつかのテストケースをまとめたテストスイートごとやビルドごとにテストケースの実行結果を監視し、レポートします。その中から、進捗管理に関するレポートを紹介します。
・テスト結果概要レポート
テストスイートごとに、テストケースの実行結果(成功、失敗、完了率など)をパーセンテージでレポートします(図1)。
・テスト結果詳細レポート
テストスイートに含まれるテストケースごとにテスト実行結果をレポートします。(図2)
また、TestLinkは拡張用インタフェース(TestLink Java API)を公開しています。このAPIを拡張すれば、テストケースの日々の実行結果を時系列のグラフとしてレポートすることも可能です。