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
210
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
230
Speed matters: Advanced CI/CD techniques to improve development velocity, quality & security
tadashi0713
0
300
AWS Graviton 環境への CI _ CD パイプラインを CircleCI で実現しよう (AWS Fargate 編)
tadashi0713
0
350
10x deployment frequency using GitLab Flow and GitHub Actions on AWS ECS
tadashi0713
0
580
デプロイ頻度を10倍にした、ブランチ戦略とGitHub Actions on AWS ECS
tadashi0713
8
4.3k
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
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
12
4.8k
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
870
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
120
2025年夏 コーディングエージェントを統べる者
nwiizo
0
170
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
250
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
9
73k
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
240
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.3k
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
「Linux」という言葉が指すもの
sat
PRO
4
140
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
130
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Agile that works and the tools we love
rasmusluckow
330
21k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
The Language of Interfaces
destraynor
161
25k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Designing for humans not robots
tammielis
253
25k
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