テスト自動化プロセスの改善～「明日のテストを楽にする」ための改善ビフォー・アフター～May 31, 2019 (令和元年)
Sadaaki Emura
Leisure Product Dept.
Rakuten, Inc.

@FREEIMAGES

Introduction2

Who am I
Name :

Join in Rakuten :Career :Sadaaki Emura (nickname M)

2007
Embedded engineer (2000-2002)
Web engineer (2002-2015)
Product manager (2015-2016)
QA (2016~)

Role:

Test Automation Engineer Lead

Birthplace :Kanazawa-city

Hobby:

jog , climbing , horse racing
3

LPD organization(Leisure Product Department)

Product ManagerEngineerQA

4

Our team (QA)

Scope :

5 services

Members : 10 + off siteSkill :Mission :QA specialist (almost not programmer)
Quality Assurance
by manual & automation test5

@FREEIMAGES

Presentation scope

6This presentation scope

1. チームの変遷で直面したテスト自動化の課題
2. 課題を改善する活動

7

This presentation scope■Scope• テスト自動化のプロセス• End to End のテスト自動化• リリースサイクルが約2週間の派生開発■ Not Scope• テスト自動化のスクリプティング技術• テスト自動化の環境構築

8

@FREEIMAGES

チームの変遷で直面した課題
9

Small team in 2016 ~• Test Management• Test Analysist• Test Automator• Test Designer• Tester

10

Big organization in 2018 ~ロールベースで作業分離• Test Management• Test Automation Lead

• Test Analysist• Test Designer• Automation Designer• Tester• scripter

Manual Test team / each service

Automation Test team11

What’s happened?

1. テスト自動化の質を維持するための工数増加
2. Manual teamから見て、自動化で何を品質担保しているか不明
3. プロジェクトスピードに自動化が追い付かない12Issue 1st
テスト自動化の質を維持するための工数増加• 担当者のテスト経験が低く、自動化が目的になりがち• レビュー工数、作り直し工数が増加

From Illust AC

13

Issue 2nd

Manual teamから見て、自動化で何を品質担保しているか不明• 自動化がブラックボックス化• テスト自動化で何を品質担保しているか不明

14

Issue 3rd
プロジェクトスピードに自動化が追い付かない• 頻繁な既存機能のUI改修対応• テストサイクルが短い案件が多い• 自動化で期間内に全部担保するのは困難

From Freepik.com

15

@photoAC課題を改善する活動
16

How to improve?

1. テスト自動化の設計見直し
2. テスト自動化のレスポンシビリティ定義

17Improvement point 1st

テスト自動化の設計見直し• Issue 1st テスト自動化の質を維持するための工数増加• Issue 2nd Manual teamから見て、自動化で何を品質担保しているか不明

テスト自動化設計書のテンプレート作成

18

Improvement point 1st
テスト自動化設計書のテンプレート before
例

楽天競馬
大分類

機能

フロー

概要

条件・パラメータ

投票

通常投票

ログイン → 投票ページ→ 馬選択 → 確認 →完了

買い目、買い方、馬をえらんで投票する機能

式別（単勝、～三連単）方式（通常、～フォーメーション）
：

オッズ投票

オッズをソートして、そこから欲しい馬券を選んで投票する機能：

19

Improvement point 1st
テスト自動化設計書のテンプレート after機能
通常投票•••

テスト観点
テスト目的

テスト前提

条件・パラメータ

CI条件正常購入処理
購入方法の網羅
馬券を正しく購入できること• 競馬会員ユーザ• 十分な残高 式別（単勝、～三連単） 方式（通常、～フォーメーション）：

 購入回数上限

一定条件で購入不可

1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認

自動化しないこと
買った馬券の妥当性は確認しない• 競馬会員以外• 残高不足• 発売締切りオッズ投票：

自動化の処理概要

1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
••

会員登録
正常に登録

•

一日一回

1. 楽天ID作成
2. 会員申し込み
20

Improvement point 1st
テスト自動化設計書のテンプレート after機能
通常投票

••
•

テスト観点
テスト目的

テスト前提

条件・パラメータ

CI条件

正常購入処理購入方法の網羅
馬券を正しく購入できること• 競馬会員ユーザ• 十分な残高 式別（単勝、～三連単） 方式（通常、～フォーメーション）：

 購入回数上限

一定条件で購入不可• 競馬会員以外• 自動化処理内容の可視化

自動化の処理概要
1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認

