SlideShare una empresa de Scribd logo
1 de 35
テスト自動化プロセスの改善
May 31, 2019 (令和元年)
Sadaaki Emura
Leisure Product Dept.
Rakuten, Inc.
~「明日のテストを楽にする」ための改善ビフォー・アフター~
2
Introduction
@FREEIMAGES
3
Who am I
Name : Sadaaki Emura (nickname M)
Join in Rakuten : 2007
Career : 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
4
LPD organization
Product
Manager
Engineer QA
(Leisure Product Department)
5
Our team (QA)
Scope : 5 services
Members : 10 + off site
Skill : QA specialist (almost not programmer)
Mission : Quality Assurance
by manual & automation test
6
Presentation scope
@FREEIMAGES
7
This presentation scope
1. チームの変遷で直面したテスト自動化の課題
2. 課題を改善する活動
8
This presentation scope
■Scope
■ Not Scope
• テスト自動化のプロセス
• End to End のテスト自動化
• リリースサイクルが約2週間の派生開発
• テスト自動化のスクリプティング技術
• テスト自動化の環境構築
9
チームの変遷で直面した課題
@FREEIMAGES
10
Small team in 2016 ~
• Test Management
• Test Analysist
• Test Automator
• Test Designer
• Tester
11
Big organization in 2018 ~
• Test Management
• Test Analysist
• Test Designer
• Tester
• Test Automation Lead
• Automation Designer
• scripter
Manual Test team / each service Automation Test team
ロールベースで作業分離
12
What’s happened?
1. テスト自動化の質を維持するための工数増加
2. Manual teamから見て、自動化で何を品質担保しているか不明
3. プロジェクトスピードに自動化が追い付かない
13
Issue 1st
テスト自動化の質を維持するための工数増加
From Illust AC
• 担当者のテスト経験が低く、自動化が目的になりがち
• レビュー工数、作り直し工数が増加
14
Issue 2nd
Manual teamから見て、自動化で何を品質担保しているか不明
• 自動化がブラックボックス化
• テスト自動化で何を品質担保しているか不明
15
Issue 3rd
プロジェクトスピードに自動化が追い付かない
From Freepik.com
• 頻繁な既存機能のUI改修対応
• テストサイクルが短い案件が多い
• 自動化で期間内に全部担保するのは困難
16
課題を改善する活動
@photoAC
17
How to improve?
1. テスト自動化の設計見直し
2. テスト自動化のレスポンシビリティ定義
18
Improvement point 1st
テスト自動化の設計見直し
• Issue 1st テスト自動化の質を維持するための工数増加
• Issue 2nd Manual teamから見て、自動化で何を品質担保しているか不明
テスト自動化設計書のテンプレート作成
19
Improvement point 1st
テスト自動化設計書のテンプレート before
大分類 機能 フロー 概要 条件・パラメータ
投票 通常投票 ログイン → 投票ページ
→ 馬選択 → 確認 →
完了
買い目、買い方、馬をえらん
で投票する機能
式別(単勝、~三連単)
方式(通常、~フォー
メーション)
:
オッズ投票 オッズをソートして、そこか
ら欲しい馬券を選んで投票す
る機能
:
例 楽天競馬
20
Improvement point 1st
機能 テスト観点
テスト目的
テスト前提 条件・パラ
メータ
CI条件 自動化の処理概要 自動化しない
こと
通常投票 • 正常購入処理
• 購入方法の網羅
• 馬券を正しく購入
できること
• 競馬会員ユーザ
• 十分な残高
 式別(単勝、~
三連単)
 方式(通常、~
フォーメーショ
ン):
 購入回数上限 1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認
買った馬券の妥当
性は確認しない
一定条件で購入不可 • 競馬会員以外
• 残高不足
• 発売締切り
オッズ投票 1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
: • 会員登録
• 正常に登録
• 一日一回 1. 楽天ID作成
2. 会員申し込み
テスト自動化設計書のテンプレート after
21
Improvement point 1st
機能 テスト観点
テスト目的
テスト前提 条件・パラ
メータ
CI条件 自動化の処理概要 自動化しない
こと
通常投票 • 正常購入処理
• 購入方法の網羅
• 馬券を正しく購入
できること
• 競馬会員ユーザ
• 十分な残高
 式別(単勝、~
三連単)
 方式(通常、~
フォーメーショ
ン):
 購入回数上限 1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認
