Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
JM
Uploaded by
Jumpei Miyata
PDF, PPTX
37,449 views
Selenium Antipatterns
http://seleniumjp.connpass.com/event/24206/ 第3回日本Seleniumユーザーコミュニティ勉強会の資料です。 Seleniumのアンチパターンについてです。
Technology
◦
Read more
46
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 72
2
/ 72
3
/ 72
4
/ 72
5
/ 72
6
/ 72
7
/ 72
8
/ 72
9
/ 72
10
/ 72
11
/ 72
12
/ 72
13
/ 72
14
/ 72
15
/ 72
16
/ 72
17
/ 72
18
/ 72
19
/ 72
20
/ 72
21
/ 72
22
/ 72
23
/ 72
24
/ 72
25
/ 72
26
/ 72
27
/ 72
28
/ 72
29
/ 72
30
/ 72
31
/ 72
32
/ 72
33
/ 72
34
/ 72
35
/ 72
36
/ 72
37
/ 72
38
/ 72
39
/ 72
40
/ 72
41
/ 72
42
/ 72
43
/ 72
44
/ 72
45
/ 72
46
/ 72
47
/ 72
48
/ 72
49
/ 72
50
/ 72
51
/ 72
52
/ 72
53
/ 72
54
/ 72
55
/ 72
56
/ 72
57
/ 72
58
/ 72
59
/ 72
60
/ 72
61
/ 72
62
/ 72
63
/ 72
64
/ 72
65
/ 72
66
/ 72
67
/ 72
68
/ 72
69
/ 72
70
/ 72
71
/ 72
72
/ 72
More Related Content
PDF
Azureを使って手軽にブラウザテストの自動化をはじめよう
by
Naoya Kojima
PDF
ハイパフォーマンスSeleniumテスト@サイボウズ
by
Jumpei Miyata
PDF
JenkinsとSeleniumの活用事例
by
Takeshi Kondo
PDF
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
by
Hiroshi Toda
PDF
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
PDF
JavaScript Unit Test Why? What? How?
by
Teppei Sato
PPTX
ノンプログラマのためのSelenium de DDTはじめの一歩
by
Satsuki Urayama
PDF
第3回日本seleniumユーザーコミュニティ勉強会
by
Nozomi Ito
Azureを使って手軽にブラウザテストの自動化をはじめよう
by
Naoya Kojima
ハイパフォーマンスSeleniumテスト@サイボウズ
by
Jumpei Miyata
JenkinsとSeleniumの活用事例
by
Takeshi Kondo
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
by
Hiroshi Toda
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
JavaScript Unit Test Why? What? How?
by
Teppei Sato
ノンプログラマのためのSelenium de DDTはじめの一歩
by
Satsuki Urayama
第3回日本seleniumユーザーコミュニティ勉強会
by
Nozomi Ito
What's hot
PDF
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
by
Nozomi Ito
PDF
エンタープライズ開発でのSelenium活用事例
by
isaac-otao
PDF
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
by
Nozomi Ito
PPTX
Selenium WebDriver + python で E2Eテスト自動化
by
JustSystems Corporation
PDF
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
by
Yahoo!デベロッパーネットワーク
PPTX
kintoneチームを支えるSeleniumテスト
by
Jumpei Miyata
PPTX
テスト自動化の現場で困ること SI-Toolkitが解決すること
by
yuichi_kuwahara
PPTX
サイボウズLiveの開発を支えるSeleniumテスト
by
Kazufumi Fukushima
PDF
20121019 jenkins勉強会lt資料
by
Hiroko Tamagawa
PDF
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
by
Nozomi Ito
PDF
20161218 selenium study4
by
Naoya Kojima
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
PDF
Selenium boot campの紹介
by
Nozomi Ito
PDF
テスト自動化の様々な道具を使ってみた四方山話
by
haljik Seiji
PDF
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
by
Y Watanabe
PDF
Awsで実現するseleniumテスト高速術
by
finoue
PPTX
手動テストからの移行大作戦
by
Satsuki Urayama
PDF
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
by
Yuki Okada
PDF
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
by
Y Watanabe
PDF
20161212 selenium adventcalender
by
Naoya Kojima
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
by
Nozomi Ito
エンタープライズ開発でのSelenium活用事例
by
isaac-otao
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
by
Nozomi Ito
Selenium WebDriver + python で E2Eテスト自動化
by
JustSystems Corporation
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
by
Yahoo!デベロッパーネットワーク
kintoneチームを支えるSeleniumテスト
by
Jumpei Miyata
テスト自動化の現場で困ること SI-Toolkitが解決すること
by
yuichi_kuwahara
サイボウズLiveの開発を支えるSeleniumテスト
by
Kazufumi Fukushima
20121019 jenkins勉強会lt資料
by
Hiroko Tamagawa
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
by
Nozomi Ito
20161218 selenium study4
by
Naoya Kojima
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
Selenium boot campの紹介
by
Nozomi Ito
テスト自動化の様々な道具を使ってみた四方山話
by
haljik Seiji
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
by
Y Watanabe
Awsで実現するseleniumテスト高速術
by
finoue
手動テストからの移行大作戦
by
Satsuki Urayama
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
by
Yuki Okada
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
by
Y Watanabe
20161212 selenium adventcalender
by
Naoya Kojima
More from Jumpei Miyata
PDF
Jenkins 再入門
by
Jumpei Miyata
PDF
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
by
Jumpei Miyata
PDF
Jenkinsfileのlintで救える命がある
by
Jumpei Miyata
PDF
サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜
by
Jumpei Miyata
PDF
開発者を支える生産性向上チームの取り組み -CI, Browser Test, Tools and Infrastructure-
by
Jumpei Miyata
PDF
サイボウズの開発を支える GitHub × CircleCI
by
Jumpei Miyata
PDF
組織横断でエンジニアを支援する生産性向上チームの役割
by
Jumpei Miyata
PDF
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
by
Jumpei Miyata
PDF
開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み
by
Jumpei Miyata
PDF
すべてを自動化せよ! 〜生産性向上チームの挑戦〜
by
Jumpei Miyata
PPTX
Selenium Conference 2015 参加報告
by
Jumpei Miyata
PDF
GitHub Actions のはじめかた
by
Jumpei Miyata
PDF
Effective Automation 〜変化に強い開発基盤〜
by
Jumpei Miyata
PDF
テストエンジニアと組織構造 @Cybozu
by
Jumpei Miyata
PDF
【PR】エンジニアがkintoneを試すべき3つの理由
by
Jumpei Miyata
PDF
サイボウズを支えるCircleCI
by
Jumpei Miyata
PDF
オートスケールする GitHub Actions セルフホストランナーを構築してる話
by
Jumpei Miyata
Jenkins 再入門
by
Jumpei Miyata
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
by
Jumpei Miyata
Jenkinsfileのlintで救える命がある
by
Jumpei Miyata
サイボウズの CI/CD 事情 〜Jenkins おじさんは CircleCI おじさんにしんかした!〜
by
Jumpei Miyata
開発者を支える生産性向上チームの取り組み -CI, Browser Test, Tools and Infrastructure-
by
Jumpei Miyata
サイボウズの開発を支える GitHub × CircleCI
by
Jumpei Miyata
組織横断でエンジニアを支援する生産性向上チームの役割
by
Jumpei Miyata
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
by
Jumpei Miyata
開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み
by
Jumpei Miyata
すべてを自動化せよ! 〜生産性向上チームの挑戦〜
by
Jumpei Miyata
Selenium Conference 2015 参加報告
by
Jumpei Miyata
GitHub Actions のはじめかた
by
Jumpei Miyata
Effective Automation 〜変化に強い開発基盤〜
by
Jumpei Miyata
テストエンジニアと組織構造 @Cybozu
by
Jumpei Miyata
【PR】エンジニアがkintoneを試すべき3つの理由
by
Jumpei Miyata
サイボウズを支えるCircleCI
by
Jumpei Miyata
オートスケールする GitHub Actions セルフホストランナーを構築してる話
by
Jumpei Miyata
Selenium Antipatterns
1.
Selenium Antipatterns Miyata Jumpei
(@miyajan) Feb. 6, 2016 #seleniumjp
2.
自己紹介 • 宮田 淳平
(@miyajan) • サイボウズ株式会社 • 開発基盤部生産性向上チーム • 品質保証部テストエンジニアリングチーム • 最近の趣味:筋トレ • 3ヶ月で50kg→58kg
3.
寄稿しました!
4.
日本語のSelenium本 • Selenium実践入門 • 実践
Selenium WebDriver • Selenium デザインパターン & ベストプラク ティス
5.
cybozu × Selenium
7.
kintoneチームのSeleniumテスト • 1,000以上のテストケース • すべてのテストが年間で1,000回以上実行 •
年間数十件単位の不具合を防止 • フレームワークレベルの変更を安心して行える
8.
一方、社内では導入失敗事例 も数多く存在します…
9.
世の中的にもうまく運用できてい る話をあまり聞かないような…?
10.
Seleniumのよくある課題 • 運用してみたけど続かない • コストの割にはメリットを感じない •
改善したいけどよくわからない
11.
よくある落とし穴と対策が もっと広まるとよさそう?
12.
今回のお話
13.
アンチパターン • 最初は有益だと思えるが、最終的に悪い結果 をもたらすもの • リファクタリングするための方法が存在する
14.
まえがき • 発表者が体験したもの • 運用寄りの話中心なのでコードとかは出てこない •
「Seleniumデザインパターン & ベストプラクティス」読もう • デモなし、文章だらけ • そこそこの規模で運用しようと思ってる人向け • テストケースが少ないときはなんとかなってしまう • 異論は認める • 時と場合による • 実際の運用寄りの議論が活発になってほしい
15.
アンチパターン1 なんでもSelenium
16.
背景 • 不具合の再発防止をしたい • 手動で試験したくない •
常に保証したいなにかがある
17.
すべてSeleniumで解決! • 結合テストが一番安心できる • 自動化すれば後はなにもしなくてよさそう •
ブラウザを経由すればなんでも確認できそう
18.
なにが問題?
19.
実際にあった事例 • 開発者が気が向いたときにSeleniumテストを 追加 • どのテストが自動化されているかわからない •
数が増えてメンテコスト増大 • 最終的にメンテナンス不能
20.
Seleniumテストは大きい
21.
メンテナンスコストが大きい • 実行時間が長い • 単体テストは数ms、Seleniumテストは数十秒∼数分 •
不安定になりやすい • ネットワーク • Selenium Server • ブラウザ • テスト対象(アプリ、DB、KVS、etc.)
22.
粒度が大きい • 1メソッド、1リクエストで確認できる挙動の ためにブラウザまで動かすのはやりすぎ
23.
どう改善すればいいの?
24.
例えば、Seleniumを避ける
25.
適切な選択肢を選ぶ • 静的解析 • 単体テスト •
APIテスト • 手動テスト
26.
適切な選択をするために Seleniumテストの 長所と短所を理解する
27.
長所 • E2Eレベルでの保証ができる • 人間ではほぼ不可能な速度とタイミングで実 行できる
28.
短所 • メンテナンスコストが高い(=不安定) • 柔軟性がない
29.
まとめると • 頻繁に確認したい • E2Eレベルの •
シンプルなテストを • メンテできる範囲の数で • Seleniumを活用しよう • それ以外は別の選択肢を検討しよう
30.
実際に行った改善 • Seleniumは受入試験の自動化のみに絞る • 単体テスト、APIテストで可能な限り保証する •
自動化されてるテストが把握できる • メンテできる範囲の数になる
31.
アンチパターン2 手動テストの代わり
32.
背景 • 既存の開発プロセスにSeleniumテストを取り 入れたい
33.
既存のプロセスにそのまま追加しよう! • 既存の開発プロセス 実装 手動テスト •
新しい開発プロセス 実装 手動テストSeleniumテスト
34.
なにが問題?
35.
実際にあった事例 • 回帰試験をSeleniumテストで自動化 • 実装がFIXしたら流す •
実装期間のUI変更でSeleniumテストが通らなくなる • 乖離が大きすぎるのでいったん放置して手動でテスト • 最終的にメンテナンス不能
36.
手動テストの代わりだけだと Seleniumテストのメリットを 最大化できない
37.
そもそもSeleniumテストで 得られるメリットってなんだろう?
38.
工数削減? • 間違いではない • けど、これだけを目的にすると辛い •
導入コストやメンテコストを考えると • 投資対効果が吊り合うまでに時間がかかる
39.
速度とタイミング • 繰り返しになるけど • 人間には不可能な速度とタイミングでテストを 実行できる •
より早い段階から繰り返しテストできる • 問題の発見が早くなると対応コストとリスクが 減る
40.
もう一つ問題がある
41.
Seleniumテストを放置すると • ソフトウェア本体との乖離が大きくなる • するとメンテコストが高くなってさらに放置 •
負のスパイラル
42.
どう改善すればいいの?
43.
”組織にテスティングツールを取り入れると、 人々の働き方を変えることになるということ を肝に銘じておくことが重要である。” 「システムテスト自動化標準ガイド」より引用
44.
常に繰り返し実行する • 自動テストのメリットを最大化するために • 理想的には本体が変更されるたびにテストを実行したい •
乖離が最小になる • 厳しいなら一日一回とか、可能な範囲で頻度を上げる 実装 手動テスト Seleniumテスト
45.
開発プロセスを変えるのは大変 • 推進役が必要 • 難しい場合は •
まずは単体テストとかからCI/CD文化を広める • メリットを実感できれば協力者も増える • 繰り返しになるけどSeleniumテストは大きい
46.
まとめると • Seleniumテストを手動テストの置き換えに留めずに • 常に繰り返し実行される開発プロセスを目指そう •
推進役を立てよう • 小さいことからでもメリットを実感しよう
47.
実際に行った改善 • デプロイパイプラインを構築してコードが変更されるたびに Seleniumテストをすべて実行 • 誰が落としたかすぐ分かる •
落とした人は即修正を義務化 • 常に製品とテストの乖離がない状態 • 問題の早期発見にもつながり安心感が出てくる • 意識が高いわけではないです:)
48.
アンチパターン3 クロスブラウザがんばりすぎ
49.
背景 • 動作環境のすべてのブラウザで品質保証したい
50.
Seleniumテストをすべてのブラウザで 実行しよう! • Seleniumはクロスブラウザ対応してる • すべての動作環境で確認したい
51.
なにが問題?
52.
実際にあった事例 • IE8∼IE11、Firefox、Chromeで毎日すべての Seleniumテストを実行 • すべてのテストが通ることはない •
毎日環境のメンテナンスに時間がとられる • 最終的にメンテナンス不能
53.
”デフォルト設定で、他のブラウザよりもたくさんの 問題を引き起こすブラウザがあります。 私が言っているのはInternet Explorerのことです。” 「Selenium デザインパターン
& ベストプラクティス」より引用
54.
Seleniumテストをクロスブラウザ で運用するのは思ったより大変
55.
ブラウザ × WebDriver •
ブラウザのバージョンとWebDriverのバー ジョンがある • 組み合わせ数が増えるにつれてトラブルを踏 む可能性が高くなる
56.
IE • 不安定 • クラッシュしてiedriver.exeのプロセスが残ったままになる •
マウスカーソルがブラウザに重なってるとhoverの挙動がお かしくなる • 保護モードの設定 • 突然のブルースクリーン
57.
どう改善すればいいの?
58.
ブラウザを絞る • ブラウザ依存の重大な不具合が過去にほとん どなければ • ChromeかFirefoxが比較的安定
59.
IEサポート IE8 IE9 IE10
IE11 Windows Vista 2016/01/13 2017/04/11 None None Windows 7 2016/01/13 2016/01/13 2016/01/13 2020/01/14 Windows 8.1 None None None 2023/01/10 Windows 10 None None None 2025/10/14
60.
Microsoft Edge • WebDriver対応状況が公開されている •
https://dev.windows.com/en-us/microsoft-edge/ platform/status/webdriver/details/ • 正直まだ早い
61.
ヘッドレスブラウザ • GUIがないブラウザ • 速度やリソース消費量でメリットはありそう •
前にPhantomJSを試したときはファイルアップロードが動かなくて諦めた • 2.1で改善されてるかも? • Seleniumでの運用事例をあまり見かけないのが辛い • と思ったら本日素晴らしい事例が! • PhantomJSはやっぱり辛そうという結論\(^o^)/
62.
どうしてもクロスブラウザで Seleniumテスト実行したい
63.
TaaS Platform • Sauce
Labsとか • お金で環境メンテコストを解決 • 微妙な挙動の差異とかはさておき
64.
まとめると • ブラウザは可能な限り絞る • 絞れないならTaaS
65.
実際に行った改善 • 過去のブラウザ依存の不具合を集計 • 重要不具合でSeleniumで発見できる種類のものはほぼなかった •
Chromeのみに絞った • OSもLinuxにしてDockerで管理 • 安定 • メンテも楽
66.
そのほかアンチパターン • 依存関係のあるテスト • setup,
tearDown • GUI変更に弱い • ページオブジェクト • 実行時間長すぎ • Selenium Gridで並列化 • 冗長なコード • Gebとかラッパーライブラリ
68.
アンチパターンの兆候 • メリットが感じられていない • 必要以上に苦労していると感じる
69.
まとめ • Seleniumは便利だけど落とし穴もある • 本格的に運用する前にアンチパターンを知って回避 •
もちろんベストプラクティスも重要なので、
70.
MUST BUY!
71.
Thanks!
72.
Questions?
Download