SlideShare uma empresa Scribd logo
1 de 36
2016/02/06 Sat
Naoya Kojima
twitter @jugemix
hashtag #seleniumjp
Naoya Kojima 小島 直也
• Job
 Enterprise Web Application Engineer
 単体~システムテスト、設計等を少々
 Java SE/EE, Subversion, Ant
• Career
 Sales 4 years +
 Engineer 4years +
 Java 3 years +
 Selenium 6 months +
 Azure 6 months +
 はじめに
 テストの自動化
 ブラウザテストの自動化のはじめ方
 自動化で直面した課題と解決策
 実践的な自動テストに仕上げる為にやったこと
テストってどうやってますか
私の知っているテストと違いますか
#seleniumjp
Manual Testing
• Excelにスクリーンショットをコピペして証跡残
す作業
• どうしてもモチベーションは下がりがち
Automated Testing
• 自動化ツールを使い、テストはコンピュータにお
任せ
• 帰社時/コミット時/定期的に実行するだけ
• 証跡は自動化ツール等がレポートしてくれる
静的なWebサイト
• クロスブラウザで、レイアウトに崩れや動作に問
題が無いかテストをする
動的なWebサイト
• 静的なWebサイトでの確認内容に加え、アプリ
ケーションの振る舞いをテストする
私が取り組んだ理由をお話しします
皆さんの取り組みもぜひ教えてください
#seleniumjp
 複数Webサイトに同一のマニュアルテストをし
たときに、Seleniumの存在を知っていたので同
じテストを手動で繰り返すのは非効率な面があ
ると思った
 デプロイの頻度が高い時期があり、終わったば
かりのテストを繰り返すということがあった
 自動化できるスキルがあれば、さらに効率化で
きると考えた
 テストの実行をコンピュータに任せられる
 テストをデプロイメントパイプラインに組み込
めば、ビルドしてすぐにバグを見つけることも
出来る
 継続的なテストのメンテナンスが必要
• メンテナンスしやすい構成にするスキルが必要
 それなりに学習コストが掛かる
• 本日の内容をお話しできるようになるまで、約4ヶ月かか
りました
 アプリケーションの振る舞いテストを自動化する為のツール
 詳細はぜひ、↑こちらの本をご覧ください
 本日登壇、分かりやすく書いてくれています
Javaでお話しします
ブラウザテスト=結合/システムテスト
#seleniumjp
 実践Selenium WebDriver
 Seleniumデザインパターン & ベストプラクティス
• O‘reilly japan 様
 ToolsQA
• http://toolsqa.com
 Stack Overflow
• http://stackoverflow.com
• その他多数(英語が多い)
 日本Seleniumユーザ会
• 談話会、Slack
• ぜひユーザ会に参加しましょう
私を含めた初心者にあるある集
-私だけでしょうか…
#seleniumjp
 ロケータをxpathで書くことにした
 談話会では、読みやすさからCSSを使うのも有
りという意見も出た
 アプリケーションの設計時には適切なIDを指定
するように規約を設けようと思った
 メリット
• テストケースの数だけクラスが出来る
• テストケースを網羅できれば、それをクラスに実装す
るだけなので逆に分かりやすいかも
 デメリット
• 大量にテストを書く必要がある
• 異なるテストケースで同じ処理を何度も実行する場合
があり、同じ処理を含んだクラスが複数実装される
ケース名 シナリオ 試験の流れ
TC001 日付を指定して宿泊予約する ログイン→宿泊予約
TC002 部屋を指定して宿泊予約する ログイン→宿泊予約
ケース名 実行順 機能 試験項目 アクション データ名
TC001 1 ログイン Login
TC001 2 日付指定予約 宿泊予約 hizukeYoyaku 001
TC002 1 ログイン Login
TC002 2 部屋指定予約 宿泊予約 roomYoyaku 002
テストケース表
テストステップ表
テストステップとして”宿泊予約”を切り出すべき
か?という悩み
1テストの粒度が荒いのでは?と思った。
 メリット
• テストシナリオ(テストデータ)を一度作れば、何度でも再利用
できる
• アプリケーションの機能を実行する処理を1つだけ実装すればよ
い為、改修があっても対象の操作をメンテナンスするだけで良い
• 例えば、テストシナリオに表れる”宿泊予約”という処理を1つ実
装する
 デメリット
• テストシナリオを漏れなく作る必要がある
• バージョンの異なるWebアプリケーションが複数ある場合、その
サイト数分テストシナリオを作る必要がある
6との違い
“宿泊予約”の中の”日付入力”部分だけをテストステップと
して独立させるべきか?という悩み
こだわるところじゃないかも…
 TestNGのBeforeMethod、AfterMethodを使い、
ロガーの起動、ブラウザのオープン、ブラウザ
のクローズをすることにした
 前の処理で出来上がったデータを元に次のテス
トを実施していた
 このことについて、デザパタ本の談話会でスパ
ゲッティにあたるか質問したところ、「そのテ
ストが何を目的としているか」によるという意
見を頂けた
 自分だけなら自分の好きな言語を選択
 チームでテストを書くなら、より多くのメン
バーが書ける言語を選択
テストはSeleniumに任せたいが、テスト
の初期化の度にブラウザが起動して他の作
業の邪魔をしてくる
自分のPCを使用していないときに流して
みたものの、テストが失敗していて翌日再
度やり直すことになった
Azure VMでテストを実行してみることに
した
これまでの登壇者の方から学んだことを
反映するともっと良くなる気がしてます
#seleniumjp
 テストデータ(Excel)の読み込み処理