買った馬券の妥当
性は確認しない
一定条件で購入不可 • 競馬会員以外
• 残高不足
• 発売締切り
オッズ投票 1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
: • 会員登録
• 正常に登録
• 一日一回 1. 楽天ID作成
2. 会員申し込み
テスト自動化設計書のテンプレート after
• 自動化処理内容の可視化
• テスト観点を明示
22
Improvement point 1st
機能 テスト観点
テスト目的
テスト前提 条件・パラ
メータ
CI条件 自動化の処理概要 自動化しない
こと
通常投票 • 正常購入処理
• 購入方法の網羅
• 馬券を正しく購入
できること
• 競馬会員ユーザ
• 十分な残高
 式別(単勝、~
三連単)
 方式(通常、~
フォーメーショ
ン):
 購入回数上限 1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認
買った馬券の妥当
性は確認しない
一定条件で購入不可 • 競馬会員以外
• 残高不足
• 発売締切り
オッズ投票 1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
: • 会員登録
• 正常に登録
• 一日一回 1. 楽天ID作成
2. 会員申し込み
テスト自動化設計書のテンプレート after
• 実施条件の明示
• 網羅性の可視化
23
Improvement point 1st
機能 テスト観点
テスト目的
テスト前提 条件・パラ
メータ
CI条件 自動化の処理概要 自動化しない
こと
通常投票 • 正常購入処理
• 購入方法の網羅
• 馬券を正しく購入
できること
• 競馬会員ユーザ
• 十分な残高
 式別(単勝、~
三連単)
 方式(通常、~
フォーメーショ
ン):
 購入回数上限 1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認
買った馬券の妥当
性は確認しない
一定条件で購入不可 • 競馬会員以外
• 残高不足
• 発売締切り
オッズ投票 1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
: • 会員登録
• 正常に登録
• 一日一回 1. 楽天ID作成
2. 会員申し込み
テスト自動化設計書のテンプレート after
• 手動テストの必要性明確化
24
Improvement point 1st
機能 テスト観点
テスト目的
テスト前提 条件・パラ
メータ
CI条件 自動化の処理概要 自動化しない
こと
通常投票 • 正常購入処理
• 購入方法の網羅
• 馬券を正しく購入
できること
• 競馬会員ユーザ
• 十分な残高
 式別(単勝、~
三連単)
 方式(通常、~
フォーメーショ
ン):
 購入回数上限 1. ログイン
2. お金の入金
3. 買目、馬を選ぶ
4. 購入する
5. 照会で確認
買った馬券の妥当
性は確認しない
一定条件で購入不可 • 競馬会員以外
• 残高不足
• 発売締切り
オッズ投票 1. ログイン
2. お金の入金
3. オッズから馬券を選ぶ
4. 購入する
5. 照会で確認
: • 会員登録
• 正常に登録
• 一日一回 1. 楽天ID作成
2. 会員申し込み
テスト自動化設計書のテンプレート after
• CI運用に考慮する点記述
25
Improvement point 1st
テスト自動化設計書のテンプレートの効果
• テスト自動化がカバーしている箇所の可視化
• テスト目的、運用に必要な事を明確化し、自動化実装漏れ低減
• レビュー、実装等の自動化工数の削減
26
Improvement point 1st
自動化のスクリプト時間の削減効果
Before After
テスト自動化の設計 5 18
スクリプティング 120 120
スクリプティング レビュー 58 × 3 25 × 3
スクリプティング 修正 50 20
合計 599 509
※単位 minute
※1機能テスト(約5分処理)の平均
27
Improvement point 2nd
テスト自動化のレスポンシビリティ定義
• Issue 3rd プロジェクトスピードに自動化が追い付かない
プロジェクトでマニュアルと自動化テストのレスポンシビリティを定義
※小規模のプロジェクトに適用
28
Improvement point 2nd
マニュアル、自動化のレスポンシビリティ
既存機能
新規機能
マニュアルテスト 自動化テスト
◎
◎
△
〇
29
Improvement point 2nd
自動化の開発プラン
t
Project A Project B
新規機能
既存機能 改修 改修
新規機能A開発 新規機能B開発
App release App releaseTest ready Test ready
30
Improvement point 2nd
テスト自動化のレスポンシビリティ定義による効果
• 頻繁な既存機能の改修に対してレグレッションテスト追従
• 短いテストサイクルに対して追従
31
Conclusion
@photoAC
32
Conclusion
1. テスト自動化の質を維持するための工数増加
2. Manual teamから見て、自動化で何を品質担保しているか不明
3. プロジェクトスピードに自動化が追い付かない
・Issue
33
Conclusion
1. テスト自動化の質の向上、工数削減
2. Manual teamから見て、テスト自動化が明確化
3. 短期間プロジェクトに自動化が追従
・Result
1. テスト自動化の設計見直し
2. テスト自動化のレスポンシビリティ定義
・Improvement
34
Conclusion
1. 新規機能も含めてプロジェクト内で自動化カバー
2. マニュアルと自動化のチームの相乗効果向上
・More improvement
20190531 jasst19 tohoku

