JavaScriptテスト自動化ツールSeleniumのこれまでとこれから(前編)。第1回 日本Seleniumユーザーコミュニティ勉強会

2014年2月3日

JavaScriptのテスト自動化ツールとして知られるSeleniumに関する勉強会「第1回 日本Seleniumユーザーコミュニティ勉強会」が、1月18日に都内で開催されました。

JavaScriptを活用した大規模なWebアプリケーションが増えるなかでSeleniumへの注目は高まっており、会場には100人近い参加者が集まりました。この記事では、そのイベントをダイジェストで紹介します。

Seleniumのこれまで

日本Seleniumユーザーコミュニティ主宰で、今回のイベントの主催者でもある伊藤望氏。

fig

日本Seleniumユーザーコミュニティは2013年7月1日設立です。現在のところメンバーは193人。今後、公式Webサイトの開設もしていこうと思っています。

ここでSeleniumについておさらいを。

fig

Selenium 2ができたのが、たしか3~4年前ですね。

これから基調講演をしていただくJason Huggins氏は、Seleniumのいちばん最初のバージョンを作った人です。現在はSeleniumの実行環境を提供する会社のCTOでもあります。

オバマケアのデバッグのために来日が急遽中止されていた

Jason Huggins氏。

fig

初めて日本に来ることができて大変嬉しく思っています。そして昨年11月に来ることができなくて申し訳ありませんでした(注:当初このイベントは2013年11月に予定されていたが、Hugginsの来日が急遽中止となり延期されていた)。

ただ、私には来ることができなかったすごい言い訳があるのです。

皆さんは昨年10月に米国で開設されたオバマケアのためのWebサイトが、障害で使い物にならなかったというニュースをご存じだと思います。私はそのために11月から12月にかけてワシントンDCに呼ばれて缶詰になっていたのです。

日本に来られなかったことは申し訳なく思いましたが、そんな事情だったのでご勘弁いただければと思います。

さて、私はSeleniumプロジェクトの共同設立者(コファウンダー)と名乗っています。なぜ共同設立者かといえば、いまではSelenium WebDriverとかSelenium Remote-Controlなどさまざまな機能が統合されているためです。

私は2008年に友人と立ち上げた会社「Sauce Labs」の共同設立者兼CTOでもあります。

Ajaxのテストを自動化するために開発されたSelenium

さて、少しテスト自動化の歴史を振り返ってみましょう。2004年、Google MapsやGmail、Ruby on Railsといったものが世の中に出てきます。いわゆるAjaxやWeb 2.0と呼ばれました。

fig

これらはJavaScriptをヘビーに使っていて、テストをするのが難しくなりました。

これらをどうやってテストをするのか、ということでSeleniumが作られたのです。

私がSeleniumとは何かを説明するときは、「テストをしてくれるロボットのようなものだ」と言っています。「このページを開いて、このボタンを押して、このフィールドにこのテキストを入れて」というように、ロボットに指示しているようなものです。

fig

ちなみにこの画像は日本のどこかで作られた画像らしいのですが、オリジナルのリンクが見つからなくなってしまいました。Seleniumの説明ではずっとこの画像を使わせてもらっています。

そして現在、Seleniumが登場して10年になりますが、とても有名なツールになりました。テスト自動化をやろうとしている人は、ぜひSeleniumを学んでいただきたいです。

fig

Seleniumという名前ですが、これはもともとジョークでした。競合のQTP(Quick Test Professional)はMercury Interactiveという会社が作ったものでした。Mercuryは水銀のことで、Seleniumは水銀の毒性をとってくれるセレンという物質からとった名前なのです。

モバイル対応のために作られたAppium

いま、大きな変化が起きています。2007年にiPhoneが登場したときはまだモバイルは小さい存在でしたが、2008年にAndroidが登場し、その存在は今は本当に大きなものになっています。

fig

いまやモバイルはデスクトップの利用度を上回っているといわれています。ということで、モバイルのテストを無視できなくなります。それをどうしていくのか?

そこでAppiumを作りました。Seleniumとテスト自体は変わっていませんが、対象をモバイルデバイスに変えました。Appiumは、Selenium for mobile appsなのです。

fig

Appiumは、ネイティブとハイブリッドモバイル向けの、iPhone/Androidに対応したクロスプラットフォームのテスト自動化ソリューションです。

fig
fig

Appiumの4つのフィロソフィー

AppiumにはSeleniumと異なる4つのフィロソフィーがあります。1つ目は、App Storeなどに提出する、そのアプリをテストできます。何かを組み込んだりする必要はありません。

fig

これはSeleniumから学んだことで、テストをしやすいようにアプリを変えるのはいいことではありますが、appiumでは必須ではありません。DOM構造をappiumに入れて、それで終わりです。オブジェクトを見つけ出して自動化ができます。

fig

2つ目もSeleniumから学んだことです。どんなフレームワークでも、どんな言語でもテストが書けること。JavaでもRubyでも、好きな言語でテスをと書いていい。

fig

3つ目は標準の自動化のAPIを使えること。これはSelenium APIのことです。

fig

4つ目は大規模で活発なコミュニティを作ることです。

Appiumを実行するときに使っているプロトコルがSelenium WebDriverです。Ruby、Java、Pythonなどのライブラリがあり、私もPythonを使っています。

fig

すでにSelenium WebDriverは、これを熟知する数千人のエンジニアが使っていますし、Appiumはそれと下位互換性があるのです。

またSelenium WebDriverのプロトコルはW3Cのワーキングドラフトになっています。Seleniumの世界征服計画のひとつです(笑)。

Appiumの開発プロジェクトからすると、Webブラウザを自動テスト可能にするのは大変でした。そこで、私たちのプロジェクトのゴールの1つにかかげていたのは、その部分をWebブラウザのベンダに任せて、私たちはもうその部分のコードを書かないようにすることなのです。

そのためにW3Cでの標準化を進めるようにしたわけで、いまのところうまくいっています。業界としてもSeleniumを無視できないほど重要なものになってきているわけです。

≫後編に続く。後編ではAppiumのアーキテクチャやスクリプトサンプルなどを紹介します。

第1回 日本Seleniumユーザーコミュニティ勉強会

関連記事

あわせて読みたい

JavaScript Web技術 ソフトウェアテスト・品質 Selenium




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本