テストの自動化というと、「テストの実行」を自動化することを想像する方が多いかもしれません。そもそも「テスト」という言葉自体が「テストの実行」の意味で使われることが多いでしょう。
しかしテストには、実行以外にも多くの作業が含まれます。本特集の初回に紹介したASTER(ソフトウェアテスト技術振興協会)の「テストツールまるわかりガイド」では、テストを含めた開発全体の作業を図1のように表しています。
この図の中で、テストの作業は八つに分類されています。それぞれの作業の概要は表1のようになります。
テストの作業 | 概要 |
---|---|
テスト分析 | テスト対象を理解してテストすべきこと(テスト条件)を明確にする |
テスト設計 | テスト条件を漏れなく確認するためのテストケースを作る |
テスト実装 | テストを実行できるようにするための準備をする |
コード解析 | 人手によるコードレビューを補完してソースコードの欠陥を発見する |
テスト実行 | テストケースやテスト手順に従ってテスト対象を実行する |
テストウエア管理 | 開発プロセスを通して生成されるテスト関連成果物を管理する |
テスト結果管理 | テスト計画と実績を管理し、結果を報告書にまとめる |
インシデント管理 | 検出された不具合が解決するまでの状況を追い続ける |
このように、テストにはテストの実行以外に、実行するための準備作業や管理作業も含まれます。これらの作業はすべて自動化の対象となります。
また、「テストは最後の砦(とりで)」と言われることもありますので、テストというとシステム開発の最後に行う作業というイメージがあるかもしれません。図1を見ると、例えば受入テストのテスト分析は、要求分析が終われば開始できます。さらに言えば、要求分析の完了を待たずして、並行して開始することも可能です。
これは、従来の「V字型モデル」を発展させた「W字型モデル」と呼ばれる開発プロセスで、テストの作業はいわゆる上流工程から始めることができます。つまり、テストの自動化も開発の早い段階から着手すべきということに注意しましょう。