自動化しないこと
買った馬券の妥当性は確認しない• 残高不足• 発売締切り• テスト観点を明示

オッズ投票

：

••

会員登録
正常に登録

1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認•

一日一回

1. 楽天ID作成
2. 会員申し込み
21

Improvement point 1st
テスト自動化設計書のテンプレート after機能
通常投票

••
•

テスト観点
テスト目的

テスト前提

条件・パラ
メータ

CI条件

正常購入処理購入方法の網羅
馬券を正しく購入できること• 競馬会員ユーザ• 十分な残高 式別（単勝、～三連単） 方式（通常、～フォーメーション）：

 購入回数上限

一定条件で購入不可

1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認

自動化しないこと
買った馬券の妥当性は確認しない• 実施条件の明示• 競馬会員以外• 残高不足• 発売締切り• 網羅性の可視化

オッズ投票

：

自動化の処理概要

1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
•
•

会員登録
正常に登録

•

一日一回

1. 楽天ID作成
2. 会員申し込み
22

Improvement point 1st
テスト自動化設計書のテンプレート after
機能
通常投票

•
•
•

テスト観点
テスト目的

テスト前提

条件・パラメータ

CI条件

正常購入処理購入方法の網羅
馬券を正しく購入できること• 競馬会員ユーザ• 十分な残高 式別（単勝、～三連単） 方式（通常、～フォーメーション）：

 購入回数上限

一定条件で購入不可• 競馬会員以外• 手動テストの必要性明確化

自動化の処理概要
1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認

自動化しないこと
買った馬券の妥当性は確認しない• 残高不足• 発売締切りオッズ投票：

1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
•
•

会員登録
正常に登録

•

一日一回

1. 楽天ID作成
2. 会員申し込み
23

Improvement point 1st
テスト自動化設計書のテンプレート after
機能
通常投票

••
•

テスト観点
テスト目的

テスト前提

条件・パラ
メータ

CI条件

正常購入処理購入方法の網羅
馬券を正しく購入できること• 競馬会員ユーザ• 十分な残高 式別（単勝、～三連単） 方式（通常、～フォーメーション）：

 購入回数上限• 一定条件で購入不可
CI運用に考慮する点記述 • 競馬会員以外

自動化の処理概要
1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認

自動化しないこと
買った馬券の妥当性は確認しない• 残高不足• 発売締切りオッズ投票：

1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
••

会員登録
正常に登録

•

一日一回

1. 楽天ID作成
2. 会員申し込み
24

Improvement point 1st
テスト自動化設計書のテンプレートの効果• テスト自動化がカバーしている箇所の可視化• テスト目的、運用に必要な事を明確化し、自動化実装漏れ低減• レビュー、実装等の自動化工数の削減

25Improvement point 1st
自動化のスクリプト時間の削減効果

BeforeAfter

テスト自動化の設計

518

スクリプティング

120

120

レビュー

58 × 325 × 3

修正

50

20599

509

スクリプティング
スクリプティング
合計※単位 minute※１機能テスト（約５分処理）の平均
26Improvement point 2nd
テスト自動化のレスポンシビリティ定義• Issue 3rd プロジェクトスピードに自動化が追い付かない

プロジェクトでマニュアルと自動化テストのレスポンシビリティを定義※小規模のプロジェクトに適用
27

Improvement point 2nd
マニュアル、自動化のレスポンシビリティ

マニュアルテスト

自動化テスト

既存機能〇

◎

新規機能

◎△
28

Improvement point 2nd
自動化の開発プラン
Project B

Project A

改修

既存機能

改修

新規機能A開発

新規機能

新規機能B開発

t
Test readyApp release

Test readyApp release29

Improvement point 2nd
テスト自動化のレスポンシビリティ定義による効果• 頻繁な既存機能の改修に対してレグレッションテスト追従• 短いテストサイクルに対して追従

30

@photoAC

Conclusion

31Conclusion
・Issue1. テスト自動化の質を維持するための工数増加
2. Manual teamから見て、自動化で何を品質担保しているか不明
3. プロジェクトスピードに自動化が追い付かない

32

Conclusion・Improvement
1. テスト自動化の設計見直し
2. テスト自動化のレスポンシビリティ定義

・Result
1. テスト自動化の質の向上、工数削減
2. Manual teamから見て、テスト自動化が明確化
3. 短期間プロジェクトに自動化が追従

33

Conclusion
・More improvement

1. 新規機能も含めてプロジェクト内で自動化カバー
2. マニュアルと自動化のチームの相乗効果向上

34