Slide 1

Slide 1 text

フリマアプリ「メルカリ」の CI / CDを支える Automation, Karakuriな文化 全てtadashiが自動化する(仮題) Nemoto Tadashi Mobile CI/CD Meetup

Slide 2

Slide 2 text

自己紹介 • 根本 征(Nemoto Tadashi) • Automation & QA (AQA) Group • テスト自動化 • Selenium, Appium, XCUITest • モバイルCI / CD改善 • 社内の生産性を上げるための自動化・サポート • https://seleck.cc/1230 • 自称 Zapierエバンジェリスト

Slide 3

Slide 3 text

メルカリにはなぜ モバイルCI / CD・テスト自動化が 必要なのか?

Slide 4

Slide 4 text

エンジニアの行動指針 Automation, Karakuri

Slide 5

Slide 5 text

Automation (自動化) 本来すべきこと(コード・設計) に集中するため 機械になるべくやらせて、効率化させる 2度以上行なった作業は自動化の対象

Slide 6

Slide 6 text

Karakuri (仕組み化) 問題が起きた時、気合いではなく、 人的エラーが起きない仕組みで解決する

Slide 7

Slide 7 text

モバイル CI / CD・テスト自動化によって プロダクト開発に関わる人 (エンジニア・QA)が 本来すべきことに集中して幸せになる

Slide 8

Slide 8 text

開発フェーズ

Slide 9

Slide 9 text

AndroidのCI時間を10分短縮し、 開発を爆速にするためのKarakuriを作った話 https://tech.mercari.com/entry/2018/07/04/110000 Android CI CircleCI 2.0

Slide 10

Slide 10 text

Android CI 忘れがちなこと、人が指摘しなくてもいいことは 機械に任せる Danger Codecov

Slide 11

Slide 11 text

QAフェーズ E2Eテスト自動化

Slide 12

Slide 12 text

Android apkビルド Google Cloud Storage

Slide 13

Slide 13 text

Android テスト実行 Appium

Slide 14

Slide 14 text

マスター タイトルの書式設定 • マスター テキストの書式設定 Android(RSpec HTML Reporter)

Slide 15

Slide 15 text

マスター タイトルの書式設定 • マスター テキストの書式設定 Android(RSpec HTML Reporter)

Slide 16

Slide 16 text

マスター タイトルの書式設定 • マスター テキストの書式設定 Android(RSpec HTML Reporter)

Slide 17

Slide 17 text

iOS テスト実行 XCUITest

Slide 18

Slide 18 text

iOS(XCTestHTMLReport) メルカリiOSのUIテスト自動化をま るっとご紹介します! https://tech.mercari.com/entr y/2018/08/07/123000

Slide 19

Slide 19 text

フィードバックもより早く

Slide 20

Slide 20 text

E2E(特にモバイル)は メンテナンスコストが高い 不安定

Slide 21

Slide 21 text

でも • エンジニアとQAでテストしたい・確認したいことは違う • QAがメンテナンス・自動化できる状態になれば良いのでは • 現在レポートをチェック・フィードバックができている • 簡単にシナリオを実装・メンテナンスできる仕組みが必要 • うまくいかないか模索・検証中

Slide 22

Slide 22 text

CI / CDサービス以外でも 自動化できる部分はある

Slide 23

Slide 23 text

Zapierを使ったAPI連携

Slide 24

Slide 24 text

Zapierとは • 複数のWebアプリケーション(SaaS)を連携させてワークフ ローを作り、自動化させることができるサービス • IFTTTと似たサービス • GUI上で簡単にワークフローを作成できる • Bitriseに似ている • 1000以上のWebアプリケーションと連携可能

Slide 25

Slide 25 text

Zapier × JIRAで必要なIssueを自動生成する 社内の面倒な手作業はZapierにやらせよう #2 〜Webhookを使って、自動化の幅を広げる〜 https://tech.mercari.com/entry/2018/06/12/110000

Slide 26

Slide 26 text

Zapier × JIRAで必要なIssueを自動生成する

Slide 27

Slide 27 text

Zapier × JIRAで必要なIssueを自動生成する

Slide 28

Slide 28 text

Zapier × JIRAで必要なIssueを自動生成する

Slide 29

Slide 29 text

プロダクト開発で使う様々なツールと Zapierは連携することができる • JIRA • GitHub • Slack • ChatWork • Trello • Readmine • Asana • GitLab • Dropbox • GSuite

Slide 30

Slide 30 text

「ノンプログラマーでも自動化はできる」 Zapier Automation Meetup Tokyo #0 を開催しました https://tech.mercari.com/entry/2018/07/13/150000

Slide 31

Slide 31 text

1回でパーフェクトなCI / CDは作れない

Slide 32

Slide 32 text

Automation, Karakuriしていく文化

Slide 33

Slide 33 text

まとめ • 本来すべきことに集中するため、自動化・仕組み化 • CIの高速化・レビューの一部分を機械に任せる • E2Eテストは実行頻度を増やす・レポートを見やすくしてフィードバッ クを早くしている • CI / CDサービス以外でも自動化できる部分はある(Zapier) • 1回でパーフェクトな CI / CDは作れないため、自発的・継続的に自 動化・仕組み化していく文化を作っていく