Selenium作者 Jason Huggins氏 来訪レポート

DSC_0047.JPG

皆様はじめまして。@ikeike443と申します。

テクニカルコンサルティンググループにてデベロッパー様のサポートやテックエバンジェリスト的なお仕事をしています。

さる1月20日(月)、当社セミナールームにSelenium開発者のJason Hugginsをお招きしてスマートフォンアプリとブラウザの自動テストについて社内勉強会を開催いたしました。簡単なレポートをしたいと思います。

Jason Hugginsさんのプロフィールは以下のとおりになります。

  オープンソースのブラウザテストツールSeleniumの、

  1番最初のバージョンを開発したことで知られる。

  ThoughtWorks、Googleのテストエンジニアを経て、

  Seleniumを使ったクラウドテストサービスを提供する

  Sauce Labs( https://saucelabs.com/home )の設立に参画、

  現在はCTOを務める。


尚、今回Jasonさんの来日が実現したのはTRIDENT Inc.代表であり日本Seleniumユーザーコミュニティ代表の伊藤望氏ならびに株式会社ストークラボラトリー代表 勝部直人氏のご協力あってこそです。この場を借りて改めてお礼申し上げます。

 

アジェンダは以下のとおりで執り行われました。

- Mobageの事例: Mobage Developers Japanのテスト

- Mobageの事例: Mobageのテスト

- Jasonさんの話: SelenimとAppiumのロードマップ


今回はJasonさんから日本でのSeleniumの使われ方について話を聞きたいという意向があり、それに応えたかたちになります。そのため、まずは当社からSeleniumを使ったテストの事例についてお話をし、その後JasonさんよりSeleniumおよびAppiumについて発表していただく、というかたちをとりました。

Mobageの事例発表

Mobageにおけるテスト事例について発表する弊社エンジニア

Mobageにおけるテスト事例について発表する弊社エンジニア

当社からは2つの事例を発表いたしました。

いわゆる一般的なPC向けのWebサイトテスト事例として、Mobage Developers Japan(デベロッパーサイト) の自動テストについての発表と、スマートフォンブラウザ向けのテスト事例として、Mobage (スマートフォンでご覧ください)の自動テストについての発表の2つです。

社外に出せない情報を含むため発表資料含めてこのブログで詳細をご紹介することができませんが、ブラウザのヘッドレス化の取り組みや、スローテストに対応するための並列テストへの取り組みなどを発表いたしました。自動テストのデモも披露いたしました。

話の都度Jasonさんから質問があり、都度ディスカッションをするかたちで和やかに進みました。JasonさんたちSeleniumコミュニティからは日本でのSeleniumの利用実態は全く見えない状態だったらしく、今回の発表を興味深く聞いてくれたようです。

Jasonさんの発表

Seleniumの普及状況について話すJasonさん

Seleniumの普及状況について話すJasonさん

JasonさんからはSeleniumとappiumのロードマップを中心にお話いただきました。

当日の資料は頂いていないのですが、この日に先立って18日に行われた「第1回 日本Seleniumユーザーコミュニティ勉強会」の時とほぼ同じものとJasonさんから連絡を頂きました。

下記に共有します。ご参照ください。

Seleniumは当時存在していたQTP(Mercury QuickTest Professional)に対抗するものとして2004年に作られ始めました。現在ではQTPを大きく上回るシェアをとれているとのことで、Indeedの検索結果を見てもQTPよりもSeleniumを対象とした求人のほうがはるかに大きくなっているとのことです。

確かにWebアプリケーションの自動テストツールといえばSelenium以外はもはや考えられないくらいに普及していますよね。

また、現在の取り組みとしてWebDriverをW3Cの標準仕様として入れ込もうとしているとのことです。Seleniumは自動テストツールから、自動テストを目的としたプロトコルへと変貌を遂げるとはすごい話ですね。現在Working Draftというステータスです。大変楽しみな話です。

期待のプロジェクト、appium!

期待のプロジェクト、appium!

Jasonさんからは、さらにappiumについてもお話いただきました。スマートフォンアプリの自動テストツールとして注目の集まっているプロジェクトです。(弊社でも大変注目しています!)

appiumは元々大企業のニーズに応えて作り始めたものだそうです。2004年当時は自動テストの対象といえばデスクトップPCだけだったのが、年を追うごとにモバイルの重要性が高まった結果、必要に迫られて始めたと。

appiumの基本的なコンセプトとして重要なのが、「マーケットにリリースするものと全く同じアプリをそのままテストできるようにすること」で、テストのために何らかのエージェントを挿入したりする必要が発生しないようにしているとのことです。

また、Seleniumと同じくテストに使う言語やフレームワークにも縛られないようにすることも重要視しているそうです。

熱く語るJasonさん。

熱く語るJasonさん。

appiumはHTTPサーバであり、Seleniumと同じくWebDriverがプロキシサーバとしてテストコードとアプリの間に立つイメージであり、このWebDriverがiOSではInstrumentsと、AndroidではUIAutomatorとやりとりするかたちで動作するということです。

Androidはともかく、iOSにおいてInstrumentsを操作するのは大変だったそうですが、ある種バックドアのようなものを発見して、そこを突くかたちで動作させているようです。この点に関しては当社のエンジニアから、いつまでもそのバックドアは開いている保証があるのか、という質問が上がりました。Jasonさんによれば、今までのところ大丈夫という回答でした。今後もAppleさんとうまくやって欲しいですね。

簡単なappiumのデモの後、弊社エンジニアとJasonさんとでさまざまなディスカッションが行われました。

当社エンジニアからはWebDriverをW3Cの仕様として組み込むのであれば、そこにHeader Manipulationの仕様も盛り込んでほしいという要望もあがりました。それに対してJasonさんからの回答としては、気持ちはわかるが難しいのでProxyを立てて対応してほしいとのこと。

うーん、残念です。テスト時にHTTPヘッダをいじれると色々楽なのですが、セキュリティ上の懸念も増すので難しいということでしょうか。

というかたちで勉強会は無事終わったのですが、実は勉強会終了後の話も盛り上がりました。

次世代テストはロボットが解決!?

Tapsterロボット

Tapsterロボット

この写真、なんだか分かるでしょうか?

実はJasonさんは Tapster というオープンソースのロボットプロジェクトに取り組んでいて、この写真はTapsterで作ったロボットなのです。このTapster、面白いのは3D CADデータも全てオープンソースになっていて、3Dプリンターがあればだれでも同じロボットを組み立てられるし、ロボット開発に参加することも容易な点です。

Jasonさん曰く、Google GlassやiWatchの例を挙げるまでもなく、この先どのようなデバイスが出てくるかはわからない、デバイスが出るたびに自動テストツールを作っていたのでは間に合わない、だからロボットだ! というモチベーションでやっているのだそうです!

明らかに今までと違うテンションで語りだすJasonさん

明らかに今までと違うテンションで語りだすJasonさん

先ほどまでの勉強会の時とは大きく違い、ロボットの事になった途端ものすごいテンションで語りだしました。Jasonさんがこのロボットプロジェクトにものすごい情熱を持っていることが伝わってきますw

とにかくハイテンション

とにかくハイテンション

色々話しているうちにご厚意で当社にこのロボットを寄贈していただけることになりました! また3Dプリンターで打ち出して組み立てればいいだけだからあげるよと。ありがたい話です!

Jasonさんから弊社テストチームリーダー@ikasam_a へ寄贈の瞬間

Jasonさんから弊社テストチームリーダー@ikasam_a へ寄贈の瞬間

Mobage SDKのテストチームはロボットという強い味方を得ました! 今後リリースされるSDKはこのロボットでテストされることが期待できますね。

 

国際色豊かな飲み会

国際色豊かな飲み会

お約束ですが、勉強会の後は近所の居酒屋で飲んでしめました。

Jasonさん、TRIDENT伊藤さん、ストークラボラトリー勝部さん、ありがとうございました!

今後もMobageはテストエンジニアリングの可能性を突き詰めていきたいと思います!