フリマアプリ「メルカリ」のCI / CDを支えるAutomation, Karakuriな文化
by
Tadashi Nemoto
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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は作れないため、自発的・継続的に自 動化・仕組み化していく文化を作っていく