「selenium実践入門」で学ぶテスト自動化の世界

49
Selenium実践入門」で学ぶ テスト自動化の世界 2016/2/6 株式会社TRIDENT 伊藤望

Upload: nozomi-ito

Post on 16-Apr-2017

6.235 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」で学ぶ  テスト自動化の世界

2016/2/6  株式会社TRIDENT  伊藤望  

Page 2: 「Selenium実践入門」で学ぶテスト自動化の世界

About  Me p 伊藤 望(いとう のぞみ)  

p 株式会社TRIDENT  代表取締役  n  テスト自動化の支援を行うベンチャー  n  www.trident-­‐qa.com  (Seleniumブログあり)  

p 執筆  

Page 3: 「Selenium実践入門」で学ぶテスト自動化の世界

About  Me  最近やっていること その1 p  CodeZine  Academy  「Selenium  Boot  Camp」  

n  Seleniumについて、1日で基礎から学ぶ講座  

Page 4: 「Selenium実践入門」で学ぶテスト自動化の世界

About  Me  最近やっていること その2 p  Sahagin  

n  WebDriver  /  Appium  /  Gebのレポートツール  

p 少しずつ利用拡大中  n  hMp://www.slideshare.net/hayabusa333/sahagin-­‐49899019            (現場にsahaginを取り入れた話)  n  hMp://qiita.com/hiroshitoda/items/ddT88T2aeb2bbc3393            (Seleniumの薄っすい話1:俺とSahagin)  

Page 5: 「Selenium実践入門」で学ぶテスト自動化の世界

本日のトピック

1.  Seleniumテスト自動化の世界  

2.  「Selenium実践入門」ってどんな本?  

3.  「Selenium実践入門」各章ピックアップ

Page 6: 「Selenium実践入門」で学ぶテスト自動化の世界

1.  Seleniumテスト自動化の世界  

2.  「Selenium実践入門」ってどんな本?  

3.  「Selenium実践入門」各章ピックアップ

Page 7: 「Selenium実践入門」で学ぶテスト自動化の世界

Selenium

p オープンソースの画面テストツール  p 仕組み

Webサーバ

クライアント端末

Selenium ブラウザ

HTTP通信 操作

Page 8: 「Selenium実践入門」で学ぶテスト自動化の世界

Seleniumテスト自動化の世界

p ひと昔前と最近の比較  

p  「Selenium実践入門の立ち位置」  

Page 9: 「Selenium実践入門」で学ぶテスト自動化の世界

ひと昔前のテスト自動化

p  2008年頃  n  私はWindowsアプリのテストツールを開発していた  

Page 10: 「Selenium実践入門」で学ぶテスト自動化の世界

ひと昔前のテスト自動化

p  CI  (継続的インテグレーション)  ツールの利用はまだまだ少ない  n  テスト実行は多くて1日1回  n  リリースサイクルはあまり早くない  

Page 11: 「Selenium実践入門」で学ぶテスト自動化の世界

p 商用ツールの存在感が大きかった  n  Selenium  RC  /  IDEはあったが、安定運用が難しかった  n  多くの事例は、ツールベンダーのサイト掲載のもの  

ひと昔前のテスト自動化

Page 12: 「Selenium実践入門」で学ぶテスト自動化の世界

p 開発プロセスから分離された自動テスト  n  エディタ:自動テストツールの専用エディタ  n  管理DB:自動テストツールの独自DB  n  ジョブ管理:自動テストツールの機能  n  実行:自動テストツールの機能  n  結果確認:自動テストツールの画面  

ひと昔前のテスト自動化

Page 13: 「Selenium実践入門」で学ぶテスト自動化の世界

その後..

hMp://www.indeed.com/jobtrends  

Page 14: 「Selenium実践入門」で学ぶテスト自動化の世界

最近のテスト自動化

p  2016年  n  私はSelenium  WebDriverを使っている  

Page 15: 「Selenium実践入門」で学ぶテスト自動化の世界

最近のテスト自動化

p  CIツールは非常にメジャーになった  n  Commit・Pushの度にテスト実行することも  n  アジャイルやクラウドの普及でリリースサイクルが短く  

Page 16: 「Selenium実践入門」で学ぶテスト自動化の世界

p オープンソースの存在感が大きくなった  n  Selenium  WebDriverになって、かなり安定した  n  国内ユーザ企業からの事例発信が増えた  

最近のテスト自動化

Page 17: 「Selenium実践入門」で学ぶテスト自動化の世界

