海外のSeleniumカンファレンスでは 
どんな発表がされているのか 2014 
2014/10/18 
株式会社TRIDENT 
伊藤望
自己紹介 
 伊藤 望 
 会社 
 株式会社TRIDENT 代表取締役 
 テスト自動化の支援を行うベンチャー 
 www.trident-qa.com (ブログあり) 
 コミュニティ 
 「日本Seleniumユーザーコミュニティ」を主宰 
 テスト自動化研究会
Selenium Conference 
 日本にも「Selenium勉強会」があるが、、 
 世界には「Selenium Conference」がある! 
 どんな様子なのか? 
 どんな発表が行われているのか? 
 どんなトレンドがあるのか?
Selenium Conference(SeConf)とは 
 2011年から毎年開催 
 世界中からSelenium開発者・ユーザーが集まる 
 3日間にわたるセッション&ワークショップ 
 Seleniumコミッター・プロジェクトリードによる講演 
 http://seleniumconf.org/
開催歴 
 2011 4月 サンフランシスコ(アメリカ) 
 2012 4月 ロンドン(イギリス) 
 2013 6月 ボストン(アメリカ) 
 2014 9月 バンガロール(インド)
SeConf 2014 
 初のアジア開催(インド) 
 スケジュール 
 9/14:ワークショップ Day 
 9/15、9/16:セッション Day 
 定員:425名 
 参加費(セッション Day) 
 3,000~15,000ルピー 
 (約5,000~25,000円)
Conferenceの様子 
http://seleniumconf.org/
セッションリスト 
http://confengine.com/selenium-conf-2014/schedule
セッションリスト 
 Selenium Gridのスケーリングと管理 
 GrouponのSelenium Grid拡張 
 WebDriverでウェブプラットフォームをテストする 
 W3Cの新プロジェクト 
 SeleniumとJoomlaオープンソース 
 JavaScript界におけるWebDriverとCucumber 
 取込みと拡張:Seleniumプロジェクトはどうやって世界最大の 
クローズド・ソース企業を参画させたか 
 MicrosoftのSeleniumプロジェクトへの参加 
 GebでよりよいSeleniumテスト 
http://confengine.com/selenium-conf-2014/schedule
セッションリスト 
 Seleniumテストをクラウド上のモバイル実機端末で実行する 
 Seleniumをあなたの手の平に:Appiumとモバイルテスト自動 
化 
 機能テストで、アプリケーションをハッカーから守る 
 インジェクション攻撃をSeleniumでテスト 
 Page Objectを超えるデザインパターン: Page Object構築時に 
使われるデザインパターンの探究 
 Page Objectパターンの危機 
 Page Objectをきちんとやる 
http://confengine.com/selenium-conf-2014/schedule
セッションリスト 
 正しいテストピラミッドを達成するためのSeleniumデトックス 
 大移動 - Salesforceはいかにして3万5千のSelenium RCテスト 
を移行したか 
 QTP/UFTからSeleniumへの移行 - 80%の実行時間削減 
 Allureフレームワーク - Seleniumテストのための、水晶のよう 
にクリアな結果レポート [どんなプログラミング言語にも使え 
る] 
 自分で情報を見つける方法 
 JavaScriptを介し、Seleniumテストの安定性を向上させる 
http://confengine.com/selenium-conf-2014/schedule
セッションリスト 
 モバイルとWebアプリケーションの機能テストのための 
Clojure 
 OSSを採用し早く失敗するために、エンタープライズのやり方 
の上に築かれたドラゴンをどのように調教したか 
 クロスブラウザテスト自動化において重要なことが3つある - 
ロケーター、ロケーター、ロケーター - しかし、正しいロケー 
ターを見つけるにはどうすればよいだろうか? 
 Seleniumのノードには、宝の島から海賊が奪った戦利品より 
も素晴らしいお宝が眠っているる方法 
http://confengine.com/selenium-conf-2014/schedule
セッション紹介 
 セッションプログラム・発表スライドを参考に作成 
 Conferenceサイトに動画もあり 
http://seleniumconf.org/docs/SeConf2014_ProgramGuide.pdf
セッション紹介 
テストインフラ
テストインフラ 
Selenium Gridのスケーリングと管理 
(Scaling and managing Selenium Grid) 
http://www.slideshare.net/dimakovalenko/scaling-and-managing-selenium-grid 
 Grouponのエンジニア 
 「Selenium Design Patterns and Best Practices」著者 
 Selenium Grid: 
 Seleniumの、多数のマシンでのテスト分散実行機能 
 Selenium Grid Extras: 
 Groupon発の、Selenium Grid拡張フレームワーク
テストインフラ 
 Selenium Grid Extras 
 https://github.com/groupon/Selenium-Grid-Extras 
 IEの保護モード設定を自動で設定 
 ブラウザやchromedriver.exe/iedriver.exeのKill 
 WebDriverの自動更新 
 全てのnodeの設定を1ヶ所に集約 
 Jenkinsプラグイン 
 テストのビデオ記録(開発中)
