以前より名前は知っていて、少しいじったことはあったものの、本気で使う機会のなかった、テストツール Selenium。ようやく「使うかもしれない」というシーンに巡り会えました。
私がいまお手伝いさせていただいている、お客様の所の社内システム。http ベースのものなのですが、恥ずかしながらこれがまた、昔ながらの「体当たり開発」をしています。もう少し近代化したいと思いつつも、それ自体が直接的に前に進むものではないので、どうしても具体的な開発案件に時間を優先的に配分してしまいます。トラブルが起きたときは大変なのですが、「起こらないかもしれない(というより、起こらないように最新の注意を払っているのでほぼ滅多に起こらない)」ことに対しての事前の備えに対しては、かけられるコストには制約がある、、、、という、これまで何年間も様々なところで語られていたジレンマに、私自身も陥っていました。
テストの自動化を目指す際に、ハードルとなるのは導入コストです。初期学習コストと言っても良いでしょう。どんなことができるのか、どうやったらできるのか、どの程度できるのか、どの程度やったらいいのか、本当にこれであっているのだろうか、、、等等、先の見えないことが多すぎるのです。
こんな状況だったので、これまで既存システムの一部を変更したときに、他への悪影響が出ていないことを、「ブラウザ上でざっと手で叩いて、動作を見てみる」ということを、やったりやらなかったりしていました。面倒臭いから*1既存全機能を動かすことせずにリリースしたりすることもあり、でもリリース前に「見てもいない画面がある」ことに心を痛めたりする中で、「せめてできることだけでも、やってみよう。完璧は目指さない。」という割り切りのもと、再会したのが Selenium でした。
すでに 「Selenium なんちゃら」が一杯あって、何がなんだか分からない状態だったので、まずは取っつきやすい Selenium IDE をお試し。 マクロ記録みたいなもので、画面上の操作を記録し、再現します。若干、Wait 系を調整しないと再現時にエラーとなってしまうケースがあり、できあがったスクリプトを手作業で再編集して使用していますが、かなりこれで便利になりました。
目的は「とりあえず主な機能達がきちんと動いていることを確認できればいい」というところでしたので、やったことは、手でリンクを叩いたり検索処理を実行してみたりする替わりにスクリプトがそれをやってくれる、というもの。 結果のチェックなどは一切なし。スクリプトを実行して、あとは腕組みしながら、変な画面が表示されずにスムーズに実行をしていることを見守ります。えぇ、見守るというのは「目視で確認する」という意味です。イマココ*2。
少し触っていると、当然に、結果の検証も自動でやってくれる仕組みが欲しくなります。自分がクリックしなくても画面が進んでくれるのでも随分と便利になりましたが、モノグサな私なので、画面をじっと見守ること自体が面倒になってきました(笑)。
Selenium IDE では基本的に html フォーマットでスクリプトを記述するので、様々なプログラム言語に慣れ親しんでいる身には、なかなか構造的な違和感があることと、調べてみると、そもそも IDE じゃない何かを使ったほうがいいんじゃないか、と思い至り、情報収集をしていた矢先、オライリージャパンから「実践Selenium WebDriver」という本が翻訳出版されることを知りました。日本語情報、嬉しい!使いたいものかどうかは分からないけれども、断片的なWeb上の情報よりも、まとまったこういう本は、とても助かります。来週発売とのことで、ジャストタイミング!
絶対入手するので、手に入れたら、またここで紹介したいと思います。わくわく。
.