Upgrade to Pro — share decks privately, control downloads, hide ads and more …

QA自動化チームの立ち上げとテスト自動化の現状 / Launch of QA automation team and current status of test automation

mercari
August 25, 2022

QA自動化チームの立ち上げとテスト自動化の現状 / Launch of QA automation team and current status of test automation

メルペイQAチームでは、よりよいサービスをお客さまに早く届けるために、日々品質保証活動に対し試行錯誤を繰り返しています。昨今、スピーディーにサービスを提供することにテストの自動化は欠かせなくなってきました。メルペイでもテストの自動化を全社的に推進はしていますが、まだまだ全チームが十分に自動テストを活用できているとは言えない状況です。そこでQA内で自動化専任のチームを立ち上げ、テストの自動化を推進することにしました。チームの立ち上げに伴い苦労したこと、またテスト自動化の現状を整理したので、その結果を伝えたいと思います。
------
Merpay Tech Fest 2022は3日間のオンライン技術カンファレンスです。
IT企業で働くソフトウェアエンジニアおよびメルペイの技術スタックに興味がある方々を対象に2022年8月23日(火)から8月25日(木)までの3日間、開催します。 Merpay Tech Festは事業との関わりから技術への興味を深め、プロダクトやサービスを支えるエンジニアリングを知れるお祭りです。 セッションでは事業を支える組織・技術・課題などへの試行錯誤やアプローチを紹介予定です。お楽しみに!

■イベント関連情報
- 公式ウェブサイト:https://events.merpay.com/techfest-2022/
- 申し込みページ:https://mercari.connpass.com/event/249428/
- Twitterハッシュタグ: #MerpayTechFest
■リンク集
- メルカリ・メルペイイベント一覧:https://mercari.connpass.com/
- メルカリキャリアサイト:https://careers.mercari.com/
- メルカリエンジニアリングブログ:https://engineering.mercari.com/blog/
- メルカリエンジニア向けTwitterアカウント:https://twitter.com/mercaridevjp
- 株式会社メルペイ:https://jp.merpay.com/

mercari

August 25, 2022
Tweet

More Decks by mercari

Other Decks in Technology

