エンタープライズ開発でのselenium活用事例

24
エンタープライズ開発での Selenium活用事例 2014 Jan.18 第1回 日本Seleniumユーザーコミュニティ勉強会 Lightning Talks

Upload: isaac-otao

Post on 08-Jun-2015

3.224 views

Category:

Technology


1 download

DESCRIPTION

第1回 日本Seleniumユーザーコミュニティ 勉強会LT

TRANSCRIPT

Page 1: エンタープライズ開発でのSelenium活用事例

エンタープライズ開発での

Selenium活用事例

2014 Jan.18

第1回 日本Seleniumユーザーコミュニティ勉強会

Lightning Talks

Page 2: エンタープライズ開発でのSelenium活用事例

自己紹介 self-introduction

大田尾 一作

isaac otao

Since 2006

Selenium 0.7

Page 3: エンタープライズ開発でのSelenium活用事例

本家Wiki wiki.openqa.org

日本語訳Contribute

Page 4: エンタープライズ開発でのSelenium活用事例

CodeZine/翔泳社 webzine

記事執筆

Page 5: エンタープライズ開発でのSelenium活用事例

Now, 2013

Selenium2記事執筆

Page 6: エンタープライズ開発でのSelenium活用事例

Agenda

1. Selenium活用の工夫

2. エンタープライズ事例

Page 7: エンタープライズ開発でのSelenium活用事例

Seleniumの大変さ Difficulties in Selenium

テストコード作成・保守に時間がかかる

初回テストの工数

ソース変更時の対応

Page 8: エンタープライズ開発でのSelenium活用事例

現場での工夫 Customize Selenium at Project

データ駆動テスト(入力&検証)

ScreenShotを1行で

DB初期化/エクスポート

など

Page 9: エンタープライズ開発でのSelenium活用事例

データ駆動テスト Data Driven Test

Excelを利用し、複数のケースの入力・検証

11

画面項目 (ツールが自動で画面から取得)

入力データ (テスターが

入力)

Page 10: エンタープライズ開発でのSelenium活用事例

データ駆動テスト Data Driven Test

1行で複数ケースを実施

正常系、境界値、etc

12

Page 11: エンタープライズ開発でのSelenium活用事例

ScreenShotを1行で ScreenShot wrapper method

13

13

<素のSeleniumの場合>

File scrFile = ((TakesScreenshot)driver).

getScreenshotAs(OutputType.FILE); FileUtils.copyFile(scrFile, new File("c:¥¥ProjectA¥¥IE8¥¥ 検索結果画面.png"));

毎回フォルダやファイル名を指定するのは大変!

Page 12: エンタープライズ開発でのSelenium活用事例

ScreenShotを1行で ScreenShot wrapper method

14

14

たった一行書くだけで自動でフォルダをわけて保存できる!

<ラッパーメソッドを作成>

TestUtil.saveScreenshot(driver, “ 検索結果画面");

Page 13: エンタープライズ開発でのSelenium活用事例

社内ライブラリ化 customized Selenium in our corp.

現場での工夫・カスタマイズを集結し、社内ライブラリ化

手順書等も作成して社内展開

Page 14: エンタープライズ開発でのSelenium活用事例

ここ1-2年の社内事例 Enterprise Case in 2012-2013

金融グループ会社イントラ更改

ECサイト向け決済サービス基盤

小売業向け商品管理・販売システム

電子マネー交換システム

など10件弱(+検討中)

Page 15: エンタープライズ開発でのSelenium活用事例

事例①クレジット入会システム Case1: Credit admission system

クレジットカードの申込情報を入力する画面

PC4000項目のうち3000項目、携帯4000項目のうち3000項目に適用

画面操作とキャプチャ取得を自動化、検証は目視

Page 16: エンタープライズ開発でのSelenium活用事例

事例①クレジット入会システム Case1: Credit admission system

<結果>

PC向け(IE7,8,9)は同じテストコードで実施できた

テストコードを書くのに2人月

手動で実施するよりも工数がかかり、工数削減には至らず

品質はある程度確保できた

Page 17: エンタープライズ開発でのSelenium活用事例

事例①クレジット入会システム Case1: Credit admission system

<課題>

IEで実施時、1回目だけなぜか項目が見つからない例外発生(未解決のまま運用でカバー)

携帯用はPC用から書き換え必要

Android対応途上(まだ使えるレベルではない)

Page 18: エンタープライズ開発でのSelenium活用事例

事例②カード加盟店管理システム Case2: member store management system

カード加盟店申込のワークフローシステム

開発FWはintra-mart利用

オフショア開発の受入れにSeleniumを適用

エビデンス取得として画面キャプチャ機能を利用

Page 19: エンタープライズ開発でのSelenium活用事例

事例②カード加盟店管理システム Case2: member store management system

<結果>

受入試験を平均3回実施し、非適用時予測値に対して約40%の工数削減

JUnit経験者が多数いたこと、Javaスキルが高い担当者が実施したことにより効果が出た

Page 20: エンタープライズ開発でのSelenium活用事例

事例②カード加盟店管理システム Case2: member store management system

<課題>

Popup機能との連動が不安定(最終的には実施できたが)

ログイン/ログアウトによるセッション制御が難しい

SSO環境では検証できない

Page 21: エンタープライズ開発でのSelenium活用事例

適用見送り事例 inapplicable case

某大手ERP ERPツールが生成するHTMLは「inputタグにname属性が無い」「id属性がアクセスの度に動的に変動」→カスタマイズ必要

期間期間が短く、カスタマイズの時間が取れないため見送り

Page 22: エンタープライズ開発でのSelenium活用事例

事例よりまとめ consideration at cases

1回の実施では30%~2倍以上の工数がかかる。

長期的継続利用で回収を見込む

仕様変更時などに、デグレを発見できた。

人的ミスの排除、ツール化による試験実施方法の属人性排除

Page 23: エンタープライズ開発でのSelenium活用事例

本日のまとめ in conclusion

Web系企業だけでなくエンタープライズ企業システムでもSelenium

全てを適用しようとせず、部分適用から

Page 24: エンタープライズ開発でのSelenium活用事例

ご静聴ありがとうございました Thank you!