2006年02月14日 09:51
今回の「アイデアマンズマーケット」システム開発で大いに
役立ちました。というか、これがなかったら絶対に完成
しなかったでしょう。
Selenium IDE
http://www.openqa.org/selenium-ide/
これはもう、一度使ったら手放せません。課長も是非使って
みてください!
このツールはSelenium=>Selenium Recorder=>Selenium IDEと
変遷してきたわけですが、Selenium Recorderでは秀丸や
MS Officeで言うところの「マクロの記録開始」的な機能が
実装され、自動操作用スクリプトの作成時間を大幅に短縮する
ことが可能となりました。しかし操作再生用のインターフェーズは
旧来のSeleniumのままでブラウザ内にフレームとして埋め込まれて
おり、私のような14インチディスプレイ(×2)ユーザにとっては
「画面の半分以上がSelenium」というシビアな環境を強いられていました。

図1. 画面の半分以上がselenium
Selenium IDEでは記録用インターフェースも再生用インターフェース
も別ウィンドウ上に実装されておりテスト対象となるWEB画面は
広々と使えます。やっとみんなが気軽に使えるレベルの完成度に
達した感があります。
テストの自動化に関して言いますと、今までも割と単純な操作であれば
マウスやキーボードの操作を自動化するソフトを用いて自動化できましたが、
すぐにそのツールをメンテナンスする為に時間を浪費する状況に陥ります。
これらのツールが不得意とするのは、ウィンドウフォームの
コントロール名が取得できない、タイムラグの設定がうまくいかない、
タブオーダ(TABキーを何回か押すとそのボタンにフォーカスがあたる)が
指定されていないといった状況になったときです。
マウスのクリック位置を座標で指定するハメになったりすると、
不安定極まりない動作となり、「もういいやっ」と気分になります。
そのようなハマる時間を考慮すると、全体として効率化できるという
保証がありません。よってビジネスユースの公認ツールとしては
採用に至りませんでした。
Seleniumが強力である理由は、それがブラウザ上で動く点が
ポイントだと思います。
WEBのインターフェースは内部的にはDOMという形で構造化されており
Seleniumの方でしっかりとそれを認識してくれます。
そのためツールに起因した不安定な動作がなく、前述の
ツールのような浪費時間がほとんど発生しません。
逆に言うとインターフェースを構造化すると通常のアプリケーション
などでも結合テストの自動化が可能ということではないでしょうか。
今 Seleniumの登場によって、安定した動作をする自動化ツールがどれほど
嬉しいかということをみんな知ってしまったのですから、.NETやeclipseが
結合テスト自動化ツールをサポートしないわけにはいかないでしょう。
標準サポートも、もう時間の問題です。
昨今の単体テスト自動化ブームに続いて結合テストの自動化ブームの
到来を予感します。