Watirを使ってテストを自動化しようの話

※本記事は、旧 Tech Talk Blog 内の 「Watirを使ってテストを自動化しようの話 (http://www.sixapart.jp/techtalk/2008/06/watir.html) はてなブックマーク - 」 で公開されていた記事を移転しました。

こんにちは、TypePadのQAを担当している山口です。今回はWatirを使ったテストの自動化の話を少ししたいと思います。

Watir = Web Application Test In Ruby

WatirはRuby上で動作するウェブアプリケーション向けのテスト自動化ツールです。「Web Application Testing in Ruby」の頭字語で「ウォーター(water)」と発音します。

Watirはこんな風に使います。

require "watir"
ie = Watir::IE.new
ie.goto("http://memolog.org/")

といった風に使います。Watirに組み込まれているメソッドを利用するだけで簡単にIEを操作することができます。この例では、IEを自動的に起動して、http://memolog.org に移動します。

Watir vs Selenium

WatirとSeleniumの違いはその動かし方にあります。SeleniumはJavascriptをベースにブラウザを操作するため、Javascriptが有効なブラウザなら基本的に動作するという利点があります。ただし、Javascriptで動かすゆえに、cross-site scripting の制限があり、テストするアプリケーションと同じサーバーに、Seleniumをインストールする必要があります。

WatirはWin32OLEというライブラリを使って、IEそのものを操作するため、サーバーに何かをインストールする必要はありません。ただしWin32OLEを使うという性格上、Windows IE用という性格が色濃い印象があります。FirefoxやSafari用のWatirも用意はされていますが、たとえばFirefox版のWatirでは日本語入力がうまく利用できないなど、各ブラウザの対応状況はまちまちです。

こうした点を考えると、複数のウェブサービスをまたがるようなテストを自動化したい場合はWatir、複数のブラウザ・プラットフォームでテストしたい場合はSeleniumを利用する、という切り分け方ができるように思います。重要なのは「どんなツールを使うか」ではなくて「そのツールで何をするか」です。TypePadを例にすると、複数のASPサービスで動作をテストする必要があることや、USでの実績があること、検証環境の都合、個人的な趣味など、いくつかの点を考慮して、Watirの方を採用しました。

参考サイト

Six Apart をフォローしませんか?

次の記事へ

Watirでテスト自動化の話 - インストール編

前の記事へ

YAPC::Asia 2008 に行ってきました