これまで6回にわたってソフトウェア・テストの種類などを概観してきましたが、今回はテストの手順について説明します。
テストとは、作成したプログラムに具体的な入力データを与えてそのプログラムを実行し、結果を検証して当該プログラムを評価することです。このためには、入力するデータ(これをテストデータと呼びます)と実行結果を判定する手段が必要になります。
テスト手順は、単体テスト、結合テスト、システムテスト、検収テストといったテストの種類によってその詳細は異なりますが、共通的に以下のような手順で進められます。
プログラムを作成した基になる仕様(機能仕様書、システム設計書、プログラム設計書など)を分析して、プログラムがその仕様を満たしていることを確認するためには、どのような項目をテストすればよいかを決めます。
設定したテスト項目をテストするためには、どのようなテストデータを準備すればよいかを決めます。この段階で実際にテストデータを作成するか、またはテストデータとしての条件を決めておくかします。
設定したテスト項目について、どのような環境でテストを実行するかを決めます。
テストの種類によってはテスト・ドライバやスタブの準備、テストデータの生成、テスト結果の確認などの方法を確定しておきます。
設定したテスト項目について、仕様に照らして、そのテストを実施した結果を予想します。
上記手順1〜4を文書化して、テスト計画書とテスト仕様書を作成します。テストという品質活動を成功させるためには、これら2種類の文書の精度が重要になります。
・テスト計画書
テストの目的、テスト体制、テスト完了基準、構成管理手順、障害管理手順、テスト・スケジュール、
テスト環境などを明確にします。
・テスト仕様書
テスト項目ごとに、テストデータ、テスト方法(テスト実施手順)、結果の確認方法、予想結果などを
明確にします。
もし手順2でテストデータを作成していない場合には、規定されたテストデータの条件に基づいて具体的に作成します。
手順3で計画したテスト環境を構築します。必要なテスト・ドライバやスタブはこれ以前に準備しておきます。
テスト計画書及びテスト仕様書に基づいてテストを実施します。具体的にはテスト仕様書のテスト項目単位に所定のテストデータを使ってプログラムを実行し、実行結果を予想結果と照合します。実行結果および照合の結果は必ず記録すると共に、必要に応じてエビデンス(結果を確認した画面のコピー、プリント結果、データベース内データ、電文内情報など)を残しておきます。
テスト結果が予想結果と一致しない場合には、その原因を追究します。
原因追求の結果、プログラムに問題があることが判明したら修正を行います。
修正範囲としては、デグレーションを避けるために、論理上関連するすべてのルーチンやプログラムにまで及ぶ場合もあります。また同様の問題の発生を防ぐ横並びチェックも必要です。
修正後に再度テストを実施して、修正済みプログラムが正常に動作することを確認します。
なお、手順8と9については、障害管理と構成管理を適切に行う必要があります。
特にシステムテストなど全体を統合したテスト形態の場合、再テストに当っては構成管理におけるベースレベルを確認しておくことが重要です。通常、システムテストなどでは、テストを指揮するテストリーダがテスト活動全体の整合性をコントロールします。