テストインフラ 
WebDriverでウェブプラットフォームをテストする 
(Testing the Web Platform with WebDriver) 
http://sny.no/2014/09/twpwd/ 
 Mozillaのエンジニア 
 Test the Web Forward 
 http://testthewebforward.org/ 
 Web標準のテストケースをコミュニティが作成 
 東京でもイベントが行われた 
 Test the Web ForwardでWebDriverを活用する方法
テストインフラ 
SeleniumとJoomlaオープンソース 
(Selenium and Joomla Open Source) 
 Joomla!コントリビュータ 
 Joomla!: 
 オープンソースのCMS(Webサイト構築・管理システム) 
 特に海外で人気 
 PHPUnit + Selenium WebDriverをJoomla!の開発プロ 
ジェクトで活用
セッション紹介 
Seleniumプロジェクト
Seleniumプロジェクト 
JavaScript界のWebDriverとCucumber! 
(WebDriver and Cucumber in the JavaScript Land!) 
https://www.slideshare.net/slideshow/embed_code/38774592 
 WebDriverJS: 
 https://code.google.com/p/selenium/wiki/WebDriverJs 
 WebDriverの新しいJavaScriptバインディング 
 非同期コードでテストを記述 
 Cucumber.js: 
 https://github.com/cucumber/cucumber-js 
 振る舞い駆動テストフレームワークCucumberの 