ネットで見つけた  Selenium・Appium活用例

 p  hMp://tech.recruit-­‐mp.co.jp/front-­‐end/post-­‐6786/                        (Webページを監視して表示崩れが起きていないか検出できるE2Eテストを実装しました)  2015/11/10  p  hMps://speakerdeck.com/shotaakasaka/20151020-­‐seleniummian-­‐qiang-­‐hui-­‐at-­‐saibouzu                      (本当にメンテナブルなSeleniumについて考えてみた)  2015/10/20  p  hMps://speakerdeck.com/deme0607/da-­‐gui-­‐mo-­‐web-­‐sabisufalse-­‐burauzatesutozi-­‐dong-­‐hua-­‐gao-­‐su-­‐hua                      (大規模 Web  サービスの ブラウザテスト自動化・高速化)  2015/5/25  p  hMps://moneyforward.com/engineers_blog/2014/12/25/mfcloud_dev_process/                      ([MFクラウド会計]ユーザーの声がサービスに届くまで)  2014/12/25  p  hMp://techblog.yahoo.co.jp/aps/Selenium-­‐01/                      (Seleniumを使用したテスト自動化の取り組みを紹介します)  2014/9/19  p  hMp://techlife.cookpad.com/entry/2014/09/16/120059                      (iOSアプリデザインリニューアルの舞台裏の舞台裏)  2014/9/16  p  hMps://speakerdeck.com/naoya/kaizen-­‐placorm-­‐inc-­‐niokeruyun-­‐yong-­‐zi-­‐dong-­‐hua                      (KAIZEN  placorm  Inc.  における運用自動化)  2014/6/20  p  hMp://labs.gree.jp/blog/2014/02/10584/                      (レガシーなプロダクトにテストで向き合う話)  2014/2/20  p  hMp://blog.cybozu.io/entry/5499                      (失敗からはじめるSelenium)  2013/8/20  p  hMp://shanon-­‐tech.blogspot.jp/2011/11/selenium.html                      (Jenkins,  Seleniumを使った自動テストの課題とこれからの取り組み)  2011/11  p  hMp://alpha.mixi.co.jp/entry/2011/10784/                      (Jenkins  はじめました +  ほか3つ)  2011/06/02  

Page 18: 「Selenium実践入門」で学ぶテスト自動化の世界

p 開発プロセスと統合された自動テスト  n  エディタ:IDE(Eclipseなど)  n  管理DB:バージョン管理ツール(Gitなど)  n  ジョブ管理:CIツール  n  実行:ビルドツール・CIツール  n  結果確認:CIツール  

最近のテスト自動化

Page 19: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」の立ち位置

p WebDriverによる、エンジニア主体の自動化  n  Selenium  IDEは補助ツールとして活用  

p  Seleniumの使い方にとどまらない、より実践的な内容を  n  CI、運用、活用事例

Page 20: 「Selenium実践入門」で学ぶテスト自動化の世界

1.  Seleniumテスト自動化の世界  

2.  「Selenium実践入門」ってどんな本?  

3.  「Selenium実践入門」各章ピックアップ

Page 21: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」概要

p  2016/2/2発売  p 著者  

n  伊藤望  n  戸田広  n  沖田邦夫  n  宮田淳平  n  長谷川淳  n  清水直樹  n  Vishal  Banthia  

Page 22: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」概要

p セットアップはJava・Ruby・C#・JavaScript・Python  

p コマンドの解説はJava  

p 巻末チートシート  n  Java・Ruby・C#・JavaScript・Pythonの主要コマンド文法  

Page 23: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」が目指したこと

1.  ずっと手元におきたい1冊  

2.  幅広いトピックを網羅  

Page 24: 「Selenium実践入門」で学ぶテスト自動化の世界

1. ずっと手元におきたい1冊  この本ならではのコンテンツ

p  APIドキュメントでは分からない、様々なノウハウ  n  ファイルダイアログ、Basic認証、HTTPヘッダ、HTML5、…  

p ややこしいマイナー機能も丁寧に解説  n  ウィンドウ・タブ、ブラウザログ、@FindBy、…  

p うろ覚え文法にチートシート  n  よく使うCSSセレクタ・XPath  n  コマンド文法  

Page 25: 「Selenium実践入門」で学ぶテスト自動化の世界

1. ずっと手元におきたい1冊  実運用で役立つコンテンツ

p  13章「運用」  n  運用時に気をつけること  

p  14、15章「事例」  n  役割分担、業務フロー、本格運用での課題、…  

Page 26: 「Selenium実践入門」で学ぶテスト自動化の世界

2. 幅広いトピックを網羅  Geb・FluentLenium・Capybara p WebDriverをラップして、シンプルに書けるようにした

ライブラリ  n  Geb:Groovy  n  FluentLenium:Java  n  Capybara:Ruby  

p けっこうメジャーになってきた  

Page 27: 「Selenium実践入門」で学ぶテスト自動化の世界

p スマホ対応したWebサイトのテストを想定  n  PCブラウザでエージェント偽装してテスト  n  Appiumを使ってテスト  