Más contenido relacionado

Similar a 20190531 jasst19 tohoku

20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoiSHIFT Inc.
 
GTMF 2016:テスト管理ツールCAT の紹介とコンシューマーゲームでの活用提案 株式会社SHIFT
GTMF 2016:テスト管理ツールCAT の紹介とコンシューマーゲームでの活用提案 株式会社SHIFTGTMF 2016:テスト管理ツールCAT の紹介とコンシューマーゲームでの活用提案 株式会社SHIFT
GTMF 2016:テスト管理ツールCAT の紹介とコンシューマーゲームでの活用提案 株式会社SHIFTGame Tools & Middleware Forum
 
品質を落とさずにウォーターフォール開発から徐々にアジャイル開発へとシフトしてみる
品質を落とさずにウォーターフォール開発から徐々にアジャイル開発へとシフトしてみる品質を落とさずにウォーターフォール開発から徐々にアジャイル開発へとシフトしてみる
品質を落とさずにウォーターフォール開発から徐々にアジャイル開発へとシフトしてみるJumpeiIto2
 
Rakuten_QA_Night_#1 Rakuten_QA_Group
Rakuten_QA_Night_#1 Rakuten_QA_GroupRakuten_QA_Night_#1 Rakuten_QA_Group
Rakuten_QA_Night_#1 Rakuten_QA_GroupYusuke Nakamura
 
サイト改修の成功確率を圧倒的に高めるために・・・ 改善効果を最大化する ユーザーテスト計画の立て方
サイト改修の成功確率を圧倒的に高めるために・・・  改善効果を最大化する  ユーザーテスト計画の立て方サイト改修の成功確率を圧倒的に高めるために・・・  改善効果を最大化する  ユーザーテスト計画の立て方
サイト改修の成功確率を圧倒的に高めるために・・・ 改善効果を最大化する ユーザーテスト計画の立て方プロモ ニスタ
 
顧客体験を向上させるECサイトの配信品質
顧客体験を向上させるECサイトの配信品質 顧客体験を向上させるECサイトの配信品質
顧客体験を向上させるECサイトの配信品質 Yoichiro Takehora
 
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?Takuya Ogawa
 
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015Kotaro Ogino
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployRyutaro YOSHIBA
 
先入観とバイアスを考慮したWebサイトパフォーマンス改善
先入観とバイアスを考慮したWebサイトパフォーマンス改善先入観とバイアスを考慮したWebサイトパフォーマンス改善
先入観とバイアスを考慮したWebサイトパフォーマンス改善Yoichiro Takehora
 
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜Takahiro Yamaki
 
リーンスタートアップ7,8章
リーンスタートアップ7,8章リーンスタートアップ7,8章
リーンスタートアップ7,8章satomi ikoma
 
20191029 automation struggle
20191029 automation struggle 20191029 automation struggle
20191029 automation struggle Sadaaki Emura
 
サイト改修の成功確率を圧倒的に高めるために・・・ 改善効果を最大化する ユーザーテスト計画の立て方★
サイト改修の成功確率を圧倒的に高めるために・・・  改善効果を最大化する  ユーザーテスト計画の立て方★サイト改修の成功確率を圧倒的に高めるために・・・  改善効果を最大化する  ユーザーテスト計画の立て方★
サイト改修の成功確率を圧倒的に高めるために・・・ 改善効果を最大化する ユーザーテスト計画の立て方★プロモ ニスタ
 
複数のMSテクノロジーで会社のITインフラを改善してみた!
複数のMSテクノロジーで会社のITインフラを改善してみた!複数のMSテクノロジーで会社のITインフラを改善してみた!
複数のMSテクノロジーで会社のITインフラを改善してみた!なおき おさだ
 
文化をつくる~エンジニアを超えた真のDevOpsへの旅~
文化をつくる~エンジニアを超えた真のDevOpsへの旅~文化をつくる~エンジニアを超えた真のDevOpsへの旅~
文化をつくる~エンジニアを超えた真のDevOpsへの旅~大貴 蜂須賀
 
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年verソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年verKosuke Fujisawa
 
CMS学会 第三回 研究報告
CMS学会 第三回 研究報告CMS学会 第三回 研究報告
CMS学会 第三回 研究報告loftwork
 
