Seleniumがすごい
Webテスティングフレームワーク"Selenium"がすごい。JavaScriptでブラウザを操作する形式なので、実際のアプリケーション操作手順を自動化できる。
導入も簡単、テストケースの記法もシンプル。htmlの<table>タグででガンガン書ける。
http://www.openqa.org/selenium/
たとえばテキストフォームhogeに"ブルスコ"と入力したい場合、
<tr>
<td>type</td>
<td>hoge</td>
<td>ブルスコ</td>
</tr>
これだけ。んでボタン"nadenade"を押してサブミットするなら
<tr>
<td>clickAndWait</td>
<td>nadenade</td>
<td></td>
</tr>
で、遷移先ページのフォーム"break"に結果"モルスァ"が出るかどうかを検証するのは、
<tr>
<td>verifyValue</td>
<td>break</td>
<td>モルスァ</td>
</tr>
これだけ。シンプル。
XMLじゃなくてHTMLなので、新規にタグを覚える必要なしってのは大きい。パラメータの書き方も<td>タグでくくるだけだし。Javaで設定ファイル書くよりはるかにシンプル。
FireFoxユーザなら、Selenium Recorderプラグインを入れて軽くWeb巡回してみると、もっとわかりやすい。1操作ずつガンガンイベントを自動生成してくれるので、イベントの書き方がすぐにわかる。
○今のところのネック
・ドキュメントが英語のしかない。まぁもとの操作が単純なのでそこまで困らないけど。
・識別子となる属性がないとverifyが難しい
たとえば出力結果画面の<table>タグに id エレメントとか name エレメントを記述しておかないと、「テーブルの3行4列目にテキスト"evansman"が出力されているか検証したい」という操作ができない。
今いる案件でもそこがネックになりそうなオカン。
・ぶっちゃけテスト記述が冗長
シンプルでわかりやすいけど、タグ記述はやっぱり冗長。スクリプト言語のプラグインで、もっと簡単にテストケースを記述できるらしいけど。RubyならRubiniumというのが出てるみたいなので、面白そうだからいじってみよう。
とりあえずマーティンファウラー先生がいる方角に向かって拝んでおきます。