2. 幅広いトピックを網羅  モバイル

Page 28: 「Selenium実践入門」で学ぶテスト自動化の世界

p WebDriverテスト実行に一通り必要なJenkinsの設定  

p  Selenium  Grid  +  Jenkinsによる分散実行  

2. 幅広いトピックを網羅  CI

Page 29: 「Selenium実践入門」で学ぶテスト自動化の世界

1.  Seleniumテスト自動化の世界  

2.  「Selenium実践入門」ってどんな本?  

3.  「Selenium実践入門」各章ピックアップ  

Page 30: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 31: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 32: 「Selenium実践入門」で学ぶテスト自動化の世界

1章「テスト自動化とそのメリット」

p テスト自動化のメリットについて分かりやすく  

p この章を書いた意味  n  テスト自動化に関心の無い、あなたの上司・同僚・部下に

渡して読んでもらうため!  n  そんな気持ちで書きました  n  なので難しい用語は使っていません  

Page 33: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 34: 「Selenium実践入門」で学ぶテスト自動化の世界

4章「WebDriverコマンド徹底解説」  5章「WebDriverコマンドの実践的活用」

p WebDriverの各コマンドを掘り下げて解説  

p この本の核となる章  

p 普段使わないコマンド・挙動がアンドキュメントなコマンドも多く、大変だった..

Page 35: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 36: 「Selenium実践入門」で学ぶテスト自動化の世界

7章「Geb」

p 最近話題の、Groovyのラッパーライブラリ  

p  Java開発者がGroovy  +  Gradle  +  Gebにチャレンジするケースを想定  n  GroovyとGradleのセットアップから解説  n  Gebでよく見るGroovyの文法も解説  

p  Gebトピックを含む本は世界初?  

じゃなかった...

Page 37: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 38: 「Selenium実践入門」で学ぶテスト自動化の世界

8章「FluentLenium」

p  Javaのラッパーライブラリ  

p  Gebっぽい。Groovyの利用が難しい場合におすすめ  

p  FluentLeniumトピックを含む本なら世界初では?  

ではなかった...

Page 39: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 40: 「Selenium実践入門」で学ぶテスト自動化の世界

9章「Capybara」

p  Rubyのラッパーライブラリ  

p 内部のライブラリはSelenium以外も利用可  

p Capybaraトピックを含む本は?  

Capybara本があった...

Page 41: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 42: 「Selenium実践入門」で学ぶテスト自動化の世界

12章「CI環境での利用」 p  Jenkinsを利用  

n  テスト用ジョブに必要なセットアップ  n  マスタ・スレーブ環境  n  RemoteWebDriver  n  Seleniumプラグインによる分散実行  

p   Travis  CIやCircleCIを使っている人は?  

p ブログ書きました  n  hMp://blog.trident-­‐qa.com/2015/12/selenium-­‐on-­‐circle-­‐ci/          (CircleCIクラウド環境でSeleniumテストを実行する)  

Page 43: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 44: 「Selenium実践入門」で学ぶテスト自動化の世界

14章「サイボウズの事例」 p 日本でも早くからSeleniumを本格利用していたサイボウ

ズの事例  

p 開発プロセスにおける  n  各段階でのテスト活動(仕様決定、テスト作成、テスト実装、…)  n  QAと開発の役割分担  

p 本格運用で発生した課題  n  実行時間の改善など  

Page 45: 「Selenium実践入門」で学ぶテスト自動化の世界

「Selenium実践入門」  各章ピックアップ

1.  テスト自動化とそのメリット  2.  Seleniumの概要  3.  WebDriver入門  4.  WebDriverコマンド徹底解説  5.  WebDriverコマンドの                実践的活用  6.  スクリプトの効率的な                メンテナンス  7.  Geb  8.  FluentLenium  9.  Capybara  10.  Selenium  IDE  

11.  スマートフォンのテストとAppium  

12.  CI環境での利用  13.  運用  14.  サイボウズの事例  15.  DeNAの事例

Page 46: 「Selenium実践入門」で学ぶテスト自動化の世界

15章「DeNAの事例」 p   SWETグループを作りテスト自動化に取り組むDeNAの

事例  

p ブラウザテストとネイティブアプリテスト  

p 様々なノウハウ・工夫  n  テスト並列実行のノウハウ  n  テストのメンテナンス性を高めるノウハウ  n  テスト用アプリの工夫  

Page 47: 「Selenium実践入門」で学ぶテスト自動化の世界

まとめ

Page 48: 「Selenium実践入門」で学ぶテスト自動化の世界

Selenium実践入門が、  みなさんのずっと手元におきたい  1冊になれば幸いです

Page 49: 「Selenium実践入門」で学ぶテスト自動化の世界

ご清聴ありがとうございました