前回までは、単体テストを対象としたテスト実行およびテスト実装について、ツールによる自動化を解説しました。今回は、テスターによるGUI操作を伴うテストの自動化について紹介します。自動化には、キャプチャーリプレイツールと呼ばれるツールを利用します。

 キャプチャーリプレイツールとは、「キャプチャー機能」「リプレイ機能」という二つの機能を備えるツールを指します。

・キャプチャー機能
 テスト対象となるシステムへのユーザー操作(キーボード入力、マウス操作など)を記録して、スクリプトとして保存する

・リプレイ機能
 記録したスクリプトを用いて、何度も繰り返しテストを実行できる

 以前のキャプチャーリプレイツールは、キャプチャー機能によって記録されるスクリプトにテスト対象の座標を利用していました。そのためGUIが少しでも変わると、スクリプトの修正が必要でした。その頃にツールを利用していた方は、今もそのようなイメージを持ち、GUIのテストを自動化するのは面倒だと考える方もいるのではないでしょうか。

 しかし現在では、キャプチャーリプレイツールの機能強化が進み、上記のような修正作業を必要としないものが増えています。テスト対象のオブジェクトをプロパティの値や画像などによって認識することで、GUIの変更に対応できるのです。従来の座標で記録する方式に比べ、スクリプトのメンテナンス性は飛躍的に向上しています。

 また、大半のキャプチャーリプレイツールは、テストの実行結果を検証する機能を持っています。これにより、単にテスト実行を自動化するだけでなく、結果の検証を含めた自動化が可能です。実行イメージを図1に示します。

図1●キャプチャーリプレイツールの実行イメージ
図1●キャプチャーリプレイツールの実行イメージ
[画像のクリックで拡大表示]

 結果検証を含めた自動化を行った場合は、ツールの実行結果を確認するだけでよく、テストの実施作業がとても楽になります。

データや環境のバリエーションに対応

 キャプチャーリプレイツールには、上記二つの主要機能の他に、以下のような便利な機能を持つものがあります。

・スクリプトのモジュール化
 スクリプトを編集して、モジュール化することができる機能です。モジュール化によってスクリプト作成を効率化するとともに、作成したスクリプトのメンテナンス性を向上させることができます。また、すべてのGUI操作を記録しなくても、複数のスクリプトを組み合わせて、別のスクリプトを作成することも可能です。

・入力データ、検証用データの外部ファイル化
 スクリプトで利用するデータ(入力値、期待結果など)を変数化して、スプレッドシートやcsvファイルなどの外部ファイルに切り出して利用できる機能です(図2)。これによって、データのバリエーションテストを効率的に実施することができます。

図2●外部ファイル化のイメージ
図2●外部ファイル化のイメージ
[画像のクリックで拡大表示]

・環境バリエーションテスト対応
 同じテストスクリプトを用いて、複数の環境でテストを実施できる機能です。例えば、Webアプリケーションのテストでは、異なるWebブラウザーや異なるOSを用いた環境バリエーションテストを効率化できます(図3)。

図3●環境バリエーションテストのイメージ
図3●環境バリエーションテストのイメージ
[画像のクリックで拡大表示]

 ただしこれらの機能は、ツールによって差異がありますので注意が必要です。例えば、入力データや検証用データの外部ファイル化の機能が備わっていないツールもあります。また、機能が備わっているツールであっても、利用できるファイル形式がcsvファイルだけのツールもあれば、複数のファイル形式に対応するツールも存在します。利用時にはテストツールベンダーに問い合わせたり、Webなどの情報を調べたりして、事前に確認してください。