SlideShare a Scribd company logo
1 of 38
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
テスト自動化システム 成長記
-継続的に運用する為に何をしてきたか?-
株式会社ヒューマンクレスト 技術推進本部
浅黄 友隆 & 山口 真央
2017/03/19
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
アジェンダ
 誕生 2013年
 成長 2014年〜2016年
 現在 2017年
どのような対応をしてきたのか?
どのようなアーキテクチャなのか?
どのようなテストを自動化しているのか?
2
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
問題点
 自動テストを継続していく時の障害
コスト
テストコード(スクリプト)のメンテナンス
テスト結果の分析
動かないときの分析
環境の維持
OSのアップデートへの追従
OSSのアップデートの追従
人に依存
専任者がいない
3
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
テスト自動化サービス(Lynx)とは
 自動テストを実施する上で必要な事を全て代行
 テスト対象システム(SUT)の「外側」にテスト自動化システムを構築
テスト実施環境構築(ブラウザ、スマホ)
自動テストの設計
テストスクリプト作成
テストの実行
結果通知・報告
スクリプトのメンテナンス
環境の維持、運用
テスト対象
システム
(SUT)
4
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
5
 自動操作:Selenium WebDriver
 スクリプト:Java → jar
 自動起動:WindowsスケジューラでBatch起動
 エラー通知:メールでJavaのエラーログ送信
SUT
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
6
GUI Tests
Acceptance Tests
(API Layer)
Unit Tests
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
 2013/3
// 1. ログイン
driver.findElement(By.id("account")).sendKeys("AdminUser");
driver.findElement(By.id("pass")).sendKeys("hcpassword");
driver.findElement(By.cssSelector(".btn.login")).click();
String userActual = driver.findElement(By.cssSelector(".loginAccount")).getText();
assertThat(userActual , is("AdminUser"));
// ◯◯操作
driver.findElement(By.id("input1")).sendKeys("XXXXXXXX ");
driver.findElement(By.id("input2")).sendKeys("YYYYYYYY");
driver.findElement(By.id("btn1")).click;
// ◯◯操作2
driver.findElement(By.id("input3")).sendKeys("AAAAAAAA");
driver.findElement(By.id("input4")).sendKeys("BBBBBBBB");
driver.findElement(By.id("btn2")).click;
7
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
8
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
9
GUI Tests
Acceptance Tests
(API Layer)
Unit Tests
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
 2013/5 毎回重複するコーディングが多い
↓
共通関数化
テンプレート化
↓
ソースが複雑になる
↓
メンテナンスは私しかできない!
10
顧客が増え
た
スクリプトが増えた
バージョンアップが頻
繁
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
 2013/8 見直し