「Qaエンジニアのキャリアについて考える : 急(Q) ~ いろいろな組織でやったこと~」
「Qaエンジニアのキャリアについて考える : 急(Q) ~ いろいろな組織でやったこと~」「Qaエンジニアのキャリアについて考える : 急(Q) ~ いろいろな組織でやったこと~」
「Qaエンジニアのキャリアについて考える : 急(Q) ~ いろいろな組織でやったこと~」久仁朗 山本(旧姓 村上)
 

Similar a 20190531 jasst19 tohoku (20)

20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
20140605_じどうかの窓口_ソフトウェアテスト自動化のRoi
 
GTMF 2016:テスト管理ツールCAT の紹介とコンシューマーゲームでの活用提案 株式会社SHIFT
GTMF 2016:テスト管理ツールCAT の紹介とコンシューマーゲームでの活用提案 株式会社SHIFTGTMF 2016:テスト管理ツールCAT の紹介とコンシューマーゲームでの活用提案 株式会社SHIFT
GTMF 2016:テスト管理ツールCAT の紹介とコンシューマーゲームでの活用提案 株式会社SHIFT
 
品質を落とさずにウォーターフォール開発から徐々にアジャイル開発へとシフトしてみる
品質を落とさずにウォーターフォール開発から徐々にアジャイル開発へとシフトしてみる品質を落とさずにウォーターフォール開発から徐々にアジャイル開発へとシフトしてみる
品質を落とさずにウォーターフォール開発から徐々にアジャイル開発へとシフトしてみる
 
Rakuten_QA_Night_#1 Rakuten_QA_Group
Rakuten_QA_Night_#1 Rakuten_QA_GroupRakuten_QA_Night_#1 Rakuten_QA_Group
Rakuten_QA_Night_#1 Rakuten_QA_Group
 
サイト改修の成功確率を圧倒的に高めるために・・・ 改善効果を最大化する ユーザーテスト計画の立て方
サイト改修の成功確率を圧倒的に高めるために・・・  改善効果を最大化する  ユーザーテスト計画の立て方サイト改修の成功確率を圧倒的に高めるために・・・  改善効果を最大化する  ユーザーテスト計画の立て方
サイト改修の成功確率を圧倒的に高めるために・・・ 改善効果を最大化する ユーザーテスト計画の立て方
 
顧客体験を向上させるECサイトの配信品質
顧客体験を向上させるECサイトの配信品質 顧客体験を向上させるECサイトの配信品質
顧客体験を向上させるECサイトの配信品質
 
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
 
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
先入観とバイアスを考慮したWebサイトパフォーマンス改善
先入観とバイアスを考慮したWebサイトパフォーマンス改善先入観とバイアスを考慮したWebサイトパフォーマンス改善
先入観とバイアスを考慮したWebサイトパフォーマンス改善
 
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
 
リーンスタートアップ7,8章
リーンスタートアップ7,8章リーンスタートアップ7,8章
リーンスタートアップ7,8章
 
20191029 automation struggle
20191029 automation struggle 20191029 automation struggle
20191029 automation struggle
 
サイト改修の成功確率を圧倒的に高めるために・・・ 改善効果を最大化する ユーザーテスト計画の立て方★
サイト改修の成功確率を圧倒的に高めるために・・・  改善効果を最大化する  ユーザーテスト計画の立て方★サイト改修の成功確率を圧倒的に高めるために・・・  改善効果を最大化する  ユーザーテスト計画の立て方★
サイト改修の成功確率を圧倒的に高めるために・・・ 改善効果を最大化する ユーザーテスト計画の立て方★
 
複数のMSテクノロジーで会社のITインフラを改善してみた!
複数のMSテクノロジーで会社のITインフラを改善してみた!複数のMSテクノロジーで会社のITインフラを改善してみた!
複数のMSテクノロジーで会社のITインフラを改善してみた!
 
文化をつくる~エンジニアを超えた真のDevOpsへの旅~
文化をつくる~エンジニアを超えた真のDevOpsへの旅~文化をつくる~エンジニアを超えた真のDevOpsへの旅~
文化をつくる~エンジニアを超えた真のDevOpsへの旅~
 
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年verソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年ver
 
CMS学会 第三回 研究報告
CMS学会 第三回 研究報告CMS学会 第三回 研究報告
CMS学会 第三回 研究報告
 
Provisioning & Deploy on AWS
Provisioning & Deploy on AWSProvisioning & Deploy on AWS
Provisioning & Deploy on AWS
 
