Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How we automate End to End tests at mercari
Search
Tadashi Nemoto
December 10, 2017
Technology
1
250
How we automate End to End tests at mercari
システムテスト自動化カンファレンス2017-2
https://testautomationresearch.connpass.com/event/71564/
Tadashi Nemoto
December 10, 2017
Tweet
Share
More Decks by Tadashi Nemoto
See All by Tadashi Nemoto
Best Practice CI/CD Pipeline for Deploying Container Apps to AWS
tadashi0713
0
220
Scalable and cloud-native mobile game CI/CD environment using Unity
tadashi0713
0
130
Migrating your mobile CI/CD environment to a scalable cloud solution using CircleCI
tadashi0713
0
240
Speed matters: Advanced CI/CD techniques to improve development velocity, quality & security
tadashi0713
0
300
AWS Graviton 環境への CI _ CD パイプラインを CircleCI で実現しよう (AWS Fargate 編)
tadashi0713
0
360
10x deployment frequency using GitLab Flow and GitHub Actions on AWS ECS
tadashi0713
0
590
デプロイ頻度を10倍にした、ブランチ戦略とGitHub Actions on AWS ECS
tadashi0713
8
4.4k
Creating parallelized Android UITest (Appium) environment using Azure, Docker and Android emulator
tadashi0713
0
4.1k
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
tadashi0713
2
1.4k
Other Decks in Technology
See All in Technology
防災デジタル分野での官民共創の取り組み (2)DIT/CCとD-CERTについて
ditccsugii
0
310
20251010_HCCJP_AdaptiveCloudUpdates
sdosamut
0
140
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
200
Node.js 2025: What's new and what's next
ruyadorno
0
400
カンファレンスに託児サポートがあるということ / Having Childcare Support at Conferences
nobu09
1
600
「れきちず」のこれまでとこれから - 誰にでもわかりやすい歴史地図を目指して / FOSS4G 2025 Japan
hjmkth
1
320
【Kaigi on Rails 事後勉強会LT】MeはどうしてGirlsに? 私とRubyを繋いだRail(s)
joyfrommasara
0
280
なぜAWSを活かしきれないのか?技術と組織への処方箋
nrinetcom
PRO
5
970
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
310
初めてのDatabricks Apps開発
taka_aki
1
120
Implementing and Evaluating a High-Level Language with WasmGC and the Wasm Component Model: Scala’s Case
tanishiking
0
100
20251007: What happens when multi-agent systems become larger? (CyberAgent, Inc)
ornew
1
330
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
35
6.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Docker and Python
trallard
46
3.6k
Transcript
How we automate End to End tests at mercari Tadashi
Nemoto
自己紹介 • 根本 征 (github: tadashi0713) • Since 2016 as
new graduate • QA-SET(Software Enginner in Test) team at Mercari • Automation Engineer • Web・Mobile test automation (UI・End to End) • iOS・Android CI • 社内業務自動化・効率化
自己紹介 • AppiumからXCUITestに変え、そのためにSwiftを学び始め た話 • Android CIをBitriseに移行して開発者・QAが幸せになったこ と • 退屈なブラウザ作業はSeleniumにやらせようーーはじめてで
もできるブラウザ操作自動化
メルカリ • アプリリリースから4年 • 日米7500万ダウンロード • 月間の流通総額100億円超 • 3つのリージョン・100人以上のソフトウェアエンジニア •
Tokyo, San Fransico, London Mercari Tech Conf 2017基調講演より
QA-SETチームとして取り組んできたテスト自動化 (主にモバイルアプリEnd to End)の • これまでと現在 • 意識していること3つ についてお話しします
これまでと現在
SET(Software Engineer in Test)チーム • 2016年10月に発足 • 開発拠点にUKが入ったのがきっかけ • QA工数の増大
• QA環境の整備 • 3人 • 開発環境・QA環境構築 2人 • アプリE2Eテスト 1人 → 2人
当時のプロダクト開発・QA状況 • USファーストの開発 • プロダクトチームの8~9割程度 • 3リージョン同じソースコード(API・iOS・Android) • QAはクライアントリリース前にマニュアルでリグレッション テストを実施
• 繰り返し作業、リリースサイクルが早い • 他リージョンへの考慮も必要
ターゲット • US版 iOS / Android • リリースが頻繁 & USファースト
• マニュアルで行われていたテスト項目を自動化 • マニュアルテストの工数を削減 • Android: Appium(Python→Ruby) • iOS: XCTest UITest(Swift)
結果 • 両OS共にテスト項目50%自動化 • 人より早くバグを見つけたことも • QA内でのテスト自動化の認知が上がった しかし、 • iOS・AndroidはRegionごとにFork
• US版はリニューアル版に移行 • よって中止
JP US UK
QA-SETチーム • 2017年4月に発足 • SET インフラエンジニア • SET 自動化エンジニア •
E2EテストはJP版・US(リニューアル)版から • JPはリグレッションテスト全体の約3/4が自動化 • アプリE2Eテスト以外にも取り組み出している • 取引画面(Webview) • Postman, JMeterを使ったAPIテスト
意識していること3つ
認知・使ってもらうことにこだわる 安定化とメンテナンスのしやすさ Not Only Test Automation
認知・使ってもらうことにこだわる
認知
None
None
None
使ってもらう
QA・エンジニアに使ってもらう • 自動テストはQAが実行できるように • リリース前のリグレッションテストより前に実行する • より早くバグ or 仕様変更が分かる •
リファクタリングのQA(API) • UnitTestは通っているものの、QA・エンジニア共に不安な部分 • iOSではlinkedin/bluepillを使用して複数シミュレータ(1OS)で並列 実行、約30分で終わる
None
None
安定化とメンテナンスのしやすさ
テストレポート • 落ちたテストの原因を調べるコスト • バグなのか、QA環境・通信環境問題か、テストが悪いのか • 手元で実行? 再度実行する? • https://github.com/vbanthia/rspec_html_formatter2
• スクリーンショット・スクリーンレコードをレポートに埋め込むこと が可能 • 作った人以外でも原因特定がしやすく
マスター タイトルの書式設定 • マスター テキストの書式設定
マスター タイトルの書式設定 • マスター テキストの書式設定
マスター タイトルの書式設定 • マスター テキストの書式設定
テスト環境 • Jenkinsのメンテナンスコスト(アップデート) • 自動化に使うためのデバイスを増やす際のコスト • デバイスに繋げているマシンのコスト • クラウドサービスで代用できるものはそちらを使ったほうが良い
テスト環境(Android) ビルド テスト実行 apkを保存 デバイス管理
マスター タイトルの書式設定 • マスター テキストの書式設定 どのアプリでも同じコードが書けるように selenium-webdriver capybara site_prism rspec
appium-driver capybara-appium site_prism rspec helpers / formatter appium_kit
https://www.slideshare.net/VishalBanthia1/andr oid-e2e-testing-at-mercari
Not Only Test Automation
プロダクトの品質向上 QA・プロダクトチームの生産性の向上
テストデータ自動作成 • 検証の際に様々な出品・購入パターンが必要 • 大量に必要になるケースもある • テスト自動化用に作ったテストデータ作成RubyライブラリをQA に提供 • ターミナルから簡単に使えるように
マスター タイトルの書式設定 • マスター テキストの書式設定 OpenSTF
マスター タイトルの書式設定 • マスター テキストの書式設定
Androidリリース作業自動化 手動でのリリース版ビルド & Play Storeへのアップロード エンジニアのコスト & オペミスの可能性
Androidリリース作業自動化(Bitrise)
Zapier • 複数のアプリを連携してワークフローを作成し自動化するツール • Slack, JIRA, Google Sheets, kintone, GitHub,
AWSなど • ノンプログラマーなプロダクトメンバーでも簡単に業務自動化が できる • 詳細は弊社Tech Blogで公開予定
Summary • 認知・使ってもらうことにこだわる • 安定性とメンテナンスのしやすさ • Not Only Test Automation