SlideShare a Scribd company logo
テスト自動化ツール
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 使っている方いますか?
ご清聴ありがとうございました

More Related Content

PDF
現場で役立つシステム設計の原則
PDF
JenkinsとSeleniumの活用事例
PDF
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
PDF
AzureでLaravel動かしてみた
PDF
20分くらいでわかった気分になれるC++20コルーチン
PPTX
Keycloak入門-OpenID ConnectによるAPIセキュリティ
PDF
いまさら聞けないNGINXコンフィグ_F5-NGINX-Community-20200805
PPTX
ゲーム向けマネジメントツール 「Hansoft」の概要と コンシューマ開発で1年間 運用した事例
現場で役立つシステム設計の原則
JenkinsとSeleniumの活用事例
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
AzureでLaravel動かしてみた
20分くらいでわかった気分になれるC++20コルーチン
Keycloak入門-OpenID ConnectによるAPIセキュリティ
いまさら聞けないNGINXコンフィグ_F5-NGINX-Community-20200805
ゲーム向けマネジメントツール 「Hansoft」の概要と コンシューマ開発で1年間 運用した事例

What's hot (20)

PDF
Redmineの情報を自分好みに見える化した話
PDF
.NET 7におけるBlazorの新機能
PDF
AWSとReactで始めるShopifyアプリ開発
PPTX
DAUを評価指標から捨てた会社の話 #tokyowebmining
PDF
Implementing SSH in Java
PPTX
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
PDF
OpenID ConnectとAndroidアプリのログインサイクル
PPTX
Keycloak入門
PPTX
ゲームエンジニアのためのデータベース設計
PDF
Zaim 500万ユーザに向けて〜Aurora 編〜
PPTX
JPAの基礎と現場で役立つ開発Tips
PDF
RDRA DDD Agile
PPTX
reduxのstate設計の話
PDF
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
PDF
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
PPTX
こわくない!Azure 運用管理
PDF
これからのネイティブアプリにおけるOpenID Connectの活用
PDF
ソフトウェアテスト入門
PDF
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
PDF
View customize pluginを使いこなす
Redmineの情報を自分好みに見える化した話
.NET 7におけるBlazorの新機能
AWSとReactで始めるShopifyアプリ開発
DAUを評価指標から捨てた会社の話 #tokyowebmining
Implementing SSH in Java
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
OpenID ConnectとAndroidアプリのログインサイクル
Keycloak入門
ゲームエンジニアのためのデータベース設計
Zaim 500万ユーザに向けて〜Aurora 編〜
JPAの基礎と現場で役立つ開発Tips
RDRA DDD Agile
reduxのstate設計の話
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
こわくない!Azure 運用管理
これからのネイティブアプリにおけるOpenID Connectの活用
ソフトウェアテスト入門
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
View customize pluginを使いこなす
Ad

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

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

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