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
260
1
Share
How we automate End to End tests at mercari
システムテスト自動化カンファレンス2017-2
https://testautomationresearch.connpass.com/event/71564/
Tadashi Nemoto
December 10, 2017
More Decks by Tadashi Nemoto
See All by Tadashi Nemoto
コンテナイメージの脆弱性を削減する新しいアプローチ:Hardened Container Images
tadashi0713
1
90
Best Practice CI/CD Pipeline for Deploying Container Apps to AWS
tadashi0713
0
270
Scalable and cloud-native mobile game CI/CD environment using Unity
tadashi0713
0
170
Migrating your mobile CI/CD environment to a scalable cloud solution using CircleCI
tadashi0713
0
270
Speed matters: Advanced CI/CD techniques to improve development velocity, quality & security
tadashi0713
0
330
AWS Graviton 環境への CI _ CD パイプラインを CircleCI で実現しよう (AWS Fargate 編)
tadashi0713
0
390
10x deployment frequency using GitLab Flow and GitHub Actions on AWS ECS
tadashi0713
0
640
デプロイ頻度を10倍にした、ブランチ戦略とGitHub Actions on AWS ECS
tadashi0713
8
4.5k
Creating parallelized Android UITest (Appium) environment using Azure, Docker and Android emulator
tadashi0713
0
4.3k
Other Decks in Technology
See All in Technology
サイボウズ、プラットフォームエンジニアリング始めるってよ ― プラットフォームチームの事業貢献と組織アラインメントの強化
ueokande
0
130
20260516_SecJAWS_Days
takuyay0ne
2
540
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
270
The Making of AI Chips
pfn
PRO
0
570
O'Reilly Infrastructure & Ops Superstream: Platform Engineering for Developers, Architects & the Rest of Us
syntasso
0
330
生成AI時代に信頼性をどう保ち続けるか - Policy as Code の実践
akitok_
1
530
TSKaigi 2026 - enumよ、さようなら
teamlab
PRO
2
240
データ分析基盤の信頼を支える視点と設計
yuki_saito
0
130
はじめてのAI-DLC
yoshidashingo
0
150
ワールドカフェ再び、そしてゴール・ルール・ロール・ツール / World Café Revisited, and the Goals-Rules-Roles-Tools
ks91
PRO
0
190
How to learn AWS Well-Architected with AWS BuilderCards: Security Edition
coosuke
PRO
0
200
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
7
660
Featured
See All Featured
It's Worth the Effort
3n
188
29k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
700
Visualization
eitanlees
151
17k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
200
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
54k
Mobile First: as difficult as doing things right
swwweet
225
10k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
170
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
190
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
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