狠狠撸
Submit Search
骋鲍滨自动テストの保守性を高めるには
Dec 14, 2014
35 likes
29,343 views
N
Nozomi Ito
2014/12/14に开催された「システムテスト自动化カンファレンス2014」(丑迟迟辫://肠辞苍苍辫补蝉蝉.肠辞尘/别惫别苍迟/9618/)の発表スライドです。
Software
Read more
1 of 66
Download now
Downloaded 121 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
More Related Content
What's hot
(20)
PDF
年间1,000万件のアラートを自动処理してみた
IIJ
?
PDF
Assembly Definition あれやこれ
NakanoYosuke1
?
PDF
テスト分析?設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
Akira Ikeda
?
PPTX
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
RyuichiKanoh
?
PDF
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
?
PDF
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
?
ODP
MVC の Model を考える
tomo_masakura
?
PDF
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
?
PDF
ユーサ?ーストーリー駆动开発て?行こう。
toshihiro ichitani
?
PDF
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
?
PDF
Agile Quality アジャイル品質パターン (QA2AQ)
Hironori Washizaki
?
PDF
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
崇 山﨑
?
PDF
KPTのコツを掴め!! 公開用
ESM SEC
?
PDF
强化学习と逆强化学习を组み合わせた模倣学习
Eiji Uchibe
?
PDF
フ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワーク
kumiko koshiro
?
PDF
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
?
PDF
DeNAの品質を支えるQAの取り組み ?標準化から実践まで?
Tetsuya Kouno
?
PDF
デキるプログラマだけが知っているコードレビュー7つの秘诀(顿别惫尝辞惫别版)
Masahiro Nishimi
?
PPTX
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
Kinji Akemine
?
PDF
製品の质と、仕事の质を向上させるふりかえりの活用
ESM SEC
?
年间1,000万件のアラートを自动処理してみた
IIJ
?
Assembly Definition あれやこれ
NakanoYosuke1
?
テスト分析?設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
Akira Ikeda
?
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
RyuichiKanoh
?
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
?
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
?
MVC の Model を考える
tomo_masakura
?
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
?
ユーサ?ーストーリー駆动开発て?行こう。
toshihiro ichitani
?
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
?
Agile Quality アジャイル品質パターン (QA2AQ)
Hironori Washizaki
?
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
崇 山﨑
?
KPTのコツを掴め!! 公開用
ESM SEC
?
强化学习と逆强化学习を组み合わせた模倣学习
Eiji Uchibe
?
フ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワーク
kumiko koshiro
?
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
?
DeNAの品質を支えるQAの取り組み ?標準化から実践まで?
Tetsuya Kouno
?
デキるプログラマだけが知っているコードレビュー7つの秘诀(顿别惫尝辞惫别版)
Masahiro Nishimi
?
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
Kinji Akemine
?
製品の质と、仕事の质を向上させるふりかえりの活用
ESM SEC
?
Viewers also liked
(20)
PPTX
Stac2013 開会挨拶
Shinsuke Matsuki
?
PDF
STAC2015 講演3 広告システム刷新よもやま話?テストが当たり前となるまでにやったこと #stac2015
驰补丑辞辞!デベロッパーネットワーク
?
PDF
実践で学ぶ、効率的な自动テストスクリプトのメンテナンス
Nozomi Ito
?
PDF
ビルドプロセスとCI #STAC2014
Koji Hasegawa
?
PDF
テスト自动化のパターンと実践
Hiroshi Maekawa
?
PDF
#STAC2014 システムテスト自動化ハンズオン
kyon mm
?
PPTX
キーワード駆動によるシステムテストの自動化について 2015
Toru Koido
?
PDF
スマートフォンアフ?リの テスト自動化をはし?めよう
Koji Hasegawa
?
PDF
キーワード駆动テストチュートリアルハンズアウト.03.06
Toru Koido
?
PDF
20151213 system test automation conference
Kazuaki Matsuo
?
PDF
快適?簡単?安心なアプリE2Eテストの実行環境 #stac2017
驰补丑辞辞!デベロッパーネットワーク
?
PDF
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
?
PPTX
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
Kinji Akemine
?
PPTX
手动テストからの移行大作戦
Satsuki Urayama
?
PDF
Automation test.ssf alpha
ryuji koyama
?
PDF
テスト自动化のこれまでとこれから
Keizo Tatsumi
?
PPTX
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
Hiroko Tamagawa
?
PDF
组み込み开発でのシステムテスト自动化の一つの考え方(厂罢础颁)
H Iseri
?
PDF
事例から见るテスト自动化のポイント
Hiroshi Maekawa
?
PDF
1時間で分かるSTA (Software Test Automation) #stac2014
Kazuhiro Suzuki
?
Stac2013 開会挨拶
Shinsuke Matsuki
?
STAC2015 講演3 広告システム刷新よもやま話?テストが当たり前となるまでにやったこと #stac2015
驰补丑辞辞!デベロッパーネットワーク
?
実践で学ぶ、効率的な自动テストスクリプトのメンテナンス
Nozomi Ito
?
ビルドプロセスとCI #STAC2014
Koji Hasegawa
?
テスト自动化のパターンと実践
Hiroshi Maekawa
?
#STAC2014 システムテスト自動化ハンズオン
kyon mm
?
キーワード駆動によるシステムテストの自動化について 2015
Toru Koido
?
スマートフォンアフ?リの テスト自動化をはし?めよう
Koji Hasegawa
?
キーワード駆动テストチュートリアルハンズアウト.03.06
Toru Koido
?
20151213 system test automation conference
Kazuaki Matsuo
?
快適?簡単?安心なアプリE2Eテストの実行環境 #stac2017
驰补丑辞辞!デベロッパーネットワーク
?
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
?
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
Kinji Akemine
?
手动テストからの移行大作戦
Satsuki Urayama
?
Automation test.ssf alpha
ryuji koyama
?
テスト自动化のこれまでとこれから
Keizo Tatsumi
?
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
Hiroko Tamagawa
?
组み込み开発でのシステムテスト自动化の一つの考え方(厂罢础颁)
H Iseri
?
事例から见るテスト自动化のポイント
Hiroshi Maekawa
?
1時間で分かるSTA (Software Test Automation) #stac2014
Kazuhiro Suzuki
?
Ad
Similar to 骋鲍滨自动テストの保守性を高めるには
(20)
PDF
デブサミ2014【13-叠-尝】テスト自动化を见直そう!自动化への投资が开発チームをクリエイティブにする(安竹由起夫〔コベリティジャパン〕)
Developers Summit
?
PPT
テスト自动化ツール摆厂别濒别苍颈耻尘闭を検讨してみて
裕史 川松
?
PPTX
テストしなイカ? 厂别濒别苍颈耻尘で自动ブラウザテスト
Ohishi Mikage
?
PDF
ありえるえりあ勉強会@五反田~テスト編~ Part2
Tomoyuki Sato
?
PDF
第2回nseg slideshare
ko ty
?
PDF
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
?
PPTX
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
Kotaro Ogino
?
PPTX
20211221 jasst nano_test automation operation
Sadaaki Emura
?
PDF
异业种でのテスト自动化の実际
Satsuki Urayama
?
PPTX
Istqb : Test automation Engineer
Sadaaki Emura
?
PPT
ビジネス的に高価値なアジャイルテスト
Tsutomu Chikuba
?
PDF
第3回ソフトウェアテストセミナー
Tomoyuki Sato
?
PDF
アジャイル×テスト开発を考える
yasuohosotani
?
PDF
20121019 jenkins勉強会lt資料
Hiroko Tamagawa
?
PDF
ギアと开発とわたし冲础础础2015
Kazuhiro Suzuki
?
PDF
SGT2013 技術トークス「アジャイルテスティング」
yasuohosotani
?
PPTX
20220527_JaSST'22 Tohoku
Sadaaki Emura
?
PDF
「厂别濒别苍颈耻尘実践入门」て?学ふ?テスト自动化の世界
Nozomi Ito
?
PPTX
Sansan における Android アプリ自動テスト導入事例
Kenichi Tatsuhama
?
PPT
Dev Love Lt 20090622(佐々木)
DevLOVE
?
デブサミ2014【13-叠-尝】テスト自动化を见直そう!自动化への投资が开発チームをクリエイティブにする(安竹由起夫〔コベリティジャパン〕)
Developers Summit
?
テスト自动化ツール摆厂别濒别苍颈耻尘闭を検讨してみて
裕史 川松
?
テストしなイカ? 厂别濒别苍颈耻尘で自动ブラウザテスト
Ohishi Mikage
?
ありえるえりあ勉強会@五反田~テスト編~ Part2
Tomoyuki Sato
?
第2回nseg slideshare
ko ty
?
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
?
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
Kotaro Ogino
?
20211221 jasst nano_test automation operation
Sadaaki Emura
?
异业种でのテスト自动化の実际
Satsuki Urayama
?
Istqb : Test automation Engineer
Sadaaki Emura
?
ビジネス的に高価値なアジャイルテスト
Tsutomu Chikuba
?
第3回ソフトウェアテストセミナー
Tomoyuki Sato
?
アジャイル×テスト开発を考える
yasuohosotani
?
20121019 jenkins勉強会lt資料
Hiroko Tamagawa
?
ギアと开発とわたし冲础础础2015
Kazuhiro Suzuki
?
SGT2013 技術トークス「アジャイルテスティング」
yasuohosotani
?
20220527_JaSST'22 Tohoku
Sadaaki Emura
?
「厂别濒别苍颈耻尘実践入门」て?学ふ?テスト自动化の世界
Nozomi Ito
?
Sansan における Android アプリ自動テスト導入事例
Kenichi Tatsuhama
?
Dev Love Lt 20090622(佐々木)
DevLOVE
?
Ad
More from Nozomi Ito
(19)
PPTX
WebサイトもモバイルアプリもMagic Podで自動化
Nozomi Ito
?
PPTX
Understand the AI-powered test automation with Magic Pod
Nozomi Ito
?
PDF
基礎からわかる、機械学習のソフトウェアテストのへの適用例 - 「Bag Of Words」を使った「類似チケットの検索」
Nozomi Ito
?
PDF
机械学习を活用したテスト自动化システムの设计
Nozomi Ito
?
PDF
完全版:「鲍滨自动テストツールと础滨」?础滨を使った自动テストの「今」と「未来」?
Nozomi Ito
?
PDF
「鲍滨自动テストツールと础滨」?础滨を使った自动テストの「今」と「未来」?
Nozomi Ito
?
PDF
ディープラーニングと础辫辫颈耻尘でモバイルテスト自动化
Nozomi Ito
?
PPTX
第4回日本蝉别濒别苍颈耻尘ユーサ?ーコミュニティ勉强会
Nozomi Ito
?
PDF
ディープラーニングと础辫辫颈耻尘でテストを自动化
Nozomi Ito
?
PDF
もし础辫辫颈耻尘とディープラーニングを组み合わせたら
Nozomi Ito
?
PDF
Selenium boot campの紹介
Nozomi Ito
?
PDF
第3回日本蝉别濒别苍颈耻尘ユーサ?ーコミュニティ勉强会
Nozomi Ito
?
PDF
础辫辫颈耻尘のテスト结果レホ?ートを蝉补丑补驳颈苍て?作ってみる
Nozomi Ito
?
PDF
去年のデブサミの「日本厂别濒别苍颈耻尘ユーザーコミュニティ」の尝罢が真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった结果飞飞
Nozomi Ito
?
PDF
第2回日本蝉别濒别苍颈耻尘ユーザーコミュニティ勉强会
Nozomi Ito
?
PDF
海外の厂别濒别苍颈耻尘カンファレンスではどんな発表がされているのか2014
Nozomi Ito
?
PDF
【短缩版】翱厂厂のブラウザ自动テストツール「厂别濒别苍颈耻尘」を使った、开発?テストの効率化
Nozomi Ito
?
PDF
翱厂厂のブラウザ自动テストツール「厂别濒别苍颈耻尘」を使った、开発?テストの効率化
Nozomi Ito
?
PDF
4时间で学ぶ、効率的な自动テストスクリプトのメンテナンス
Nozomi Ito
?
WebサイトもモバイルアプリもMagic Podで自動化
Nozomi Ito
?
Understand the AI-powered test automation with Magic Pod
Nozomi Ito
?
基礎からわかる、機械学習のソフトウェアテストのへの適用例 - 「Bag Of Words」を使った「類似チケットの検索」
Nozomi Ito
?
机械学习を活用したテスト自动化システムの设计
Nozomi Ito
?
完全版:「鲍滨自动テストツールと础滨」?础滨を使った自动テストの「今」と「未来」?
Nozomi Ito
?
「鲍滨自动テストツールと础滨」?础滨を使った自动テストの「今」と「未来」?
Nozomi Ito
?
ディープラーニングと础辫辫颈耻尘でモバイルテスト自动化
Nozomi Ito
?
第4回日本蝉别濒别苍颈耻尘ユーサ?ーコミュニティ勉强会
Nozomi Ito
?
ディープラーニングと础辫辫颈耻尘でテストを自动化
Nozomi Ito
?
もし础辫辫颈耻尘とディープラーニングを组み合わせたら
Nozomi Ito
?
Selenium boot campの紹介
Nozomi Ito
?
第3回日本蝉别濒别苍颈耻尘ユーサ?ーコミュニティ勉强会
Nozomi Ito
?
础辫辫颈耻尘のテスト结果レホ?ートを蝉补丑补驳颈苍て?作ってみる
Nozomi Ito
?
去年のデブサミの「日本厂别濒别苍颈耻尘ユーザーコミュニティ」の尝罢が真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった结果飞飞
Nozomi Ito
?
第2回日本蝉别濒别苍颈耻尘ユーザーコミュニティ勉强会
Nozomi Ito
?
海外の厂别濒别苍颈耻尘カンファレンスではどんな発表がされているのか2014
Nozomi Ito
?
【短缩版】翱厂厂のブラウザ自动テストツール「厂别濒别苍颈耻尘」を使った、开発?テストの効率化
Nozomi Ito
?
翱厂厂のブラウザ自动テストツール「厂别濒别苍颈耻尘」を使った、开発?テストの効率化
Nozomi Ito
?
4时间で学ぶ、効率的な自动テストスクリプトのメンテナンス
Nozomi Ito
?
骋鲍滨自动テストの保守性を高めるには
1.
骋鲍滨自动テストの保守性を高めるには 2014.12.14 伊藤
望(罢搁滨顿贰狈罢)
2.
自己紹介 ?伊藤 望
?「システムテスト自動化標準ガイド」12章執筆 ?会社 ?株式会社TRIDENT 代表取締役 ?テスト自動化の支援を行うベンチャー ?www.trident-qa.com (ブログあり) ?コミュニティ ?「日本Seleniumユーザーコミュニティ」を主宰
3.
保守性 今日のテーマ
4.
テストのメンテナンス工数はこれまで、テスト自 動化の多くの試みを死に追いやった。 「システムテスト自動化標準ガイド」
5.
GUI(画面)自動テストのコスト ?テスト作成コスト 最初の1回
?テスト保守コスト テストを実行する限り ?テストが失敗したときの原因調査 ?テスト対象システムのUI変更に伴うスクリプト修正 ?保守コストをいかに減らしていくか ?Seleniumを題材に話します
6.
今日のトピック ?Seleniumとその保守性 ?いかにしてテストをグリーンに保つか
?テストスクリプトの共通化
7.
?Seleniumとその保守性 ?いかにしてテストをグリーンに保つか ?テストスクリプトの共通化
8.
よく見るSelenium利用パターン3つ 1.キャプチャーリプレイ 2.プログラミング言語で記述
3.贰虫肠别濒等からスクリプト生成
9.
1.キャプチャーリプレイ
10.
キャプチャーリプレイはテスト自動化ではない 「システムテスト自動化標準ガイド」
11.
1.キャプチャーリプレイ ?手動画面操作を記録してスクリプト生成 ?Selenium
IDE ?Selenium Builder (使用性に課題…)
12.
1.キャプチャーリプレイ ?メリット ?画面を操作するだけでスクリプト生成
?デメリット ?読みにくいスクリプトになりがち ?スクリプト共通化が行われないので、スクリプト修正の作 業が大変
13.
?よくある素晴らしいテストツールのデモサイト 1.キャプチャーリプレイ 読みにくいスクリプト
なんか読みやすそう! 記録
14.
?現実世界のウェブサイト 1.キャプチャーリプレイ 読みにくいスクリプト
記録 よく分からない https://twitter.com/
15.
1.「送信ボタンのデザイン変えました」 2.送信ボタンをクリックしているスクリプト全修正 1.キャプチャーリプレイ
スクリプト修正の作业が大変
16.
?記録した後、スクリプトの手直しがかなり必要 ?Selenium IDEの利点は、記録機能よりも、
?見やすい表形式でスクリプトを管理?編集 ?プログラムを書くのに比べ、覚えることが少ない ?インストール&利用が簡単 1.キャプチャーリプレイ
17.
?Selenium IDEを使った表形式管理の課題 ?複雑なロジックを書くのは結構大変
?If文, For文, Try-catch文 SelBlocksプラグイン ?処理の共通化 UIマップファイル ?「明日の日付の取得」などの処理 JavaScriptを駆使 ?だんだんプログラムを書いているのと変わらなくなる 1.キャプチャーリプレイ
18.
2.プログラミング言语で记述
19.
2.プログラミング言语で记述 ?Java、Ruby等々のプログラミング言語でテストスクリ プトを記述
?Selenium WebDriverや、それをラップしたツール
20.
2.プログラミング言语で记述 ?メリット ?共通化の技法を駆使して、メンテナスコストを減らせる
?If文, For文, Try-catch文等の柔軟な処理の記述が容易 ?統合開発環境(Eclipse等)のコード補完、文法チェック、リ ファクタリングなどの機能を活用できる ?デメリット ?プログラムが読み書きできる必要がある
21.
2.プログラミング言语で记述 ?様々な周辺オープンソースツール?クラウドサービス との親和性が高い
エディタ テストフレーム ワーク バージョン 管理 CI 実行端末 クラウド SauceLabs BrowserStack Travis CI
22.
3.贰虫肠别濒等からスクリプト生成
23.
?Excelファイルから、Selenium IDEやSelenium WebDriverのコードを生成
?生成ロジックは自作するケースが多い 3.贰虫肠别濒等からスクリプト生成
24.
3.贰虫肠别濒等からスクリプト生成 ?メリット ?プログラムを読み書きする必要がない
?デメリット ?プログラミング言語ほど柔軟な処理が書けない ?メジャーなツールが無いため、独自仕様になりがち ?バージョン管理システムとの親和性がイマイチ
25.
それぞれのメリット?デメリット ?Selenium IDEで記録したスクリプトをそのまま
使うのはやめた方がいいです。 非プログラマ による利用 柔軟な 処理 スクリプト 共通化 IDEキャプチャリプレイ ○ × × IDE表形式管理 ○ △ △ プログラム × ○ ○ Excel等 ○ △ △
26.
ここからは、 「プログラミング言語で記述」 する場合の話
27.
?Seleniumとその保守性 ?いかにしてテストをグリーンに保つか ?テストスクリプトの共通化
28.
グリーンに保つための3ステップ ?「テストをグリーンに保つ」 =
「失敗したテストを放置 せず、きちんとメンテナンスし続ける」 ?3ステップ 1.できるだけ失敗させない 2.失敗したら原因を突き止める 3.原因が分かったら修正する
29.
1.できるだけ失败させない
30.
1.できるだけ失败させない ?テストはなぜ失敗するのか ?テスト対象システムのバグ
?テスト対象システムの仕様変更 ?テストツール自体のバグ ?それ以外 ?一番よく見かけるのは、、 ?「不安定テスト」「環境準備失敗」「DB定義変更作業ミス」 「テストデータ不整合」等 「それ以外」
31.
?バグを見つけるためにテストしているわけで、バグ が出るのは悪いことではない ?対策
?静的解析、単体テスト、APIテストの方が失敗時の時間 ロスが少ないので、そちらを先に実行する 1.できるだけ失败させない 「テスト対象システムのバグ」
32.
?対策 ?仕様変更に強い方法で要素指定 ?テスト対象システムが、id属性などをできるだけ提供
?「APIテスト」などの仕様変更に強いテストを増やす 1.できるだけ失败させない 「テスト対象システムの仕様変更」
33.
?画面操作の実行エンジンは、非常に実装難易度が 高く、バグがつきもの ?対策
?実績のある実行エンジン(Selenium WebDriver等)を選び、 リスクを軽減する 1.できるだけ失败させない 「テストツール自体のバグ」
34.
?主な原因 ?画面ロードが完了する前に操作を始めてしまう ?不安定なネットワーク
?対策 ?テストスクリプトに適切に待ち処理を入れる ?失敗したらリトライ処理を入れる 1.できるだけ失败させない 「その他」 - 「不安定テスト」
35.
?主な原因 ?コンパイル&デプロイ作業手順ミス ?テスト用サーバの再起動失敗
?対策 ?コンパイル&デプロイフローから手作業を排除。不安定な 箇所は地道に改善 ?環境準備チェック用テストをいくつか最初に流し、失敗し たらそこでやめる 1.できるだけ失败させない 「その他」 - 「環境準備失敗」
36.
?主な原因 ?「SQL適用」「コンパイル」「サーバ再起動」の時間差で発生 ?SQLのCommit/Push忘れ
?対策 ?コンパイル&デプロイフローから手作業を排除。 ?「Commit/Push忘れ」は、あまりいい解決策が。。 1.できるだけ失败させない 「その他」 - 「DB定義変更作業ミス」
37.
?主な原因 ?誰かが、手動テストのために設定を書き換えた ?テスト失敗の原因調査に流したテストで、ゴミデータが作
られた ?「次回から気を付けましょう」で終わることもあり、テンショ ンが下がる。。 ?対策 ?「テスト環境は毎回クリーンなものを使用」「テスト実行前 に前回のゴミデータを削除」などの工夫 1.できるだけ失败させない 「その他」 - 「テストデータ不整合」
38.
1.できるだけ失败させない バグ以外の原因でのテスト失敗が多いと どうせまたバグ
じゃないんだろ 調査が後回しに 1時間かけて調査し たのに、DB不整合 が原因とか… 自動化の やる気減退
39.
2.失败したら原因を突き止める
40.
?テスト結果に誰でも簡単にアクセスできる ?メールやブラウザ上で見られると結果確認が簡単 ?チーム全体で結果を共有し、テスト失敗への関心を高める
?Seleniumだと、Jenkins等と組み合わせるのがお勧め 2.失败したら原因を突き止める すみやかに原因を突き止めるには
41.
?画面キャプチャ?動画?サーバーログなど、エラー調 査に必要なデータを残す ?テストを再実行しての原因調査は、心理的ハードルが高く
後回しになりがち ?テスト結果を見てすぐ原因が分かれば、対応する気がお きやすい 2.失败したら原因を突き止める すみやかに原因を突き止めるには
42.
?エラーになったテストだけを手元で流して確認できる ?短い、独立したテストを多数作る ?「1時間かけて先頭から全部流さないと結果確認でき
ない」だと、調査が辛い ?テストスクリプトはバージョン管理し、誰でも手元に取得で きるように 2.失败したら原因を突き止める すみやかに原因を突き止めるには
43.
3.原因が分かったら修正する
44.
3.原因が分かったら修正する ?修正を容易にするためには スクリプトを共通化し、
メンテナンスの负荷を减らす
45.
?Seleniumとその保守性 ?いかにしてテストをグリーンに保つか ?テストスクリプトの共通化
46.
保守性の高いスクリプトを作る技術は、保守性の 高いプログラムを作る技術と多くの共通点がある。 「システムテスト自動化標準ガイド」
47.
テストスクリプトの共通化 ?DRY(Don’t Repeat
Yourself)の原則は、テストスクリプ トの場合にも有効 ?テスト対象のUIが変わった場合のスクリプト修正の 負荷を軽減 ?しかし、安直な共通化は、問題を引き起こす
48.
共通化の問題① ?やりすぎると分かりにくいスクリプトに @Test
public void 分かりにくいスクリプトの例() { goToMainMenu("新規予約"); setRequiredInfo("伊藤望","イトウノゾミ",0,1); setAllMailCheck(false); goNextAndConfirm(); }
49.
共通化の問題② ?目的の共通関数を見つけられず、同じものを何個も 作ってしまうことも
よく分かんないし、 自分で書いちゃう方 が早いな… 探しにくい共通ライブラリの例
50.
?Selenium界隈で広く利用されている ?画面情報を1つのクラスに集約 ?1つのページに対し1つのページオブジェクトクラス
テスト対象画面 テストスクリプト ページオブジェクトクラス ページオブジェクトデザインパターン
51.
ページオブジェクトデザインパターン テスト対象画面 ページオブジェクトクラス
ContactPage +setUserName(user) +setMailAddress(mail) +setOrganization(organization) +setSubject(subject) +setContent(content) +send()
52.
ページオブジェクトデザインパターン ?テストスクリプトはこんな感じになる テストスクリプト
ContactPage contact = new ContactPage(driver); contact.setUserName("伊藤望"); contact.setMailAddress("xxx@xxx.com"); contact.setSubject("テスト"); contact.setSubject("テスト投稿です"); contact.send();
53.
ページオブジェクトデザインパターン ?メリット ?HTML要素の記述を隠蔽し、スクリプトが読みやすくなる
?共通化基準がシンプルで明確なので、「誰かが作った使 いにくい共通メソッド」になりにくい。 ?ページ単位で共通メソッドがまとまっているので、目的の メソッドを見つけやすい
54.
ページオブジェクトデザインパターン ?デメリット ?直接スクリプトを書くのと比べ手間がかかる
?Selenium WebDriverのページオブジェクト生成ツールを 見つけたが、あまり使いやすくなかった。。 ?swd-recorder ?http://unmesh.me/2013/08/29/pageobject- generator-utility-for-selenium-webdriver/
55.
?ページオブジェクトのメソッドは、画面のUI構成に依 存しないように ページオブジェクトデザインパターン
よりUI変更に強くするためには +setReserveYear(year) +setReserveMonth(month) +setReserveDay(day) UI変更 うまくいかなくなる! ?このページで行いたいのは「宿泊日を指定すること」 ?メソッドは「setReserveDate(year, month, day)」か 「setReserveDate(date)」がよい
56.
?例) データ駆動テスト ページオブジェクトデザインパターン
他の共通化とも組み合わせられる contact.setUserName(user); contact.setMailAddress(mail); contact.setSubject(subject); contact.send(); user mail subject 伊藤望 xxx@xxx.com テスト … … … … … … テストスクリプト データ
57.
まとめ ?各種Seleniumツールには可読性?保守性の面でトレード オフがある
?保守性を高めるために重要なこと ?テストの失敗要因を減らす ?失敗調査コストを減らす ?共通化する ?「ページオブジェクトデザインパターン」は効果的な手法
58.
宣伝
59.
1.読みやすさと柔軟性のトレードオフ ?プログラマだって表形式のテストスクリプトは読みやすい ?でも、プログラムで書く方が柔軟な記述ができる
2.読みやすさと共通化のトレードオフ ?同じ処理は共通化した方がメンテナンスコストが下がる ?でも、共通化しすぎるとスクリプトが読み辛い 今日登場した問題
60.
Sahagin
61.
Sahagin ?オープンソースで作りました ?テストスクリプト&テスト結果のHTMLレポート
62.
1.各メソッドに@TestDocで説明をつける 2.テストを実行する Sahagin
何ができるか
63.
3.Jenkins上で、スクリプトを表形式で確認できる Sahagin 何ができるか
画面キャプチャは 自動取得
64.
4.ネストしたメソッド呼び出しも見られる 5.共通化しても、スクリプトの内容が分かりやすい Sahagin
何ができるか
65.
Sahagin ?https://github.com/SahaginOrg ?バージョン0.1ではJavaのみ対応
?ドキュメントまだなので、この後作ります ?リリース作業まだなので、この後やります
66.
ご清聴ありがとうございました
Download