「Qaエンジニアのキャリアについて考える : 急(Q) ~ いろいろな組織でやったこと~」
「Qaエンジニアのキャリアについて考える : 急(Q) ~ いろいろな組織でやったこと~」「Qaエンジニアのキャリアについて考える : 急(Q) ~ いろいろな組織でやったこと~」
「Qaエンジニアのキャリアについて考える : 急(Q) ~ いろいろな組織でやったこと~」
 

Más de Sadaaki Emura

Test Automation Journey 2023 useful knowledge to start test automation
Test Automation Journey  2023 useful knowledge to start test automationTest Automation Journey  2023 useful knowledge to start test automation
Test Automation Journey 2023 useful knowledge to start test automationSadaaki Emura
 
What is Unit Testing
What is Unit TestingWhat is Unit Testing
What is Unit TestingSadaaki Emura
 
20220527_JaSST'22 Tohoku
20220527_JaSST'22 Tohoku20220527_JaSST'22 Tohoku
20220527_JaSST'22 TohokuSadaaki Emura
 
Test automation engineer
Test automation engineerTest automation engineer
Test automation engineerSadaaki Emura
 
20211221 jasst nano_test automation operation
20211221 jasst nano_test automation operation20211221 jasst nano_test automation operation
20211221 jasst nano_test automation operationSadaaki Emura
 
Test Automation Improvement by Machine Learning Jasst'21 Tokyo
Test Automation Improvement by Machine Learning Jasst'21 TokyoTest Automation Improvement by Machine Learning Jasst'21 Tokyo
Test Automation Improvement by Machine Learning Jasst'21 TokyoSadaaki Emura
 
20200630 Rakuten QA meetup #2 "Improve test automation operation"
20200630 Rakuten QA meetup #2 "Improve test automation operation"20200630 Rakuten QA meetup #2 "Improve test automation operation"
20200630 Rakuten QA meetup #2 "Improve test automation operation"Sadaaki Emura
 
Test automation lesson
Test automation lessonTest automation lesson
Test automation lessonSadaaki Emura
 
Struggles and Challenges in STLC in Ques No.13
Struggles and Challenges in STLC in Ques No.13Struggles and Challenges in STLC in Ques No.13
Struggles and Challenges in STLC in Ques No.13Sadaaki Emura
 
20181211 QA meetup in office
20181211 QA meetup in office20181211 QA meetup in office
20181211 QA meetup in officeSadaaki Emura
 
JaSST'18 Hokkaido Improve Automation Testing
JaSST'18 Hokkaido Improve Automation TestingJaSST'18 Hokkaido Improve Automation Testing
JaSST'18 Hokkaido Improve Automation TestingSadaaki Emura
 
Istqb : Test automation Engineer
Istqb : Test automation EngineerIstqb : Test automation Engineer
Istqb : Test automation EngineerSadaaki Emura
 

Más de Sadaaki Emura (14)

Test Automation Journey 2023 useful knowledge to start test automation
Test Automation Journey  2023 useful knowledge to start test automationTest Automation Journey  2023 useful knowledge to start test automation
Test Automation Journey 2023 useful knowledge to start test automation
 
What is Unit Testing
What is Unit TestingWhat is Unit Testing
What is Unit Testing
 
20220527_JaSST'22 Tohoku
20220527_JaSST'22 Tohoku20220527_JaSST'22 Tohoku
20220527_JaSST'22 Tohoku
 
Test automation engineer
Test automation engineerTest automation engineer
Test automation engineer
 
20211221 jasst nano_test automation operation
20211221 jasst nano_test automation operation20211221 jasst nano_test automation operation
20211221 jasst nano_test automation operation
 
Test Automation Improvement by Machine Learning Jasst'21 Tokyo
Test Automation Improvement by Machine Learning Jasst'21 TokyoTest Automation Improvement by Machine Learning Jasst'21 Tokyo
Test Automation Improvement by Machine Learning Jasst'21 Tokyo
 
20200630 Rakuten QA meetup #2 "Improve test automation operation"
20200630 Rakuten QA meetup #2 "Improve test automation operation"20200630 Rakuten QA meetup #2 "Improve test automation operation"
20200630 Rakuten QA meetup #2 "Improve test automation operation"
 
Test automation lesson
Test automation lessonTest automation lesson
Test automation lesson
 
Struggles and Challenges in STLC in Ques No.13
Struggles and Challenges in STLC in Ques No.13Struggles and Challenges in STLC in Ques No.13
Struggles and Challenges in STLC in Ques No.13
 
20181211 QA meetup in office
20181211 QA meetup in office20181211 QA meetup in office
20181211 QA meetup in office
 