// 1. ログイン
driver.findElement(By.id("account")).sendKeys(”AdminUser");
driver.findElement(By.id("pass")).sendKeys("hcpassword");
driver.findElement(By.cssSelector(".btn.login")).click();
String userActual = driver.findElement(By.cssSelector(".loginAccount")).getText();
assertThat(userActual , is(”AdminUser"));
// ◯◯操作
driver.findElement(By.id(”input1")).sendKeys(”XXXXXXXX ");
driver.findElement(By.id(”input2")).sendKeys(”YYYYYYYY");
driver.findElement(By.id(”btn1")).click;
// ◯◯操作2
driver.findElement(By.id(”input3")).sendKeys(”AAAAAAAA");
driver.findElement(By.id(”input4")).sendKeys(”BBBBBBBB");
driver.findElement(By.id(”btn2")).click;
毎回同じ!箇所
パターンがある
もう一度 ソースから検討してみた
11
都度違う
エクセル
自動化
エンジン
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
seq keyword targetKind targetUniqueID inputValue Expect Capture Sleep
1 URL www.xxxxxx.jp/login
2 Sendkey id account AdminUser
3 Senkey id pass hcpassword
4 Click css .btn.login 1000
5 Check css .loginAccount AdminUser TRUE
12
項番 設定項目 必須 値
1 GridServer ○ XXX.XXX.XXX.XXX:4444
2 OS
3 Browser ○ safari
4 version 7.0
5 通知有無 ○ TRUE
6 通知用メールアドレス xxxxxxxxxxx@humancrest.co.jp
7 通知先メールアドレス xxxxxxxxx@humancrest.co.jp
8 スクリーンショット有無 ○ TRUE
9 保存場所 ○ c:tempcapture
10 タイムアウト値 0
Project
├─自動テストエンジン.jar
├─Scenario.xlsx
│ ├─ Scenario
│ └─ Config
└─Update.vbs
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
誕生
13
フロー図
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 対応一覧
14
2014年 2015年 2016年
OSS Ver Up
SUT Ver Up
報告書の廃止
Dashboard
Gradle
レスポンスタイム
測定
DDT
Image
AWS環境
AWSテスト実行
Git
Grid
オフショア
Config独立
DB
Action
結果送信
再起動
Screen
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 対応一覧
15
2014年 2015年 2016年
OSS Ver Up
SUT Ver Up
報告書の廃止
Dashboard
Gradle
レスポンスタイム
測定
DDT
Image
AWS環境
AWSテスト実行
Git
Grid
オフショア
DB
Action
結果送信
再起動
Screen
Config独立
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
Project
├─自動テストエンジン.jar
├─Scenario1.xlsx
│ ├─ Scenario
│ └─ Config
├─Scenario2.xlsx
│ ├─ Scenario
│ └─ Config
└─Update.vbs
成長
 Lynx構成(改善前)
16
seq keyword targetKind targetUniqueID inputValue Expect Capture Sleep
1 URL www.humancrest.co.jp
2 Sendkey id account AdminUser
3 Senkey id pass hcpassword
4 Click css .btn.login 1000
5 Check css .loginAccount AdminUser TRUE
項番 設定項目 必須 値
1 GridServer ○ XXX.XXX.XXX.XXX:4444
2 OS
3 Browser ○ safari
4 version 7.0
5 通知有無 ○ TRUE
6 通知用メールアドレス XXXXX@humancrest.co.jp
7 通知先メールアドレス XXXXX@humancrest.co.jp
8 スクリーンショット有無 ○ TRUE
9 保存場所 ○ c:tempcapture
10 タイムアウト値 0
同じ処理を共通化したい
実行シナリオ・設定
を自由に変えたい
スクリプトは作成できるようになったけど・・・
メンテナンスする時間は変わらない
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 Lynx構成(改善後)
Project
├─Action
│ └─Action.xlsx
| ├─Actionシート
| └─Dataシート
├─Config
│ ├─Config.xlsx
│ └─Parameter.xlsx
├─Scenario
│ ├─Scenario1.xlsx
│ └─Scenario2.xlsx
└─Screen
└─Screen.xlsx
17
seq keyword Target
Kind
Target
UniqueID
inputValue Expect DataFile
Line
DataFile Count Parameter
Line
Capture Sleep
1 URL www.xxxxxx.jp/login
2 ActionUnit Login
3 Click scr ログインボタン TRUE 2000
• 共通の処理をひとつにまとめることができるようになった
• ActionをScenarioからCallできるようにした
• ページオブジェクトの導入
• IdやcssSelectorを一箇所にまとめた(Screen)
• Configが単独で指定できるようになった
• Parameterを使用できるように列を追加
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 対応一覧
18
2014年 2015年 2016年
OSS Ver Up
SUT Ver Up
報告書の廃止
Dashboard
Gradle
レスポンスタイム
測定
DDT
Image
AWS環境
AWSテスト実行
Git
Grid
オフショア
DB
Action
結果送信
再起動
Screen
Config独立
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 DDT(Data Driven Testing)への対応
19
No Data1 Data2 ・・・ DataZZ
1 X-XXX01@humancrest.co.jp test001 ・・・ 山田太郎
2 X-XXX02@humancrest.co.jp test002 ・・・ 山田次郎
: : : : :
10 X-XXXZZ@humancrest.co.jp testzzz ・・・ 山田Z郎
seq keyword Target
Kind
Target
UniqueID
inputValue Expect DataFile
Line
DataFile
Count
Parameter
Line
Captur
e
Slee
p
1 URL www.xxxxxx.jp/login
2 ActionUnit Login
10
TRUE 2000
何のデータを何回繰り返すかを
指定して使えるようにした
• DDTの自動テストへの対応
• スクリプト作成・メンテナンス工数の削減
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 対応一覧
20
2014年 2015年 2016年
OSS Ver Up
SUT Ver Up
報告書の廃止
Dashboard
Gradle
レスポンスタイム
測定
DDT
Image
AWS環境
AWSテスト実行
Git
Grid
オフショア
DB
Action
結果送信
再起動
Screen
Config独立
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 テスト結果送信(改善前)
メールでJavaのエラーログを送信
21
件
名
Lynx-XXX_XXX_ie(8)2013-10-03_175030
内
容
https://XXX.XXX.XXX/XXXX
org.openqa.selenium.ElementNotVisibleException: 操作対象(id=XXXX)が表示領域にない為、
操作できません。
Build info: version: '2.35.0', revision: 'c916b9d', time: '2013-08-12 15:42:01’
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.7.5', java.version:
'1.7.0_25’
Driver info: driver.version: unknown
at jp.co.humancrest.santacruz.otp.MainLoop.RunScn(MainLoop.java:143)
at jp.co.humancrest.santacruz.otp.AptKeyword.main(AptKeyword.java:102)
• お客様には不要な内容
• 作った人しか分からない
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 テスト結果送信(改善後)
エラーメールの送信内容
メールを見て分かる内容に修正
文章だけではなく、操作前後のスクリーンショットを添付
(スクリーンショットの有無はConfigで設定可能)
チャットツールへの結果送信
Chatwork
Slack
テスト成功通知を送信
ユーザの要望に合わせたエラーを通知
エラー通知からの結果分析精度向上
22
件
名
Lynx-XXX__XXX_ie(11)2017-02-28_085017
内
容
TestNO:1-15-
SEQ:75
処理内容:XXXボタンをクリックする
エラー原因:(err_0030)操作対象(id=XXXX)が表示領域にない為、操作できません。
発生時刻:2017/03/08 07:26:18
URL:https://XXX.XXX.XXX/XXXX
テストが成功した時も通
知が欲しい
メールではなく、チャッ
トに通知が欲しい
Before After
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 対応一覧
23
2014年 2015年 2016年
OSS Ver Up
SUT Ver Up
報告書の廃止
Dashboard
Gradle
レスポンスタイム
測定
DDT
Image
AWS環境
AWSテスト実行
Git
Grid
オフショア
DB
Action
結果送信
再起動
Screen
Config独立
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 レスポンスタイムの測定
シナリオ全体の実行時間を測定
操作時間を測定
24
特定の処理において、
日々のレスポンスタイム
が測りたい
Transaction 総処理時間(ms) 実処理時間(ms)
トップページ 16000 6900
ログイン 12800 9800
Transaction 総処理時間(ms) 実処理時間(ms)
トップページ 20000 7000
ログイン 11100 8000
:
:
csvファイルに時間を出力
毎日の結果が蓄積される 集計・報告書提出
いつサイトが遅かったかが分かるようになった
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 対応一覧
25
2014年 2015年 2016年
OSS Ver Up
SUT Ver Up
報告書の廃止
Dashboard
Gradle
レスポンスタイム
測定
DDT
Image
AWS環境
AWSテスト実行
Git
Grid
オフショア
DB
Action
結果送信
再起動
Screen
Config独立
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 報告書の廃止(廃止前)
毎月報告書を作成し、提出
1案件あたり、作成に2日程度かかる
エラーメール以外に結果を知る方法がない
26
作成時間はかかるけど、
月の最後にしか集計結果
が分からない
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 Dashboardの作成・報告書の廃止
Web上でテスト結果の確認ができるようになった
報告書作成時間を他のことに使えるようになった
(当時、1人で4案件の報告書を作成⇛月あたり、約1週間分の時間ができた!)
27
まだまだ改良中!!!
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 対応一覧
28
2014年 2015年 2016年
OSS Ver Up
SUT Ver Up
報告書の廃止
Dashboard
Gradle
レスポンスタイム
測定
DDT
Image
AWS環境
AWSテスト実行
Git
Grid
オフショア
DB
Action
結果送信
再起動
Screen
Config独立
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
成長
 オフショアの活用 ベトナム ダナン
29
• テスト結果の分析
• スクリプト作成・保守(10名)
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
現在
 対応一覧
30
2014年 2015年 2016年
OSS Ver Up
SUT Ver Up
報告書の廃止
Dashboard
Gradle
レスポンスタイム
測定
DDT
Image
AWS環境
AWSテスト実行
Git
Grid
オフショア
DB
Action
結果送信
再起動
Screen
Config独立
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
現在
31
WorkSpaces
SeleniumGrid Node
(XXX.XXX.XXX.XXX:6666)
SeleniumGrid Hub
(XXX.XXX.XXX.XXX:4444)
EC2
• Windows Server 2008 R2 Datacenter 64bit
• Intel Xeon CPU E5-2670 v2 @ 2.50 GHz
• RAM 2.00 GB
• EIP
• PrivateIP
• Amazon Linux
• EIP: なし
• PublicIP : XXX.XXX.XXX.XXX
• PrivateIP :
XXX.XXX.XXX.XXX
Availability Zone
ap-northeast-1a
Availability Zone
ap-northeast-1c
Strage
(Lynxrun本体と
Scenario)
Volumeを
マウント
Dirを共有
Lynx本体とシ
ナリオをアップ
ロード
JenkinsのJob
やConfig等の
バックアップ
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
現在
 フロー図
32
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
現在
33
GUI Tests
Acceptance Tests
(API Layer)
Unit Tests
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
SUT
SUT
現在(全体アーキテクチャ)
34
:
:
Lynxのソース
Excel管理
LynxDashboard
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
現在の規模感
 対応キーワード 43種類(クリック、入力、マウスオーバー、、)
 テストステップ数 8万ステップ/日
 エラー発生数 10件以上/日
 バグ(デグレ)発見数 約1〜2件/月
35
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
まとめ
36
要求
必須
内部 外部
オフショア
Config
Grid
AWS環境
DB
Gradle
結果送信
AWSテスト実行
Dashboard
Image
Git
再起動
Action
DDT
SUT Ver Up
時間測定
OSS Ver Up
報告書の廃止
Screen
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
今後の課題
 スマートフォンのテストをAWS上へ移行
 画像処理の改善
 Dashboardの改善
 Lynxのオープンソース化
37
Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved.
ご清聴ありがとうございました。
38

More Related Content

What's hot

#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプラインkyon mm
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際Satsuki Urayama
 
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンスNozomi Ito
 
キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015Toru Koido
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介Shinsuke Matsuki
 
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression TestKazuyuki Tsuzisaki
 
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはGUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはNozomi Ito
 
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015Yahoo!デベロッパーネットワーク
 
Automation test.ssf alpha
Automation test.ssf alphaAutomation test.ssf alpha
Automation test.ssf alpharyuji koyama
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?Teppei Sato
 
EMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現するEMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現するJYERUEY
 
継続的E2Eテスト
継続的E2Eテスト継続的E2Eテスト
継続的E2Eテスト友隆 浅黄
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようKoji Hasegawa
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料Masatoshi Itoh
 
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)H Iseri
 
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013Kinji Akemine
 
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac20141時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014Kazuhiro Suzuki
 
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentechKotaro Ogino
 

What's hot (20)

#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際
 
Stac2014 石川
Stac2014 石川Stac2014 石川
Stac2014 石川
 
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
 
キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
 
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Test
 
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはGUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
 
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
 
Automation test.ssf alpha
Automation test.ssf alphaAutomation test.ssf alpha
Automation test.ssf alpha
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
 
EMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現するEMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現する
 
継続的E2Eテスト
継続的E2Eテスト継続的E2Eテスト
継続的E2Eテスト
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめよう
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
 
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
 
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
 
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac20141時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014
 
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
 
Ai for software testing
Ai for software testingAi for software testing
Ai for software testing
 

Viewers also liked

手動テストからの移行大作戦
手動テストからの移行大作戦手動テストからの移行大作戦
手動テストからの移行大作戦Satsuki Urayama
 
キーワード駆動テストチュートリアルハンズアウト.03.06
キーワード駆動テストチュートリアルハンズアウト.03.06キーワード駆動テストチュートリアルハンズアウト.03.06
キーワード駆動テストチュートリアルハンズアウト.03.06Toru Koido
 
テスト自動化のパターンと実践
テスト自動化のパターンと実践テスト自動化のパターンと実践
テスト自動化のパターンと実践Hiroshi Maekawa
 
20151213 system test automation conference
20151213 system test automation conference20151213 system test automation conference
20151213 system test automation conferenceKazuaki Matsuo
 
事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイントHiroshi Maekawa
 
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-Kazuhito Miura
 
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015 「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015 Kazuhito Miura
 
STAC 2015 自動家は見た ~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャSTAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た ~自動化の現場の真実~ SIDE:マネージャNoriyuki Mizuno
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローques_staff
 
アジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaアジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaques_staff
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析崇 山﨑
 

Viewers also liked (12)

Stac2013 開会挨拶
Stac2013 開会挨拶Stac2013 開会挨拶
Stac2013 開会挨拶
 
手動テストからの移行大作戦
手動テストからの移行大作戦手動テストからの移行大作戦
手動テストからの移行大作戦
 
キーワード駆動テストチュートリアルハンズアウト.03.06
キーワード駆動テストチュートリアルハンズアウト.03.06キーワード駆動テストチュートリアルハンズアウト.03.06
キーワード駆動テストチュートリアルハンズアウト.03.06
 
テスト自動化のパターンと実践
テスト自動化のパターンと実践テスト自動化のパターンと実践
テスト自動化のパターンと実践
 
20151213 system test automation conference
20151213 system test automation conference20151213 system test automation conference
20151213 system test automation conference
 
事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント
 
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
 
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015 「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
 
STAC 2015 自動家は見た ~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャSTAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た ~自動化の現場の真実~ SIDE:マネージャ
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フロー
 
アジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaアジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqa
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析
 

Similar to 【STAC2017】テスト自動化システム 成長記

サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから真吾 吉田
 
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかDeveloper's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかTetsuo Ajima
 
サービスリリースから安定軌道に乗せるまでに行った開発施策
サービスリリースから安定軌道に乗せるまでに行った開発施策サービスリリースから安定軌道に乗せるまでに行った開発施策
サービスリリースから安定軌道に乗せるまでに行った開発施策Keiichi Hagiwara
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCIToshiyuki Hirata
 
Cephベンチマーク kvm
Cephベンチマーク kvmCephベンチマーク kvm
Cephベンチマーク kvmToshimi Kawabata
 
Openstack ceph 20171115 vtj
Openstack ceph 20171115 vtjOpenstack ceph 20171115 vtj
Openstack ceph 20171115 vtjTakehiro Kudou
 
Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例OSSラボ株式会社
 
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返りAmazon Web Services Japan
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1近藤 繁延
 
20170704 Pitaliumの新機能
20170704 Pitaliumの新機能20170704 Pitaliumの新機能
20170704 Pitaliumの新機能Osamu Shimoda
 
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」Rescale Japan株式会社
 
HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化Osamu Shimoda
 
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とはたった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とはRina Owaki
 
2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介CASAREAL, Inc.
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -Toshiyuki Hirata
 
超高速処理とスケーラビリティを両立するApache GEODE
超高速処理とスケーラビリティを両立するApache GEODE超高速処理とスケーラビリティを両立するApache GEODE
超高速処理とスケーラビリティを両立するApache GEODEMasaki Yamakawa
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch AgentNoritaka Sekiyama
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
OpenStack on OpenStack with CI
OpenStack on OpenStack with CIOpenStack on OpenStack with CI
OpenStack on OpenStack with CIkanabuchi
 

Similar to 【STAC2017】テスト自動化システム 成長記 (20)

サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
 
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかDeveloper's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
 
サービスリリースから安定軌道に乗せるまでに行った開発施策
サービスリリースから安定軌道に乗せるまでに行った開発施策サービスリリースから安定軌道に乗せるまでに行った開発施策
サービスリリースから安定軌道に乗せるまでに行った開発施策
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 
Cephベンチマーク kvm
Cephベンチマーク kvmCephベンチマーク kvm
Cephベンチマーク kvm
 
Openstack ceph 20171115 vtj
Openstack ceph 20171115 vtjOpenstack ceph 20171115 vtj
Openstack ceph 20171115 vtj
 
Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例
 
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
 
20170704 Pitaliumの新機能
20170704 Pitaliumの新機能20170704 Pitaliumの新機能
20170704 Pitaliumの新機能
 
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
 
HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化
 
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とはたった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
 
2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
超高速処理とスケーラビリティを両立するApache GEODE
超高速処理とスケーラビリティを両立するApache GEODE超高速処理とスケーラビリティを両立するApache GEODE
超高速処理とスケーラビリティを両立するApache GEODE
 
Reinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdfReinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdf
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch Agent
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
OpenStack on OpenStack with CI
OpenStack on OpenStack with CIOpenStack on OpenStack with CI
OpenStack on OpenStack with CI
 

Recently uploaded

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

【STAC2017】テスト自動化システム 成長記

  • 1. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. テスト自動化システム 成長記 -継続的に運用する為に何をしてきたか?- 株式会社ヒューマンクレスト 技術推進本部 浅黄 友隆 & 山口 真央 2017/03/19
  • 2. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. アジェンダ  誕生 2013年  成長 2014年〜2016年  現在 2017年 どのような対応をしてきたのか? どのようなアーキテクチャなのか? どのようなテストを自動化しているのか? 2
  • 3. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 問題点  自動テストを継続していく時の障害 コスト テストコード(スクリプト)のメンテナンス テスト結果の分析 動かないときの分析 環境の維持 OSのアップデートへの追従 OSSのアップデートの追従 人に依存 専任者がいない 3
  • 4. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. テスト自動化サービス(Lynx)とは  自動テストを実施する上で必要な事を全て代行  テスト対象システム(SUT)の「外側」にテスト自動化システムを構築 テスト実施環境構築(ブラウザ、スマホ) 自動テストの設計 テストスクリプト作成 テストの実行 結果通知・報告 スクリプトのメンテナンス 環境の維持、運用 テスト対象 システム (SUT) 4
  • 5. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生 5  自動操作:Selenium WebDriver  スクリプト:Java → jar  自動起動:WindowsスケジューラでBatch起動  エラー通知:メールでJavaのエラーログ送信 SUT
  • 6. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生 6 GUI Tests Acceptance Tests (API Layer) Unit Tests
  • 7. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生  2013/3 // 1. ログイン driver.findElement(By.id("account")).sendKeys("AdminUser"); driver.findElement(By.id("pass")).sendKeys("hcpassword"); driver.findElement(By.cssSelector(".btn.login")).click(); String userActual = driver.findElement(By.cssSelector(".loginAccount")).getText(); assertThat(userActual , is("AdminUser")); // ◯◯操作 driver.findElement(By.id("input1")).sendKeys("XXXXXXXX "); driver.findElement(By.id("input2")).sendKeys("YYYYYYYY"); driver.findElement(By.id("btn1")).click; // ◯◯操作2 driver.findElement(By.id("input3")).sendKeys("AAAAAAAA"); driver.findElement(By.id("input4")).sendKeys("BBBBBBBB"); driver.findElement(By.id("btn2")).click; 7
  • 8. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生 8
  • 9. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生 9 GUI Tests Acceptance Tests (API Layer) Unit Tests
  • 10. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生  2013/5 毎回重複するコーディングが多い ↓ 共通関数化 テンプレート化 ↓ ソースが複雑になる ↓ メンテナンスは私しかできない! 10 顧客が増え た スクリプトが増えた バージョンアップが頻 繁
  • 11. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生  2013/8 見直し // 1. ログイン driver.findElement(By.id("account")).sendKeys(”AdminUser"); driver.findElement(By.id("pass")).sendKeys("hcpassword"); driver.findElement(By.cssSelector(".btn.login")).click(); String userActual = driver.findElement(By.cssSelector(".loginAccount")).getText(); assertThat(userActual , is(”AdminUser")); // ◯◯操作 driver.findElement(By.id(”input1")).sendKeys(”XXXXXXXX "); driver.findElement(By.id(”input2")).sendKeys(”YYYYYYYY"); driver.findElement(By.id(”btn1")).click; // ◯◯操作2 driver.findElement(By.id(”input3")).sendKeys(”AAAAAAAA"); driver.findElement(By.id(”input4")).sendKeys(”BBBBBBBB"); driver.findElement(By.id(”btn2")).click; 毎回同じ!箇所 パターンがある もう一度 ソースから検討してみた 11 都度違う エクセル 自動化 エンジン
  • 12. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生 seq keyword targetKind targetUniqueID inputValue Expect Capture Sleep 1 URL www.xxxxxx.jp/login 2 Sendkey id account AdminUser 3 Senkey id pass hcpassword 4 Click css .btn.login 1000 5 Check css .loginAccount AdminUser TRUE 12 項番 設定項目 必須 値 1 GridServer ○ XXX.XXX.XXX.XXX:4444 2 OS 3 Browser ○ safari 4 version 7.0 5 通知有無 ○ TRUE 6 通知用メールアドレス xxxxxxxxxxx@humancrest.co.jp 7 通知先メールアドレス xxxxxxxxx@humancrest.co.jp 8 スクリーンショット有無 ○ TRUE 9 保存場所 ○ c:tempcapture 10 タイムアウト値 0 Project ├─自動テストエンジン.jar ├─Scenario.xlsx │ ├─ Scenario │ └─ Config └─Update.vbs
  • 13. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 誕生 13 フロー図
  • 14. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  対応一覧 14 2014年 2015年 2016年 OSS Ver Up SUT Ver Up 報告書の廃止 Dashboard Gradle レスポンスタイム 測定 DDT Image AWS環境 AWSテスト実行 Git Grid オフショア Config独立 DB Action 結果送信 再起動 Screen
  • 15. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  対応一覧 15 2014年 2015年 2016年 OSS Ver Up SUT Ver Up 報告書の廃止 Dashboard Gradle レスポンスタイム 測定 DDT Image AWS環境 AWSテスト実行 Git Grid オフショア DB Action 結果送信 再起動 Screen Config独立
  • 16. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. Project ├─自動テストエンジン.jar ├─Scenario1.xlsx │ ├─ Scenario │ └─ Config ├─Scenario2.xlsx │ ├─ Scenario │ └─ Config └─Update.vbs 成長  Lynx構成(改善前) 16 seq keyword targetKind targetUniqueID inputValue Expect Capture Sleep 1 URL www.humancrest.co.jp 2 Sendkey id account AdminUser 3 Senkey id pass hcpassword 4 Click css .btn.login 1000 5 Check css .loginAccount AdminUser TRUE 項番 設定項目 必須 値 1 GridServer ○ XXX.XXX.XXX.XXX:4444 2 OS 3 Browser ○ safari 4 version 7.0 5 通知有無 ○ TRUE 6 通知用メールアドレス XXXXX@humancrest.co.jp 7 通知先メールアドレス XXXXX@humancrest.co.jp 8 スクリーンショット有無 ○ TRUE 9 保存場所 ○ c:tempcapture 10 タイムアウト値 0 同じ処理を共通化したい 実行シナリオ・設定 を自由に変えたい スクリプトは作成できるようになったけど・・・ メンテナンスする時間は変わらない
  • 17. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  Lynx構成(改善後) Project ├─Action │ └─Action.xlsx | ├─Actionシート | └─Dataシート ├─Config │ ├─Config.xlsx │ └─Parameter.xlsx ├─Scenario │ ├─Scenario1.xlsx │ └─Scenario2.xlsx └─Screen └─Screen.xlsx 17 seq keyword Target Kind Target UniqueID inputValue Expect DataFile Line DataFile Count Parameter Line Capture Sleep 1 URL www.xxxxxx.jp/login 2 ActionUnit Login 3 Click scr ログインボタン TRUE 2000 • 共通の処理をひとつにまとめることができるようになった • ActionをScenarioからCallできるようにした • ページオブジェクトの導入 • IdやcssSelectorを一箇所にまとめた(Screen) • Configが単独で指定できるようになった • Parameterを使用できるように列を追加
  • 18. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  対応一覧 18 2014年 2015年 2016年 OSS Ver Up SUT Ver Up 報告書の廃止 Dashboard Gradle レスポンスタイム 測定 DDT Image AWS環境 AWSテスト実行 Git Grid オフショア DB Action 結果送信 再起動 Screen Config独立
  • 19. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  DDT(Data Driven Testing)への対応 19 No Data1 Data2 ・・・ DataZZ 1 X-XXX01@humancrest.co.jp test001 ・・・ 山田太郎 2 X-XXX02@humancrest.co.jp test002 ・・・ 山田次郎 : : : : : 10 X-XXXZZ@humancrest.co.jp testzzz ・・・ 山田Z郎 seq keyword Target Kind Target UniqueID inputValue Expect DataFile Line DataFile Count Parameter Line Captur e Slee p 1 URL www.xxxxxx.jp/login 2 ActionUnit Login 10 TRUE 2000 何のデータを何回繰り返すかを 指定して使えるようにした • DDTの自動テストへの対応 • スクリプト作成・メンテナンス工数の削減
  • 20. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  対応一覧 20 2014年 2015年 2016年 OSS Ver Up SUT Ver Up 報告書の廃止 Dashboard Gradle レスポンスタイム 測定 DDT Image AWS環境 AWSテスト実行 Git Grid オフショア DB Action 結果送信 再起動 Screen Config独立
  • 21. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  テスト結果送信(改善前) メールでJavaのエラーログを送信 21 件 名 Lynx-XXX_XXX_ie(8)2013-10-03_175030 内 容 https://XXX.XXX.XXX/XXXX org.openqa.selenium.ElementNotVisibleException: 操作対象(id=XXXX)が表示領域にない為、 操作できません。 Build info: version: '2.35.0', revision: 'c916b9d', time: '2013-08-12 15:42:01’ System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.7.5', java.version: '1.7.0_25’ Driver info: driver.version: unknown at jp.co.humancrest.santacruz.otp.MainLoop.RunScn(MainLoop.java:143) at jp.co.humancrest.santacruz.otp.AptKeyword.main(AptKeyword.java:102) • お客様には不要な内容 • 作った人しか分からない
  • 22. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  テスト結果送信(改善後) エラーメールの送信内容 メールを見て分かる内容に修正 文章だけではなく、操作前後のスクリーンショットを添付 (スクリーンショットの有無はConfigで設定可能) チャットツールへの結果送信 Chatwork Slack テスト成功通知を送信 ユーザの要望に合わせたエラーを通知 エラー通知からの結果分析精度向上 22 件 名 Lynx-XXX__XXX_ie(11)2017-02-28_085017 内 容 TestNO:1-15- SEQ:75 処理内容:XXXボタンをクリックする エラー原因:(err_0030)操作対象(id=XXXX)が表示領域にない為、操作できません。 発生時刻:2017/03/08 07:26:18 URL:https://XXX.XXX.XXX/XXXX テストが成功した時も通 知が欲しい メールではなく、チャッ トに通知が欲しい Before After
  • 23. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  対応一覧 23 2014年 2015年 2016年 OSS Ver Up SUT Ver Up 報告書の廃止 Dashboard Gradle レスポンスタイム 測定 DDT Image AWS環境 AWSテスト実行 Git Grid オフショア DB Action 結果送信 再起動 Screen Config独立
  • 24. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  レスポンスタイムの測定 シナリオ全体の実行時間を測定 操作時間を測定 24 特定の処理において、 日々のレスポンスタイム が測りたい Transaction 総処理時間(ms) 実処理時間(ms) トップページ 16000 6900 ログイン 12800 9800 Transaction 総処理時間(ms) 実処理時間(ms) トップページ 20000 7000 ログイン 11100 8000 : : csvファイルに時間を出力 毎日の結果が蓄積される 集計・報告書提出 いつサイトが遅かったかが分かるようになった
  • 25. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  対応一覧 25 2014年 2015年 2016年 OSS Ver Up SUT Ver Up 報告書の廃止 Dashboard Gradle レスポンスタイム 測定 DDT Image AWS環境 AWSテスト実行 Git Grid オフショア DB Action 結果送信 再起動 Screen Config独立
  • 26. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  報告書の廃止(廃止前) 毎月報告書を作成し、提出 1案件あたり、作成に2日程度かかる エラーメール以外に結果を知る方法がない 26 作成時間はかかるけど、 月の最後にしか集計結果 が分からない
  • 27. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  Dashboardの作成・報告書の廃止 Web上でテスト結果の確認ができるようになった 報告書作成時間を他のことに使えるようになった (当時、1人で4案件の報告書を作成⇛月あたり、約1週間分の時間ができた!) 27 まだまだ改良中!!!
  • 28. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  対応一覧 28 2014年 2015年 2016年 OSS Ver Up SUT Ver Up 報告書の廃止 Dashboard Gradle レスポンスタイム 測定 DDT Image AWS環境 AWSテスト実行 Git Grid オフショア DB Action 結果送信 再起動 Screen Config独立
  • 29. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 成長  オフショアの活用 ベトナム ダナン 29 • テスト結果の分析 • スクリプト作成・保守(10名)
  • 30. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 現在  対応一覧 30 2014年 2015年 2016年 OSS Ver Up SUT Ver Up 報告書の廃止 Dashboard Gradle レスポンスタイム 測定 DDT Image AWS環境 AWSテスト実行 Git Grid オフショア DB Action 結果送信 再起動 Screen Config独立
  • 31. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 現在 31 WorkSpaces SeleniumGrid Node (XXX.XXX.XXX.XXX:6666) SeleniumGrid Hub (XXX.XXX.XXX.XXX:4444) EC2 • Windows Server 2008 R2 Datacenter 64bit • Intel Xeon CPU E5-2670 v2 @ 2.50 GHz • RAM 2.00 GB • EIP • PrivateIP • Amazon Linux • EIP: なし • PublicIP : XXX.XXX.XXX.XXX • PrivateIP : XXX.XXX.XXX.XXX Availability Zone ap-northeast-1a Availability Zone ap-northeast-1c Strage (Lynxrun本体と Scenario) Volumeを マウント Dirを共有 Lynx本体とシ ナリオをアップ ロード JenkinsのJob やConfig等の バックアップ
  • 32. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 現在  フロー図 32
  • 33. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 現在 33 GUI Tests Acceptance Tests (API Layer) Unit Tests
  • 34. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. SUT SUT 現在(全体アーキテクチャ) 34 : : Lynxのソース Excel管理 LynxDashboard
  • 35. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 現在の規模感  対応キーワード 43種類(クリック、入力、マウスオーバー、、)  テストステップ数 8万ステップ/日  エラー発生数 10件以上/日  バグ(デグレ)発見数 約1〜2件/月 35
  • 36. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. まとめ 36 要求 必須 内部 外部 オフショア Config Grid AWS環境 DB Gradle 結果送信 AWSテスト実行 Dashboard Image Git 再起動 Action DDT SUT Ver Up 時間測定 OSS Ver Up 報告書の廃止 Screen
  • 37. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. 今後の課題  スマートフォンのテストをAWS上へ移行  画像処理の改善  Dashboardの改善  Lynxのオープンソース化 37
  • 38. Copyright © 2017 HumanCrest Co., Ltd. All Rights Reserved. ご清聴ありがとうございました。 38

Editor's Notes

  1. PCを準備することから、開放する。