エンタープライズ開発でのselenium活用事例
DESCRIPTION
第1回 日本Seleniumユーザーコミュニティ 勉強会LTTRANSCRIPT
エンタープライズ開発での
Selenium活用事例
2014 Jan.18
第1回 日本Seleniumユーザーコミュニティ勉強会
Lightning Talks
自己紹介 self-introduction
大田尾 一作
isaac otao
Since 2006
Selenium 0.7
本家Wiki wiki.openqa.org
日本語訳Contribute
CodeZine/翔泳社 webzine
記事執筆
Now, 2013
Selenium2記事執筆
Agenda
1. Selenium活用の工夫
2. エンタープライズ事例
Seleniumの大変さ Difficulties in Selenium
テストコード作成・保守に時間がかかる
初回テストの工数
ソース変更時の対応
現場での工夫 Customize Selenium at Project
データ駆動テスト(入力&検証)
ScreenShotを1行で
DB初期化/エクスポート
など
データ駆動テスト Data Driven Test
Excelを利用し、複数のケースの入力・検証
11
画面項目 (ツールが自動で画面から取得)
入力データ (テスターが
入力)
データ駆動テスト Data Driven Test
1行で複数ケースを実施
正常系、境界値、etc
12
ScreenShotを1行で ScreenShot wrapper method
13
13
<素のSeleniumの場合>
File scrFile = ((TakesScreenshot)driver).
getScreenshotAs(OutputType.FILE); FileUtils.copyFile(scrFile, new File("c:¥¥ProjectA¥¥IE8¥¥ 検索結果画面.png"));
毎回フォルダやファイル名を指定するのは大変!
ScreenShotを1行で ScreenShot wrapper method
14
14
たった一行書くだけで自動でフォルダをわけて保存できる!
<ラッパーメソッドを作成>
TestUtil.saveScreenshot(driver, “ 検索結果画面");
社内ライブラリ化 customized Selenium in our corp.
現場での工夫・カスタマイズを集結し、社内ライブラリ化
手順書等も作成して社内展開
ここ1-2年の社内事例 Enterprise Case in 2012-2013
金融グループ会社イントラ更改
ECサイト向け決済サービス基盤
小売業向け商品管理・販売システム
電子マネー交換システム
など10件弱(+検討中)
事例①クレジット入会システム Case1: Credit admission system
クレジットカードの申込情報を入力する画面
PC4000項目のうち3000項目、携帯4000項目のうち3000項目に適用
画面操作とキャプチャ取得を自動化、検証は目視
事例①クレジット入会システム Case1: Credit admission system
<結果>
PC向け(IE7,8,9)は同じテストコードで実施できた
テストコードを書くのに2人月
手動で実施するよりも工数がかかり、工数削減には至らず
品質はある程度確保できた
事例①クレジット入会システム Case1: Credit admission system
<課題>
IEで実施時、1回目だけなぜか項目が見つからない例外発生(未解決のまま運用でカバー)
携帯用はPC用から書き換え必要
Android対応途上(まだ使えるレベルではない)
事例②カード加盟店管理システム Case2: member store management system
カード加盟店申込のワークフローシステム
開発FWはintra-mart利用
オフショア開発の受入れにSeleniumを適用
エビデンス取得として画面キャプチャ機能を利用
事例②カード加盟店管理システム Case2: member store management system
<結果>
受入試験を平均3回実施し、非適用時予測値に対して約40%の工数削減
JUnit経験者が多数いたこと、Javaスキルが高い担当者が実施したことにより効果が出た
事例②カード加盟店管理システム Case2: member store management system
<課題>
Popup機能との連動が不安定(最終的には実施できたが)
ログイン/ログアウトによるセッション制御が難しい
SSO環境では検証できない
適用見送り事例 inapplicable case
某大手ERP ERPツールが生成するHTMLは「inputタグにname属性が無い」「id属性がアクセスの度に動的に変動」→カスタマイズ必要
期間期間が短く、カスタマイズの時間が取れないため見送り
事例よりまとめ consideration at cases
1回の実施では30%~2倍以上の工数がかかる。
長期的継続利用で回収を見込む
仕様変更時などに、デグレを発見できた。
人的ミスの排除、ツール化による試験実施方法の属人性排除
本日のまとめ in conclusion
Web系企業だけでなくエンタープライズ企業システムでもSelenium
全てを適用しようとせず、部分適用から
ご静聴ありがとうございました Thank you!