JaSST'18 Hokkaido Improve Automation Testing
JaSST'18 Hokkaido Improve Automation TestingJaSST'18 Hokkaido Improve Automation Testing
JaSST'18 Hokkaido Improve Automation Testing
 
Istqb : Test automation Engineer
Istqb : Test automation EngineerIstqb : Test automation Engineer
Istqb : Test automation Engineer
 
20180828 QA meetup
20180828 QA meetup20180828 QA meetup
20180828 QA meetup
 
QA improvement
QA improvementQA improvement
QA improvement
 

20190531 jasst19 tohoku

  • 1. テスト自動化プロセスの改善 May 31, 2019 (令和元年) Sadaaki Emura Leisure Product Dept. Rakuten, Inc. ~「明日のテストを楽にする」ための改善ビフォー・アフター~
  • 3. 3 Who am I Name : Sadaaki Emura (nickname M) Join in Rakuten : 2007 Career : 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
  • 5. 5 Our team (QA) Scope : 5 services Members : 10 + off site Skill : QA specialist (almost not programmer) Mission : Quality Assurance by manual & automation test
  • 7. 7 This presentation scope 1. チームの変遷で直面したテスト自動化の課題 2. 課題を改善する活動
  • 8. 8 This presentation scope ■Scope ■ Not Scope • テスト自動化のプロセス • End to End のテスト自動化 • リリースサイクルが約2週間の派生開発 • テスト自動化のスクリプティング技術 • テスト自動化の環境構築
  • 10. 10 Small team in 2016 ~ • Test Management • Test Analysist • Test Automator • Test Designer • Tester
  • 11. 11 Big organization in 2018 ~ • Test Management • Test Analysist • Test Designer • Tester • Test Automation Lead • Automation Designer • scripter Manual Test team / each service Automation Test team ロールベースで作業分離
  • 12. 12 What’s happened? 1. テスト自動化の質を維持するための工数増加 2. Manual teamから見て、自動化で何を品質担保しているか不明 3. プロジェクトスピードに自動化が追い付かない
  • 13. 13 Issue 1st テスト自動化の質を維持するための工数増加 From Illust AC • 担当者のテスト経験が低く、自動化が目的になりがち • レビュー工数、作り直し工数が増加
  • 14. 14 Issue 2nd Manual teamから見て、自動化で何を品質担保しているか不明 • 自動化がブラックボックス化 • テスト自動化で何を品質担保しているか不明
  • 15. 15 Issue 3rd プロジェクトスピードに自動化が追い付かない From Freepik.com • 頻繁な既存機能のUI改修対応 • テストサイクルが短い案件が多い • 自動化で期間内に全部担保するのは困難
  • 17. 17 How to improve? 1. テスト自動化の設計見直し 2. テスト自動化のレスポンシビリティ定義
  • 18. 18 Improvement point 1st テスト自動化の設計見直し • Issue 1st テスト自動化の質を維持するための工数増加 • Issue 2nd Manual teamから見て、自動化で何を品質担保しているか不明 テスト自動化設計書のテンプレート作成
  • 19. 19 Improvement point 1st テスト自動化設計書のテンプレート before 大分類 機能 フロー 概要 条件・パラメータ 投票 通常投票 ログイン → 投票ページ → 馬選択 → 確認 → 完了 買い目、買い方、馬をえらん で投票する機能 式別(単勝、~三連単) 方式(通常、~フォー メーション) : オッズ投票 オッズをソートして、そこか ら欲しい馬券を選んで投票す る機能 : 例 楽天競馬
  • 20. 20 Improvement point 1st 機能 テスト観点 テスト目的 テスト前提 条件・パラ メータ CI条件 自動化の処理概要 自動化しない こと 通常投票 • 正常購入処理 • 購入方法の網羅 • 馬券を正しく購入 できること • 競馬会員ユーザ • 十分な残高  式別(単勝、~ 三連単)  方式(通常、~ フォーメーショ ン):  購入回数上限 1. ログイン 2. お金の入金 3. 買目、馬を選ぶ 4. 購入する 5. 照会で確認 買った馬券の妥当 性は確認しない 一定条件で購入不可 • 競馬会員以外 • 残高不足 • 発売締切り オッズ投票 1. ログイン 2. お金の入金 3. オッズから馬券を選ぶ 4. 購入する 5. 照会で確認 : • 会員登録 • 正常に登録 • 一日一回 1. 楽天ID作成 2. 会員申し込み テスト自動化設計書のテンプレート after
  • 21. 21 Improvement point 1st 機能 テスト観点 テスト目的 テスト前提 条件・パラ メータ CI条件 自動化の処理概要 自動化しない こと 通常投票 • 正常購入処理 • 購入方法の網羅 • 馬券を正しく購入 できること • 競馬会員ユーザ • 十分な残高  式別(単勝、~ 三連単)  方式(通常、~ フォーメーショ ン):  購入回数上限 1. ログイン 2. お金の入金 3. 買目、馬を選ぶ 4. 購入する 5. 照会で確認 買った馬券の妥当 性は確認しない 一定条件で購入不可 • 競馬会員以外 • 残高不足 • 発売締切り オッズ投票 1. ログイン 2. お金の入金 3. オッズから馬券を選ぶ 4. 購入する 5. 照会で確認 : • 会員登録 • 正常に登録 • 一日一回 1. 楽天ID作成 2. 会員申し込み テスト自動化設計書のテンプレート after • 自動化処理内容の可視化 • テスト観点を明示
  • 22. 22 Improvement point 1st 機能 テスト観点 テスト目的 テスト前提 条件・パラ メータ CI条件 自動化の処理概要 自動化しない こと 通常投票 • 正常購入処理 • 購入方法の網羅 • 馬券を正しく購入 できること • 競馬会員ユーザ • 十分な残高  式別(単勝、~ 三連単)  方式(通常、~ フォーメーショ ン):  購入回数上限 1. ログイン 2. お金の入金 3. 買目、馬を選ぶ 4. 購入する 5. 照会で確認 買った馬券の妥当 性は確認しない 一定条件で購入不可 • 競馬会員以外 • 残高不足 • 発売締切り オッズ投票 1. ログイン 2. お金の入金 3. オッズから馬券を選ぶ 4. 購入する 5. 照会で確認 : • 会員登録 • 正常に登録 • 一日一回 1. 楽天ID作成 2. 会員申し込み テスト自動化設計書のテンプレート after • 実施条件の明示 • 網羅性の可視化
  • 23. 23 Improvement point 1st 機能 テスト観点 テスト目的 テスト前提 条件・パラ メータ CI条件 自動化の処理概要 自動化しない こと 通常投票 • 正常購入処理 • 購入方法の網羅 • 馬券を正しく購入 できること • 競馬会員ユーザ • 十分な残高  式別(単勝、~ 三連単)  方式(通常、~ フォーメーショ ン):  購入回数上限 1. ログイン 2. お金の入金 3. 買目、馬を選ぶ 4. 購入する 5. 照会で確認 買った馬券の妥当 性は確認しない 一定条件で購入不可 • 競馬会員以外 • 残高不足 • 発売締切り オッズ投票 1. ログイン 2. お金の入金 3. オッズから馬券を選ぶ 4. 購入する 5. 照会で確認 : • 会員登録 • 正常に登録 • 一日一回 1. 楽天ID作成 2. 会員申し込み テスト自動化設計書のテンプレート after • 手動テストの必要性明確化
  • 24. 24 Improvement point 1st 機能 テスト観点 テスト目的 テスト前提 条件・パラ メータ CI条件 自動化の処理概要 自動化しない こと 通常投票 • 正常購入処理 • 購入方法の網羅 • 馬券を正しく購入 できること • 競馬会員ユーザ • 十分な残高  式別(単勝、~ 三連単)  方式(通常、~ フォーメーショ ン):  購入回数上限 1. ログイン 2. お金の入金 3. 買目、馬を選ぶ 4. 購入する 5. 照会で確認 買った馬券の妥当 性は確認しない 一定条件で購入不可 • 競馬会員以外 • 残高不足 • 発売締切り オッズ投票 1. ログイン 2. お金の入金 3. オッズから馬券を選ぶ 4. 購入する 5. 照会で確認 : • 会員登録 • 正常に登録 • 一日一回 1. 楽天ID作成 2. 会員申し込み テスト自動化設計書のテンプレート after • CI運用に考慮する点記述
  • 25. 25 Improvement point 1st テスト自動化設計書のテンプレートの効果 • テスト自動化がカバーしている箇所の可視化 • テスト目的、運用に必要な事を明確化し、自動化実装漏れ低減 • レビュー、実装等の自動化工数の削減
  • 26. 26 Improvement point 1st 自動化のスクリプト時間の削減効果 Before After テスト自動化の設計 5 18 スクリプティング 120 120 スクリプティング レビュー 58 × 3 25 × 3 スクリプティング 修正 50 20 合計 599 509 ※単位 minute ※1機能テスト(約5分処理)の平均
  • 27. 27 Improvement point 2nd テスト自動化のレスポンシビリティ定義 • Issue 3rd プロジェクトスピードに自動化が追い付かない プロジェクトでマニュアルと自動化テストのレスポンシビリティを定義 ※小規模のプロジェクトに適用
  • 29. 29 Improvement point 2nd 自動化の開発プラン t Project A Project B 新規機能 既存機能 改修 改修 新規機能A開発 新規機能B開発 App release App releaseTest ready Test ready
  • 30. 30 Improvement point 2nd テスト自動化のレスポンシビリティ定義による効果 • 頻繁な既存機能の改修に対してレグレッションテスト追従 • 短いテストサイクルに対して追従
  • 32. 32 Conclusion 1. テスト自動化の質を維持するための工数増加 2. Manual teamから見て、自動化で何を品質担保しているか不明 3. プロジェクトスピードに自動化が追い付かない ・Issue
  • 33. 33 Conclusion 1. テスト自動化の質の向上、工数削減 2. Manual teamから見て、テスト自動化が明確化 3. 短期間プロジェクトに自動化が追従 ・Result 1. テスト自動化の設計見直し 2. テスト自動化のレスポンシビリティ定義 ・Improvement

