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

メルペイでのリグレッションテスト自動化推進のこれまでとこれから

 メルペイでのリグレッションテスト自動化推進のこれまでとこれから

約1年にわたるメルペイでのiOSアプリのリグレッションテストの自動化推進の流れを紹介したスライドとなります。/ This slide shows the flow of promoting the automation of iOS app regression testing at Merpay for a period of about a year.

Db5cf21a75ebe2484b95ea9dec5f573b?s=128

Shingo Tamaki

April 13, 2021
Tweet

Transcript

  1. 1 メルペイでのリグレッションテスト自動化推進のこ れまでとこれから 株式会社メルペイ iOS EM 玉城信悟

  2. 2 Full Name : 玉城信悟(Shingo Tamaki) 
 Role: iOS EM

    
 Joining Time : 2020/03/01 
 Career : KeywareSolutions→Techfirm→Origami→Merpay 
 Hobby : bouldering󰩥/airsoft🔫/martial arts(karate/kickboxing)🥊🤛
 玉城信悟

  3. 3 これまでのリグレッションテスト自動化のあゆみ agenda 1年の振り返り これからのやりたい事 02 03 01

  4. 4 ~2020/03

  5. 5 ~2020/03 
 
 - 主にマニュアルテスト 
 - ボランタリーベースでUIテストの導入開始 


    - UITestはCI環境がない。各メンバーのPC(ローカル)で実行
 - テストケースの管理はGoogle Spread sheets 
 - XCUITestによる自動化をケース毎にチケット化 
 メルペイのOrigami買収により3月から 入社
 リグレッションテスト自動化開始 
 入社
 3月
 

  6. 6 2020/04~2020/06

  7. 7 2020/04~2020/06 4月
 
 - ブランチ作成ルール 
 - PageObject導入
 -

    自動化対応数の可視化 
 - 目標スループット設定 
 - UIテストに関しては大きな変更 なし
 - XCTSkip
 テストの方針整備
 WWDC20
 5月
 
 - iOS13対応
 - Activityによる構造化 
 - Main Thread Checker 
 テスト追加
 6月
 
 - ケース毎にトラブル シューティング
 - 振り返り
 テスト追加
 自動化率 
 30%

  8. 8 2020/04~2020/06 - 進捗の可視化、目標スループットの 設定 - テストケースによって実装難易度な どがかなり変わるため、着手順序の 変更などを相談していた -

    Activityによる構造化とActivity名 によるスプレッドシート上の IDとの紐 付け
  9. 9 2020/04~2020/06 主な問題💥 - UIView.AnimationEnable = falseを設定している 場合に表示されなくなる要素がありテストが失敗 - iOS13でのUIツリーの構造が変わった事により

    動かない問題 - Main Thread Checkerによるテストの失敗 - ビルド時間・UIテストの実装、デバッグ、実行時 間の長さ
  10. 10 2020/07~2020/09

  11. 11 2020/07~2020/09 7月
 
 - ドキュメンテーション 
 - TestRail移行
 -

    テストユーザー問題 
 - CI導入
 - PJ発足
 - API化
 テスト追加
 user-tkool機能拡張 
 8月
 
 - TestRail API調査
 テスト追加
 9月
 
 - TestRail連携
 - user-tkool APIクライアン ト開発
 - CI上での安定化
 - 振り返り
 テスト追加
 - XCUITestのつらさを乗り越え て、iOSアプリにUITestを導入 する
 iOSDC
 - テスト系の話は特になし 
 Recap of WWDC20
 自動化率 
 48%

  12. 12 2020/07~2020/09 - ドキュメンテーション - オンボーディング - Tips - TestRailへの移行

    - スプレッドシートの廃止 - 自動テストの結果の連携 - CircleCIでの実行 - 新しいワークフローの作成
  13. 13 主な問題💥 - 一部のテストケースのユーザーの状態を作るの が難しい事がわかってきた - User-tkoolの機能追加要望の洗い出し - CircleCI上でのテスト安定化 -

    主な原因分析 - XcodeGenでTestPlanが使えない 2020/07~2020/09
  14. 14 2020/10~2020/12

  15. 15 2020/10~2020/12 10月
 
 - 複数端末検討
 - 複数OS検討
 - xcresultの活用事例などを紹

    介
 テスト追加&安定化 
 Merpay Tech Talk
 11月
 
 - iOS12対応開始
 - CIの実行時間改善
 - テスト実装者の増加 
 テスト追加&安定化
 12月
 
 - iOS14.2のSafariの不具 合
 テスト追加&安定化 
 - テストユーザーのキャッシュ プール検討
 user-tkoolの大型新機能 
 自動化率 
 72%

  16. 16 - テスト安定化のための施策検討 - テストユーザーの作成の安定化 - テスト環境の安定化 - 複数端末&OS対応 -

    iOS12~14 - テストケースの最適化 - 全体件数のスリム化検討 - テスト実装者の増加 - PJでUIテストの実装・メンテナンスが今後 やっていけるようにチームでナレッジの共有 や終わりに差し掛かった PJのメンバへのテ スト作成依頼 2020/10~2020/12
  17. 17 主な問題💥 - ボトルネック調査 - 自動化しにくいテストは何か - 新規に追加されたテストケースの確認 - CircleCIのiOS12未サポート問題

    - 新機能による変更への対応 - CircleCIのジョブの実行制限時間 (5h)問題 - ジョブ分割 - iOS14.2のSafariの不具合対応 2020/10~2020/12
  18. 18 2021/01~2021/03

  19. 19 テスト作成と安定化
 2021/01~2021/03 1月
 
 - CircleCI上でのiOS12検 証
 - テスト実行時間短縮

    
 - 複数端末のつらさを乗り越え てiOS UITestを実行 
 - 
 テスト作成と安定化
 Merpay Tech Talk
 2月
 
 - XCTSkipとTestRailの Skipの導入
 テスト作成と安定化
 3月
 
 -

  20. 20 - テストの実行時間の短縮化 - ブランチ名による限定的テストケースの実 行 - ログイン済み起動対応 - テストユーザーのキャッシュ機能による安定化

    - CircleCIのiOS12対応 - CircleCIのワークフローのリファクタリング - 画面更新によるUIテストの更新 2021/01~2020/03
  21. 21 主な問題💥 - テストユーザーの利用制限問題 - user-tkoolで対応 - CircleCIのPersisting Dataの制限問題 -

    Workflowの見直し 2021/01~2020/03
  22. 22 1年を振り返って

  23. 23 - テストを書いたら終わりではなく始まり - 運用されるまで根気強く続ける必要があった - 新しく追加される機能への追随するコストが見え 始めた - 治具も合わせて開発して複雑化していく状態を作

    れるようにしていく必要がある 1年を振り返って
  24. 24 2021/04~

  25. 25 - プロセス化されたリグレッションテストの自動化の 実施 - 視覚化とそれを利用した戦略的なテストの運用 - より効率的なテストの実装の検討 2021/4~

  26. 26 以上

  27. 27 We are hiring!! Link