Seleniumスゲー。DHTMLの動作をテストできるのに感激。
はてブでかなり昔に話題になってたWebアプリのテスト用ツール「Selenium」。
開発チームから「Seleniumへの移行が完了したよ」と報告があったので、きょう実質はじめてさわってみた。
スゲーーーーー。見た目の派手さに騙されそうw
Jmeter時代
移行前は統合テストっつーかなんつーかアプリの動きのところのテストにはJmeterを使っていた。
悪くないんだけれども、開発がLAMPなので、カスタマイズや動作環境とかをJavaで調整しなきゃいけないJmeterがどうしてもハマりきらなかった。
例えば開発チームが文句言っていたのは*1こんなところ。
- 少し複雑なことをしようとすると、ドキュメントを細かく読む必要がある
- 高機能ゆえに習得する必要があることが多くなる(テスト自体に必要なくても)
- 出来合いのアプリケーションのため、柔軟性に欠ける
- JAVA知識がないと拡張などは一苦労
- 実行時のリソース(JAVAアプリなのでそれ自体でリソースを食う)
- エラー時の問題きりわけが難しい
ほかにも
- DHTMLのテストの仕方がわかんねー。
ってのもあった。UI的にAJAXとはいかなくても、DHTMLが使われる部分が増えてくると、そこが全部手動テストになってうざかった。手動テストがふえると、めんどくなって回帰やらないベクトル生まれるし。
テストに不満がある状態というのはよくない。
当り前だけど、テストに対して不満や不安がある状態というのはよくない。
テストに不満があると、テストしたくなくなるし、テストしたくないと、機能追加したくなくなる。テストから足が遠のきがちになる。
で、開発チームが下記を検討した結果、
- Jmeter(Java)
- SimpleTest(PHP)
- Selenium(Javascript+HTML)
Selenium時代
なにがよくなったか? たぶんだけど。
- さくさく動くからテストが楽しい
- Javascript+HTMLだから、LAMPとも相性バッチリ。カスタマイズも簡単。たいていのことは出来るげ。
- とは言え、テスト対象と実行環境が異なるから、「テストのテストが必要」なんてハメになりにくい。
- テストコードがただのHTMLだから、おれみたいな開発じゃない人も様子がわかる
- ブラウザでテストするから、ある程度ブラウザ依存の確認まで出来る。
なによりDHTMLのテストが簡単にできる! これってこれからのWebアプリには必須だよね。
さらに楽をするための実装のポイントとしては
あたり?*2
で、統合テストのカバー範囲もJmeter時代よりも大きく広げることが出来たみたい。
まだまだやりきれてないところは多いけど、テストが少しでも気持ちよくまわるというのは大事なことだな。
でも、最初にも書いたけど見た目の派手さに騙されて「テストした気になっちゃう」落とし穴もありそ。ちゃんとレビューしないとね。あ、自分? 見た目の派手さに騙されてはしゃいでますよええ今まさに。