Transcript

  1. Masatomo Takano / @nir_takemi 株式会社メルペイ QA Engineer • 金融系システムのQA経験約5年 •

    スマホ向けゲームのクライアント開発経験約 4年 • スマホ向けゲームのバックエンド開発経験約 1年 • メルペイにてQA Engineerとして参画 • 興味ある領域はテストの自動化 • 趣味はアプリ開発(今は英語学習アプリ作成中)
  2. 目次 01 課題 02 自動化チームの発足について 03 アクション • テスト自動化の現状整理 •

    自動化基盤の作成 • 自動テストの作成(サポート) など 04 おわりに
  3. 目次 01 課題 02 自動化チームの発足について 03 アクション • テスト自動化の現状整理 •

    自動化基盤の作成 • 自動テストの作成(サポート) など 04 おわりに
  4. • 全社的な状況 ◦ リリースしたい機能/サービスが多い ◦ リリーススピードを早くしたい • QA組織の課題 ◦ QAエンジニアがもっと必要!

    ▪ 1人が複数プロジェクトを兼任している状況 ▪ 協力会社の方々に多分にご協力いただいている状況 課題 → テストを自動化することで、少しでも緩和したいが、  自動化している時間が確保できない!
  5. 目次 01 課題 02 自動化チームの発足について 03 アクション • テスト自動化の現状整理 •

    自動化基盤の作成 • 自動テストの作成(サポート) など 04 おわりに
  6. • 自分の担当サービスでテスト自動化が進んでいた ◦ QA Engineer1年生の1年間で取り組んだことの紹介 ▪ https://engineering.mercari.com/blog/entry/20201225-78a1840466/ ◦ リグレッションテストの自動化を段階的に実装した話【 Merpay

    Tech Fest 2021】 ▪ https://engineering.mercari.com/blog/entry/20210928-mtf2021-day5-2/ ◦ QA Engineer2年生がQA的技術的負債と立ち向かった話 ▪ https://engineering.mercari.com/blog/entry/20220118-dfa7943248/ • リリース速度も安定していた • 自動化周りに興味があった 自動化チームの発足について
  7. • 自分の担当サービスでテスト自動化が進んでいた ◦ QA Engineer1年生の1年間で取り組んだことの紹介 ▪ https://engineering.mercari.com/blog/entry/20201225-78a1840466/ ◦ リグレッションテストの自動化を段階的に実装した話【 Merpay

    Tech Fest 2021】 ▪ https://engineering.mercari.com/blog/entry/20210928-mtf2021-day5-2/ ◦ QA Engineer2年生がQA的技術的負債と立ち向かった話 ▪ https://engineering.mercari.com/blog/entry/20220118-dfa7943248/ • リリース速度も安定していた • 自動化周りに興味があった 自動化チームの発足について チーム横断で動ける チーム(一人)として 動いてみたい!
  8. 目次 01 課題 02 自動化チームの発足について 03 アクション • テスト自動化の現状整理 •

    自動化基盤の作成 • 自動テストの作成(サポート) など 04 おわりに
  9. • ヒアリングポイント ◦ 対象のマイクロサービス ◦ テスト対象(バックエンド or フロントエンド or アプリ)

    ◦ 現状の自動化状況 ◦ 現状の利用ツール ◦ 今後自動化していきたいのか? • ※2021/11 時点のものでちょっと情報が古いです 現状整理
  10. • 対象のサービス数 ◦ バックエンド:50+ ◦ フロントエンド:10+ ◦ アプリ:5+ 現状整理 =マイクロサービス数

    アプリから利用するマイクロサービス数 加盟店等に関するWebベースのサービス数
  11. • バックエンドの内製ツールでの自動化 ◦ ジョブを単発で実行したりするものが多い ◦ ジョブを実行、値のチェックもできるのは珍しい ▪ バッチ処理のリグレッションテスト自動化のトライ • https://engineering.mercari.com/blog/entry/20220412-try-batch-regressio

    n-test-automation/ ▪ リグレッションテストの自動化を段階的に実装した話【 Merpay Tech Fest 2021】 • https://engineering.mercari.com/blog/entry/20210928-mtf2021-day5-2/ 現状整理 〜バックエンドの利用ツール補足〜
  12. • バックエンド ◦ APIテストはPostman or scenarigo を利用 ◦ APIテストのマニュアル実行で用いられる割合はPostmanが多い ◦

    ジョブのテストは内製ツール or scenarigo を利用 ◦ 開発チーム側ではgoのe2eテストツールでIntegration testまで実 行。APIテストからはQAチーム側で、異なるツールを用いて実行する ことが主 ▪ マイクロサービスの開発とテストファースト /テスト駆動開発 • https://engineering.mercari.com/blog/entry/gears-microservices/ 自動化の傾向まとめ
  13. • フロントエンド ◦ 基本的に Cypress ◦ Cypressで対応不可の部分はマニュアル実行 ◦ 開発エンジニアもIntegration testでCypressを利用

    ▪ メルペイフロントエンドのテスト自動化方針 • https://engineering.mercari.com/blog/entry/20211208-test-automation -policy-in-merpay-frontend/ 自動化の傾向まとめ
  14. • アプリ ◦ iOSは、XCUI ◦ Androidは、Espresso ◦ 開発エンジニアでのみ、テストコードを書いている状況 ◦ 機能追加時等、QAでのテストは100%マニュアルテスト

    ◦ 以前はappiumベースだった時もあった ▪ メルカリQA-SETチームが進めているテスト自動化についての質問まとめ • https://engineering.mercari.com/blog/entry/2017-10-03-093955/ 自動化の傾向まとめ
  15. • 全体 ◦ 開発/QAエンジニア共に近い環境で書けると自動化が進む傾向あり ▪ フロントエンド • 開発エンジニア:Cypress • QAエンジニア:Cypress

    ▪ バックエンド • 開発エンジニア:Go • QAエンジニア:Postman or scenarigo ▪ アプリ • 開発エンジニア:XCUI or Espresso • QAエンジニア:ほぼ関われていない 自動化の傾向まとめ
  16. • 全体 ◦ 基本的にツールは一つに絞る ◦ ツールの選定の要素として、 開発エンジニアが利用しやすい(馴染みある)ものに寄せる ◦ テストコードはシンプルに書くようにする(保守性/可読性重視) ▪

    開発エンジニアもQAもみんなが理解しやすいのを目指すべき ▪ 振る舞いこそ正義! 自動化ポリシー 「なぜE2Eテストでidを使うべきではないのか」 より引用(https://blog.autify.com/ja/why-id-should-not-be-used )
 

  17. • バックエンド ◦ APIテストの自動化はscenarigoを用いる ◦ バッチのテストも基本scenarigoを用いる ▪ DebugAPI経由でバッチと同じ処理を実行 ▪ pluginでバッチを実行

    ◦ ただし内製ツールでデータ準備をする場合、 内製ツールを拡張して自動テストできるようにする 自動化ポリシー
  18. • 対応ポリシー ◦ バックエンドに対象を絞る ◦ サポート対象は以下の観点で優先付 ▪ 自動化の基盤が整っていないサービス ▪ リリース/リグレッションテストが定期的に発生し、

    自動化ができていないサービス ◦ スムーズに運用するために ツールの理解を深める働きかけをする どうしていこうか?
  19. • ロードマップ 修正版 a. テスト自動化の現状整理 b. サポート対象のチームを選定 c. 自動化基盤の作成 d.

    自動テストの作成(サポート) e. (並行して)自動化ツールの勉強会 こうしていこう!
  20. 目次 01 課題 02 自動化チームの発足について 03 アクション • テスト自動化の現状整理 •

    自動化基盤の作成 • 自動テストの作成(サポート) など 04 おわりに
  21. 目次 01 課題 02 自動化チームの発足について 03 アクション • テスト自動化の現状整理 •

    自動化基盤の作成 • 自動テストの作成(サポート) など 04 おわりに
  22. • 成果 a. テスト自動化の状況を可視化した b. 自動化の基盤を整えた(=自動化できる状況を提供できた) c. 複数チームで、自動化の一歩目を踏み出せた d. 自動化をどうしてけばいいかの方向性を出すことができた

    • 課題 a. ケースの追加とメンテナンスがまだまだ難しい状況 ▪ 対応可能な人が少 ▪ ツールの使い方が難 b. アプリの自動化が未だにノータッチ 自動化チームの成果と今後の課題
  23. • その他 a. 今回定めた自動化のポリシーが、他の新規プロジェクトでも活きた ▪ mercari NFT • バックエンド(管理ツール) •

    フロントエンド(未ログイン時) 自動化チームの成果と今後の課題 方向性は 間違って なさそう?
  24. 目次 01 課題 02 自動化チームの発足について 03 アクション • テスト自動化の現状整理 •

    自動化基盤の作成 • 自動テストの作成(サポート) など 04 おわりに