JavaScript移植
Seleniumプロジェクト 
取込みと拡張:Seleniumプロジェクトはどうやって 
世界最大のクローズド・ソース企業を参画させたか 
(Embrace and Extend: How the Selenium Project Convinced the World's Largest Closed-Source Company to Participate) 
 Jim Evans氏 
 .NETバインディングとIEDriverの開発者 
 Salesforceのエンジニア 
 MicrosoftをSeleniumプロジェクトに参加させるまで 
 Internext Explorer Developer Channel 
 次期バージョンのIEの機能を試用できる 
 WebDriverの機能がIEに取り込まれている!
Seleniumプロジェクト 
GebでよりよいSeleniumテスト 
(Better Selenium Tests with Geb) 
 Geb: 
 http://www.gebish.org/ 
 Java + Groovyで、WebDriverテストをもっと簡単に
セッション紹介 
モバイル
モバイル 
Seleniumテストをクラウド上のモバイル実機端末で 
実行する 
(Running Selenium tests on a cloud of real mobile devices) 
https://github.com/dhimil/selConf/blob/master/Selenium%20Conference.pdf?raw=true 
 BrowserStackのエンジニア 
 BrowserStack 
 クラウドのブラウザ手動/自動テスト環境を提供 
 なぜシミュレータでなく実機でテストすべきなのか
モバイル 
 シミュレータによるレイアウト崩れの例 
https://github.com/dhimil/selConf/blob/master/Selenium%20Conference.pdf?raw=true
モバイル 
Seleniumをあなたの手の平に: 
Appiumとモバイルテスト自動化 
(Selenium in the palm of your hand: Appium and automated mobile testing) 
 Sauce Labsのエンジニア 
 Sauce Labs 
 クラウドのブラウザ自動/手動テスト環境を提供 
 Appium: 
 Seleniumと同じコマンド体系でモバイルテストが可能
セッション紹介 
セキュリティ
セキュリティ 
機能テストで、アプリケーションをハッカーから守る 
(Hacker-proof your app using Functional Tests) 
https://www.slideshare.net/slideshow/embed_code/38957882 
 LinkedInのエンジニア 
 Seleniumテスト中にセキュリティテストも実施 
 IronWASP 
 https://ironwasp.org/ 
 オープンソース 
 Webサイトに脆弱性が無いかを調べるセキュリティス 
キャナー
セキュリティ 
インジェクション攻撃をSeleniumでテスト 
(Testing "Injection" Attacks with Selenium) 
 Webページから不正な入力を行い、攻撃を実行 
 SQLインジェクション 
 コマンドインジェクション 
 XSS(クロスサイトスクリプティング)
セッション紹介 
ページオブジェクト
ページオブジェクト 
 ページオブジェクトデザインパターン 
 画面情報は1つのクラスに集約して管理 
スクリプト スクリプト 
テスト対象画面 
スクリプト 
スクリプト 
ページオブジェクト
ページオブジェクト 
Page Objectを超えるデザインパターン: Page Object 
構築時に使われるデザインパターンの探究 
(Design Patterns beyond the Page Object: An investigation into the design patterns used while building page objects) 
https://github.com/codedsk/seleniumconf2014/tree/master/presentations 
 Page Objectにプラスアルファ 
 WebFormパターン 
 多数の入力項目を持つ画面の扱い 
 ItemListパターン 
 表・リスト形式でデータを表示する画面の扱い 
 IframeWrapパターン 
 Iframeを含む画面の扱い
ページオブジェクト 
Page Objectパターンの危機 
(Perils of Page-Object Pattern) 
http://www.slideshare.net/abagmar/perils-of-pageobject-pattern 
 ビジネスレイヤー ページオブジェクトパターン 
 ページオブジェクトの上にもう1つレイヤーを作る
ページオブジェクト 
Page Objectをきちんとやる 
(Page Objects Done Right) 
http://www.slideshare.net/orenrubin/page-objects-presentation-selenium-conference-2014-38767492 
 ページオブジェクトの基礎から応用まで
セッション紹介 
マイグレーション
マイグレーション 
正しいテストピラミッドを達成するための 
Seleniumデトックス 
(Selenium DeTox for Achieving the Right Testing Pyramid) 
http://www.slideshare.net/nashjain/i-dea-s-testing-pyramid 
 保守コストが低く、素早く実行できる単体テストの 
比率を増やすのが、目指すべき姿
マイグレーション 
大移動 - Salesforceはいかにして3万5千の 
Selenium RCテストを移行したか 
(Migrating the herd - How Salesforce is migrating 35,000 Selenium RC tests) 
 単体テスト等の、より高速なレイヤーに移行 
 Selenium RC(Selenium 1)から、 
WebDriver(Selenium 2)に移行
マイグレーション 
ケーススタディ - QTP/UFTからSeleniumへの移行 – 
80%の実行時間削減 
(Case Study - QTP/UFT to Selenium Migration - 80% reduced execution time) 
 QTP/UFT: 
 HP社の商用テストツール 
 商用ツールでは(おそらく)一番有名
セッション紹介 
その他
その他 
Allureフレームワーク - 水晶のようにクリアな 
Seleniumテスト結果レポート [どんな言語でも使える] 
(Allure framework - crystal clear reports for your selenium tests [in any language]) 
 Yandex(ロシアの検索・ポータルサイト大手)のエン 
ジニア 
 Allureフレームワーク 
 http://allure.qatools.ru/ 
 オープンソース 
 見やすいHTMLレポート
その他 
 Allureフレームワークのレポート 
http://allure.qatools.ru/
その他 
自分で情報を見つける方法 
(How To Find Information On Your Own) 
http://www.slideshare.net/tourdedave/how-to-find-selenium-information-on-your-own 
 「The Selenium Guidebook」著者 
 Seleniumの役立つ情報リンク集
その他 
JavaScriptを介し、Seleniumテストの安定性を 
向上させる 
(Increase Selenium tests stability via JavaScript) 
http://www.slideshare.net/khroliz/increase-selenium-tests-stability-via-java-script 
 タイミング問題などの、テストがたまに失敗する不 
安定要因を減らす 
 JavaScript呼び出しを活用し、非同期まわりの問題 
を改善 
 ただし、手動操作と100%同じにならないリスクあり
その他 
モバイルとWebアプリケーションの 
機能テストのためのClojure 
(Clojure for functional testing of Mobile and Web apps) 
http://www.slideshare.net/MayurJadhav5/clojureseleniumconf 
 Clojure: 
 関数型プログラミング言語 
 Lispの流れを汲む 
 Calabash、Appium、WebDriverなどのテストツール 
をClojureでラップして利用
その他 
OSSを使い早く失敗するために、エンタープライズの 
手法の上に築かれたドラゴンをどう調教したか 
(How we trained our dragon built on enterprise practices to adopt and fail fast with OSS) 
 大企業のモバイルテストを、オープンソースツール 
を構築した話
その他 
クロスブラウザテスト自動化において重要なことが3つある - 
ロケーター、ロケーター、ロケーター - しかし正しいロケー 
ターを見つけるにはどうすればよいだろうか? 
(There are three things that matter in cross-browser test automation- locator, locator, locator 
- But how do you find the right one?) 
 ロケーター: 
 findElement(By.id(“search_keyword”)).click() 
ロケーター 
 特定のブラウザやバージョンでロケーターがうまく 
動かない場合の対処
その他 
Seleniumのノードには、宝の島から海賊が奪った戦 
利品よりも素晴らしいお宝が眠っている 
(There is more treasure in Selenium nodes than in all the pirate's loot on Treasure Island.) 
 SeleniumのノードのログとOSレベルのメトリクスを 
収集し、テスト結果解析に活用
思ったこと 
 Selenium IDEの発表が全然無い 
https://groups.google.com/forum/#!topic/selenium-developers/eVfDHbgOflE
まとめ 
 結構いい情報があった(と思う) 
 スライドの上がっていない発表が多いので、動画 
の方も頑張りたい
ご清聴ありがとう 
ございました

海外のSeleniumカンファレンスではどんな発表がされているのか2014