自動化への道は遠い…
現在の開発プロジェクトでの回帰テスト(デグレテスト)、何気に工数(と手間)が掛かるという事なので何とか出来ないかと思い、自動テスト化を検討。
んで、使ってみたのは、以前から記事にも度々挙がっていた「Selenium」(セレニウム)。
- Selenium公式:OpenQA: Selenium
- CodeZine:Selenium 0.7利用手順書(前編)(Selenium, Webアプリケーション, テスト)
- CodeZine:Selenium 0.7利用手順書(後編)(Webアプリケーション, Selenium, テスト)
- CodeZine:Selenium 0.7 TipsとExcelによるDB初期化(Webアプリケーション, Selenium, テスト)
インストールはWebサーバへの配備のみ、テストケース記述も用意されたコマンド命令文を並べてテストケースを作成し、HTMLテーブル形式でシナリオを作成すれば実行可能。Selenium IDEというのを使えば操作の実行ログがコマンド命令文の形で記録されるので、それをベースにして比較的簡単にシナリオを作成する事が出来ます。
問題は、Javascriptの確認ダイアログ(alert文の類)関連が上手く自動化出来ない点。マニュアルにもその点は銘記されている。ブログを見回してみても、この辺りの問題でやはり皆さん、手こずっているようです。
今対象としたいプロジェクトは処理の所々に確認ダイアログ等を表示させ、処理の制御を行っているため、この点でちょっと壁にぶち当たっています。
この点さえ解決出来れば、
- ベースとなるテストケースシナリオを1本仕上げる
- この操作にはこのコマンド実行文を記述、というノウハウを蓄積・分析
- 分析した情報を元に、入力となる日本語のシナリオ(EXCEL/表形式、コマンド:対象:値)からテストケースシナリオ(HTML/実行可能フォーマット)への自動変換を行う(専用ツールを作成)
- 自動変換・作成されたシナリオをまとめて実行可能なアプリケーションに配備し、Seleniumで自動実行。
と、一連の流れを行えるような環境を作りたいんだけどなぁ。
実現すれば効率大幅UPが見込めるので、簡単に諦めるのは勿体無い気がします…まだ触って間もないので、しばらく試行錯誤してみたいと思います。