前回はWebアプリケーションのテストの概要と,その中でも機能テストの観点について説明しました。Webブラウザを操作する機能テストは,何度も繰り返し行うのは大変な作業になりますので,回帰テストをする際にはツールによる自動化が効果的です。そこで今回は機能テストを自動化するツールについて紹介します。
Webアプリケーションのテストの自動化
「テストを自動化する」と聞くと,ツールを動かせば勝手にテストをしてくれて,テストが成功したか失敗したかを教えてくれると思う方も多いかもしれません。ですが,テストツールには人工知能がついているわけではありませんので,そこまでの機能はありません。一般的に,Webアプリケーションのテストを自動化するツールは,以下のような機能をもっています。
- (1)画面操作を記録して,記録した内容を繰り返し実行できる
- (2)画面項目に入力を与えて,その結果がどうなったかを出力する
(与える入力データは指定したもの,またはランダム)
(1)の場合は,はじめに記録させる画面操作は手動で行わなければならず,2回目以降のテストが自動化されます。(2)の場合は,結果が正しいのか間違っているのかの判定は人間が確認しなければなりません。したがって,ツールで「完全な自動化」が実現できるわけではないことには注意が必要です。ツールを導入することにより,手作業の負担をかなり軽減してくれます。
キャプチャ/リプレイツール
このようなWebアプリケーションのテストを自動化するツールはキャプチャ/リプレイツール(またはキャプチャ/プレイバックツール)と呼ばれます。先ほどの機能(1)で挙げた画面操作の記録(キャプチャ)と,記録したものを再生(リプレイ)するところから,このように呼ばれています。代表的なツールには以下のようなものがあります。
表1 代表的なキャプチャ/リプレイツール
| ツール名 | 提供元 |
|---|---|
| QuickTest Professional | HP |
| TestPartner | Compuware |
| Rational Functional Tester | IBM |
| Selenium | OpenQA |
この中でも最も注目すべきツールがSelenium(セレニウム)です。以前はこの手のツールは商用製品しかなかったのですが,このSeleniumはオープンソースで提供されています。テスト対象がWebブラウザ上で動作するアプリケーションのみという制約はありますが(※1),無料で使えるということもあり,最近利用者が急増しています。皆さんも簡単に試すことができますので,今回はこのSeleniumを使ったWebアプリケーションの機能テストについて紹介します。
- ※1)
- 表1にあるSelenium以外のテストツールは,Webブラウザ以外のリッチクライアントアプリケーションなどにも対応しています。
Selenium
Seleniumは,OpenQAサイト内のSeleniumページで提供されています。
Seleniumの大きな特徴の1つとして,テストのスクリプトの記述が容易だという点が挙げられます。キャプチャ/リプレイツールは,キャプチャした画面操作をスクリプトに出力する(あるいはスクリプトで画面操作を記述する)のが一般的です。Seleniumでは,スクリプトをHTMLのTABLEを使って記述するシンプルな形式ですので,新たにプログラミング言語を覚える必要もありませんし,スクリプト記述でミスをする可能性も少ないと言えます。
また,Seleniumは表2に挙げる3つのツールから構成されています。
表2 Seleniumの構成
| ツール名 | 内容 |
|---|---|
| Selenium Core | テストの実行機能や検証用のコマンドなどを提供します。以下の2ツールには内包されています。 |
| Selenium IDE | Firefoxのアドオンとして提供され,画面操作の記録や再生,テストスクリプトの生成を行います。 |
| Selenium RC | リモートサーバ上で動作するWebアプリケーションに対するテストを実行します。 |
これらのツールは単独でも利用可能ですが,今回はSelenium IDEとSelenium Coreを組み合わせてテストを進めていきます。例として,名前を入力して画面遷移すると,入力した名前が表示されるという簡単なWebアプリケーション(図1)を使って,Seleniumを使用したテストの手順を見ていきましょう。