Notas del editor

  1. これまでのキャリア  最初、組み込み系のソフトウェアエンジニア 2年間  その後、WEBエンジニア 13年間  次にプロダクトマネージャの経験を経る  2016年、いまのSQA部署の構築から携わり、テスト自動化を合わせて構築しました(3年目)
  2. 次に、組織の話をさせてください ・5つのサービスを持っている ・ロールでチームが分かれている
  3. QAの組織は ・ 10名 + offsite (増減します) ・ QAのスペシャリスト集団 ただ、ほとんどはエンジニア経験なし ・マニュアル、自動化で品質を担保する
  4. 3つのステップでおはなし 1. 2016年QA組織立ち上げ、自動化の取り組みを行う   徐々にメンバーが増え、それによって直面した課題 2. それに対して取り組んできた改善活動
  5. 2016年、QA構築当初の体制です ひとりが、ISTQBでいうTMとTA、およびテスト自動化を担当 ・テスト設計書のレビュー ・テスト自動化の設計 ・テスト自動化の構築、運用
  6. マニュアルと自動化のチームにわかれました ・マニュアル側は、自動化に関してのスキルがない ・自動化側は、プログラマーが主になり、かつドメインナレッジが少ない
  7. 自動化チームが拡大化したことで ・テストエンジニア経験の低いプログラマが増えてきた ・自動化のテストの質が低下し、品質担保が困難になってきた
  8. マニュアルと自動化がチーム分けされたことにより マニュアル側から都度、自動化のメンバーにどこを自動化している? 今回のプロジェクトで自動化どこカバーしている? って質問、応答のやりとりが多々発生
  9. 重要な機能でUIの変更がよく発生する。 → 自動化に向かないとはいえ対応が求められる 1-2週間のテストサイクル案件が多く、それに自動化が追従困難
  10. これまで自動化の設計書を各担当者にまかせていた 主に、処理フローと自動化でよく使われるデータドリブンに必要な情報、条件、パラメータを記述 テストする観点が含まれてませんでした マニュアルチームから見ても、品質担保が不明
  11. これをこのように自動化のテスト設計書のテンプレートを作成しました
  12. 具体的なテスト手順とそれにおいてのテスト観点 自動化でどういったことをvalidateするか マニュアルチームへなにをやってるかを可視化 自動化担当には具体的なSTEPを記載することでテスト観点を実装にもれないようにさせた
  13. テストにあたっての前提条件 自動化で効果のある、DDのための要素、条件・パラメータ
  14. 自動化は銀の弾丸ではない マニュアルチームから見て、注意しないといけないことを記載
  15. 自動化は、 ・毎日実行させることが求めらる ・失敗した時、再実行可能が求められる これを満たすための制約をクリアにする ⇒実装時にこれを考慮しないと意外と作り直しが発生する
  16. 1 script 増えた時間  テスト設計には時間が増える レビュー  2人でレビューしている前提 before  やり直しのレビューも含んでいる(自動化の設計自体を) after  1回のレビューでおわるケースがおおい
  17. 既存機能 これまでに存在している機能 テスト自動化でリグレッションテストで基本カバーしている プロジェクトによって、リグレッションテストに影響あり 新規機能 これまでに存在しない機能 テスト自動化を新規に作る必要あり UIは十分なテストしないと安定しない場合あり
  18. 新規機能に関して、マニュアルテストで品質を守る 既存機能に関して、自動化テストで品質を守る