SlideShare uma empresa Scribd logo
1 de 51
テスト自動化ツール
Slenium の検討
自己紹介
 yuji38kwmt
WEB システム開発 (Java, JavaScript,
HTML,CSS, SQL)
Qiita(http://qiita.com/yuji38kwmt)
GitHub(https://github.com/yuji38kwmt/madobe
nyokkaichi_20160723)
 最近見たアニメ : 新世界よ
り、 Steins;Gate
目次
 担当している Web システムの概要 ( 省略 )
 テスト自動化の概要
 Selenium の概要
 Selenium IDE の検討 ( 検討中 )
 Selenium WebDriver の検討 ( 未検討 )
 ブラウザゲームの自動化
テスト自動化について
テスト自動化のメリット
 回帰テストの実行コストが抑えられる
 クロスブラウザテストのコストが抑えら
れる
 手動テストより正確
↓
 リリース期間の短縮
 品質向上
テスト自動化のデメリット
 テスト作成コストがかかる
初回サイクルは手動の 3 倍以上? (
http://aspire.way-nifty.com/majime/selenium.html)
 メンテナンス工数がかかる
テスト自動化の誤解
http://blog.trident-qa.com/2014/03/introduce-selenium-automation/
日本 Selenium ユーザコミュニティ 伊藤望
 誤解 1: 自動化すれば、テストのコストが
かからない!
 誤解 2: 全テストを Selenium で自動化す
ればいい
 誤解 3: 記録機能で、誰でも簡単にスクリ
プトが作れる!
まずはテスト自動化は検討してみ
よう
 担当しているシステムのテスト自動化は
メリットなさそう
 状況は変わるかも知れない
サポートブラウザが増える
リリース回数の増加
画面数の増加
 とりあえずテスト自動化ツール
[Selenium] を検討してみよう!
目的 : Selenium の検討
 Selenium を知る
何ができて、何ができないか
テスト自動化しやすい箇所
 システム A の一部に Selenium を導入
テスト自動化できる箇所、できない箇所
テスト自動化のコスト
Selenium の概要
Selenium とは
 Web アプリの画面操作を自動化するツー
ル
ボタンのクリック
キー入力
値取得
キャプチャ画像取得
 ブラウザテストのデファクトスタンダー
ド
 単純作業の自動化にも利用可能
Slenium を構成するツール
 Selenium WebDriver(Selenium2)
Java,Ruby,JavaScript などからブラウザを操
作
 Slelenium IDE
Firefox のアドオン
Firefox での操作を記録・再生が可能
内部コマンドは Slenium1 用で古い
(JavaScript で実装されている。 JavaScript で
できないことを Selenium でもできない )
Selenim WebDriver の仕組み
http://image.itmedia.co.jp/l/im/ait/articles/1210/05/l_jo_image01.jpg より
Selenium WebDriver サンプルコー
ド
 Junit などテストフレームワークと組み合
わせる
Selenium IDE
【 SelenimIDE で記録】 【動画視聴】
Selenium IDE のサンプルコード
 テストコードは HTML ファイル
 下図はブラウザで開いた状態
Selenium IDE で IE テスト
 「 WebDriver-Backed 」という仕組みで、
IE や Chrome でもテスト可能
 必要なソフト
Selenium Standalone Server
対象ブラウザの WebDriver
IE でテストする場合の準備 (IEDriverServer を起動 )
$ java –Dwebdriver.ie.driver=[IEDriverSever のファイルパス ] –jar selenium-server-standalone-
.jar***
Selenium IDE のまとめ
 効率的な運用は向いていない
 メンテナンス性が悪い
 プログラミングの知識は不要
Selenium WebDriver と Selenium
IDE の比較
WebDriver IDE
メンテナンス性
(HTML かどうか )
○ ×
ブラウザの制御性
( 内部コマンドの違い )
○ △
導入コスト
(HTML かどうか )
△ ○
Selenium IDE の検討
Selenium IDE を検討
 導入コストの小さい Selenium IDE から検
討する
 検討・調査内容
どこまで操作を記録できるか
テスト自動化のコスト
 可能ならば回帰テスト実施者 ( 非プログラ
マ ) にテストコードを作成してもらいたい
テスト結果の検証方法 1
 キャプチャ画像を比較してテスト結果を
検証
値の比較だと、テストの OK/NG の判断が難
しい
 確認対象の操作の前後でキャプチャ画像
を取得
キャプチャ画像を人が確認して、テスト結果
を判定
テスト結果の検証方法 2
 JavaScript エラーのチェック
【テスト対象の画面に組み込む JavaScript 】
window.jsErrors = [];
window.onerror = function(error) {
    window.jsErrors.push(obj);
}
【テストコード】
<td>assertEval</td>
<td>this.page().getCurrentWindow().jsErrors.length</td>
<td>0</td>
記録できない操作
 jQuery UI Selectable ライブラリなど
Button,input 要素でないと記録できない?
要素をクリック、ドラッグ
で選択できるライブラリ
https://jqueryui.com/selecta
ble/
ダウンロードダイアログ
 ダウンロードダイアログを閉じることが
できず、次に進めない
⇒ ブラウザの設定で、ダウンロードダイアロ
グが出ないようにする。
手動テストの 4 ~ 5 倍かかった
1. テスト仕様書の理解
2. 記録すべきデータを探す
3. テスト操作を記録
4. テストコードの修正
キャプチャ画像の取得コード追加
JavaScript エラー判定コード追加
5. テスト自動実施の動作確認
時間はざっく
り計測
ブラウザゲームの自動化
ブラウザゲームの自動化
 操作を自動化して、ズルしちゃいましょ
う!
WebDriver 、 Fluentlenium (WebDriver の
ラッパーライブラリ ) を使用
 Flash ゲーム
「かんぱにガールズ」で検討 ⇒ 失敗
 HTML ゲーム
「 Cookie Clicker 」で検討
Flash ゲームと HTML ゲームの比
較
 Flash ゲーム
HTML 上ひとつのオブジェクトとみなされる
ので、 Selenium での制御が難しい
座標値から要素を取得することもできるので
、制御は可能( moveToElement メソッド )
 HTML ゲーム
Slenium での制御が Flash ゲームに比べると
簡単
Flash ゲーム「かんぱにガールズ」
で試してみる
「かんぱにガールズ」とは?
剣と魔法の世界を舞台に、女の子達がバトル
するファンタジー RPG
戦闘は基本的に自動
戦うのに必要なパラメータ(パン)は、時間
が経つと回復する
女の子が負けるとイイ感じに服が破れる
 「 15 分ごとに 1 回戦闘する」という操
作を自動化して、簡単にレベル上げし
自動化の処理の流れ
1. ログイン
2. かんぱにガールズ Start
3. 戦闘開始
4. 15 分待った ( パンが回復するまで ) 後、
処理 3 へ戻る。
ログインする
Flash オブジェクト取得
スタートボタンをクリック
左上位置から、
右へ 200,
下へ 200
「かんぱにガールズ」自動化中
止
 Flash の初期ロードが遅い。 1~2 分待つ。
 Selenium を実行する度に 1~ 2分待つ必
要があるので、自動化コードの確認がし
づらい
↓
 かんぱにガールズの自動化は断念
HTML5 ゲーム「 Cookie Clicker 」
で試してみる
「 Cookie Clicker 」とは?
 クッキーをひたすらクリックして、クッ
キーを増やすゲーム
 HTML ゲーム
 「クッキーのクリック」を自動化した
自動化の処理の流れ
1. Cookie Clicker を開く
2. セーブファイルをインポート
3. クッキーをひたすらクリック
4. セーブファイルをエクスポート
【動画視聴】
Cookie Clicker を開く
「セーブファイルエクスポート」
で説明
セーブファイルをインポート
( Options ボタンをクリック )
セーブファイルをインポート
( Import Save ボタンをクリック )
ID が設定されていないので、
ボタンのテキストで要素を取得する
セーブファイルをインポート
( Save Code を入力 )
クッキーをひたすらクリック
セーブファイルをエクスポート
(Save To File ボタンをクリック )
セーブファイルをエクスポート
( ダウンロード )
 Selenium ではダウンロードダイアログを
制御できない
 ダウンロードダイアログを表示しないよ
う、 Firefox のオプションを設定
課題
 Selenium IDE を詳しく検討する ( 現在検
討中 )
 WebDriver を検討する ( 現在未検討 )
 テストコードの実行方法を検討する
Selenium Grid?
 Cookie Clicker の自動化に、アイテム要素
も組み込む
参考図書 1: Selenium 実践入門
 WebDriver,Selenium
IDE のコマンド
 サイボウズ、 DeNA
の事例
 WebDriver のライブ
ラリ
Getb,Fulentlenium,Ca
pybara
参考図書 2
実践 Selenium WebDriver
 Selenium の仕組みが
詳しい
皆さんに質問
 テスト自動化やっていますか?
 Selenium 使っている方いますか?
ご清聴ありがとうございました

Mais conteúdo relacionado

Mais procurados

Tree distance algorithm
Tree distance algorithmTree distance algorithm
Tree distance algorithm
Trector Rancor
 

Mais procurados (20)

Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
 
Aggregate functions
Aggregate functionsAggregate functions
Aggregate functions
 
Uml
UmlUml
Uml
 
5desc
5desc5desc
5desc
 
Principles of Data Visualization
Principles of Data VisualizationPrinciples of Data Visualization
Principles of Data Visualization
 
Tree distance algorithm
Tree distance algorithmTree distance algorithm
Tree distance algorithm
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterConn 2023)
Mind your App Footprint 🐾⚡️🌱 (@FlutterConn 2023)Mind your App Footprint 🐾⚡️🌱 (@FlutterConn 2023)
Mind your App Footprint 🐾⚡️🌱 (@FlutterConn 2023)
 
SQL Joins With Examples | Edureka
SQL Joins With Examples | EdurekaSQL Joins With Examples | Edureka
SQL Joins With Examples | Edureka
 
Filter
FilterFilter
Filter
 
Peeking inside the engine of ZIO SQL.pdf
Peeking inside the engine of ZIO SQL.pdfPeeking inside the engine of ZIO SQL.pdf
Peeking inside the engine of ZIO SQL.pdf
 
3.1 clustering
3.1 clustering3.1 clustering
3.1 clustering
 
Exploratory data analysis data visualization
Exploratory data analysis data visualizationExploratory data analysis data visualization
Exploratory data analysis data visualization
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표
 
SQL commands
SQL commandsSQL commands
SQL commands
 
Pipeline oriented programming
Pipeline oriented programmingPipeline oriented programming
Pipeline oriented programming
 
Introduction to julia
Introduction to juliaIntroduction to julia
Introduction to julia
 
MySQL JOINS
MySQL JOINSMySQL JOINS
MySQL JOINS
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1
 
sql function(ppt)
sql function(ppt)sql function(ppt)
sql function(ppt)
 
Aggregate functions in SQL.pptx
Aggregate functions in SQL.pptxAggregate functions in SQL.pptx
Aggregate functions in SQL.pptx
 

Semelhante a テスト自動化ツール[Selenium]を検討してみて

アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
yasuohosotani
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
finoue
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
 
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョンGoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
VOYAGE GROUP UIO strategies section
 

Semelhante a テスト自動化ツール[Selenium]を検討してみて (20)

Win7 * appium * androidで実機自動テストやってみた。
Win7 * appium * androidで実機自動テストやってみた。Win7 * appium * androidで実機自動テストやってみた。
Win7 * appium * androidで実機自動テストやってみた。
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようず
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
アジャイルテストを、壮絶に、考える。
アジャイルテストを、壮絶に、考える。アジャイルテストを、壮絶に、考える。
アジャイルテストを、壮絶に、考える。
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
 
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハックjQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
 
ツールを使い倒せ!公開版 : (Use the tool to defeat it! : Public version)
ツールを使い倒せ!公開版 : (Use the tool to defeat it! : Public version)ツールを使い倒せ!公開版 : (Use the tool to defeat it! : Public version)
ツールを使い倒せ!公開版 : (Use the tool to defeat it! : Public version)
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 
Selenium 触ってみよう
Selenium 触ってみようSelenium 触ってみよう
Selenium 触ってみよう
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
 
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
 
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョンGoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
 

テスト自動化ツール[Selenium]を検討してみて