• TestNGのDataProvider機能を使い、テストデータを読み込む処
理をテストと分離した
• データはapache POIで取得した
 任意のブラウザでのテスト実行
• プロパティファイルで実行ブラウザを切り替えられるようにした
 Web Elementが表示されるまでテストの待機処理
 スクリーンショット取得処理
 ロガー
• テストが失敗した原因を調査できるようにした
 テストを追加するときに手を加える箇所を、以
下の3か所に限定した
• PageObject
• アプリケーション機能定義部
• アプリケーション機能実装部
構成
Windows 7
PC
Windows
Server 2008
Ubuntu
Linux
Hub Node
ヤフー
Ubuntu
Linux
Ubuntu
Linux
本日のデモは
↑ここから
Selenium談話会やSlackでいろいろ教えて
くださった会員のみなさま、誠にありがと
うございました
本日の話が集まられた方の一助となれば幸
いです
Azureを使って手軽にブラウザテストの自動化をはじめよう

Mais conteúdo relacionado

Mais procurados

Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Y Watanabe
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
finoue
 

Mais procurados (20)

JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
 
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
 
Selenium boot campの紹介
Selenium boot campの紹介Selenium boot campの紹介
Selenium boot campの紹介
 
ハイパフォーマンスSeleniumテスト@サイボウズ
ハイパフォーマンスSeleniumテスト@サイボウズハイパフォーマンスSeleniumテスト@サイボウズ
ハイパフォーマンスSeleniumテスト@サイボウズ
 
テスト自動化ツール[Selenium]を検討してみて
テスト自動化ツール[Selenium]を検討してみてテスト自動化ツール[Selenium]を検討してみて
テスト自動化ツール[Selenium]を検討してみて
 
ディープラーニングとAppiumでモバイルテスト自動化
ディープラーニングとAppiumでモバイルテスト自動化ディープラーニングとAppiumでモバイルテスト自動化
ディープラーニングとAppiumでモバイルテスト自動化
 
Selenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成についてSelenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成について
 
手動テストからの移行大作戦
手動テストからの移行大作戦手動テストからの移行大作戦
手動テストからの移行大作戦
 
テストの自動化を考える前に
テストの自動化を考える前にテストの自動化を考える前に
テストの自動化を考える前に
 
Appiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみるAppiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみる
 
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
 
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
 
Selenium IDE for primer
Selenium IDE for primerSelenium IDE for primer
Selenium IDE for primer
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
 
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
 

Semelhante a Azureを使って手軽にブラウザテストの自動化をはじめよう

第2回nseg slideshare
第2回nseg slideshare第2回nseg slideshare
第2回nseg slideshare
ko ty
 
APIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッドAPIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド
友隆 浅黄
 

Semelhante a Azureを使って手軽にブラウザテストの自動化をはじめよう (20)

第2回nseg slideshare
第2回nseg slideshare第2回nseg slideshare
第2回nseg slideshare
 
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
 
APIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッドAPIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド
 
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
 
Win7 * appium * androidで実機自動テストやってみた。
Win7 * appium * androidで実機自動テストやってみた。Win7 * appium * androidで実機自動テストやってみた。
Win7 * appium * androidで実機自動テストやってみた。
 
自動化パタンランゲージ
自動化パタンランゲージ自動化パタンランゲージ
自動化パタンランゲージ
 
.Netconf
.Netconf.Netconf
.Netconf
 
退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話
 
Automation test.ssf alpha
Automation test.ssf alphaAutomation test.ssf alpha
Automation test.ssf alpha
 
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
 
Application insights で行ってみよう
Application insights で行ってみようApplication insights で行ってみよう
Application insights で行ってみよう
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
Et west テスト自動化_公開版
Et west テスト自動化_公開版Et west テスト自動化_公開版
Et west テスト自動化_公開版
 
SeleniumConf Chicago 参加報告
SeleniumConf Chicago 参加報告SeleniumConf Chicago 参加報告
SeleniumConf Chicago 参加報告
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
 
201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめよう
 

Mais de Naoya Kojima (9)

What’s Next For Selenium?
What’s Next For Selenium?What’s Next For Selenium?
What’s Next For Selenium?
 
Automated Analytics Testing
Automated Analytics TestingAutomated Analytics Testing
Automated Analytics Testing
 
20170710 hifive-test-meetup
20170710 hifive-test-meetup20170710 hifive-test-meetup
20170710 hifive-test-meetup
 
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPAJJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
 
JJUG CCC 2017 Spring LT about Twice Submit
JJUG CCC 2017 Spring LT about  Twice SubmitJJUG CCC 2017 Spring LT about  Twice Submit
JJUG CCC 2017 Spring LT about Twice Submit
 
20161222 selenium adventcalender
20161222 selenium adventcalender20161222 selenium adventcalender
20161222 selenium adventcalender
 
20161203 selenium adventcalender
20161203 selenium adventcalender20161203 selenium adventcalender
20161203 selenium adventcalender
 
20161218 selenium study4-part1
20161218 selenium study4-part120161218 selenium study4-part1
20161218 selenium study4-part1
 
jjug_night_20161121
jjug_night_20161121jjug_night_20161121
jjug_night_20161121
 

Azureを使って手軽にブラウザテストの自動化をはじめよう

Notas do Editor

  1. 安心してください。私も初心者です。(ベテランの方がお集まりのところすみません)