Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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)🥊🤛
 玉城信悟


Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

4 ~2020/03

Slide 5

Slide 5 text

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


Slide 6

Slide 6 text

6 2020/04~2020/06

Slide 7

Slide 7 text

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


Slide 8

Slide 8 text

8 2020/04~2020/06 - 進捗の可視化、目標スループットの 設定 - テストケースによって実装難易度な どがかなり変わるため、着手順序の 変更などを相談していた - Activityによる構造化とActivity名 によるスプレッドシート上の IDとの紐 付け

Slide 9

Slide 9 text

9 2020/04~2020/06 主な問題💥 - UIView.AnimationEnable = falseを設定している 場合に表示されなくなる要素がありテストが失敗 - iOS13でのUIツリーの構造が変わった事により 動かない問題 - Main Thread Checkerによるテストの失敗 - ビルド時間・UIテストの実装、デバッグ、実行時 間の長さ

Slide 10

Slide 10 text

10 2020/07~2020/09

Slide 11

Slide 11 text

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%


Slide 12

Slide 12 text

12 2020/07~2020/09 - ドキュメンテーション - オンボーディング - Tips - TestRailへの移行 - スプレッドシートの廃止 - 自動テストの結果の連携 - CircleCIでの実行 - 新しいワークフローの作成

Slide 13

Slide 13 text

13 主な問題💥 - 一部のテストケースのユーザーの状態を作るの が難しい事がわかってきた - User-tkoolの機能追加要望の洗い出し - CircleCI上でのテスト安定化 - 主な原因分析 - XcodeGenでTestPlanが使えない 2020/07~2020/09

Slide 14

Slide 14 text

14 2020/10~2020/12

Slide 15

Slide 15 text

15 2020/10~2020/12 10月
 
 - 複数端末検討
 - 複数OS検討
 - xcresultの活用事例などを紹 介
 テスト追加&安定化 
 Merpay Tech Talk
 11月
 
 - iOS12対応開始
 - CIの実行時間改善
 - テスト実装者の増加 
 テスト追加&安定化
 12月
 
 - iOS14.2のSafariの不具 合
 テスト追加&安定化 
 - テストユーザーのキャッシュ プール検討
 user-tkoolの大型新機能 
 自動化率 
 72%


Slide 16

Slide 16 text

16 - テスト安定化のための施策検討 - テストユーザーの作成の安定化 - テスト環境の安定化 - 複数端末&OS対応 - iOS12~14 - テストケースの最適化 - 全体件数のスリム化検討 - テスト実装者の増加 - PJでUIテストの実装・メンテナンスが今後 やっていけるようにチームでナレッジの共有 や終わりに差し掛かった PJのメンバへのテ スト作成依頼 2020/10~2020/12

Slide 17

Slide 17 text

17 主な問題💥 - ボトルネック調査 - 自動化しにくいテストは何か - 新規に追加されたテストケースの確認 - CircleCIのiOS12未サポート問題 - 新機能による変更への対応 - CircleCIのジョブの実行制限時間 (5h)問題 - ジョブ分割 - iOS14.2のSafariの不具合対応 2020/10~2020/12

Slide 18

Slide 18 text

18 2021/01~2021/03

Slide 19

Slide 19 text

19 テスト作成と安定化
 2021/01~2021/03 1月
 
 - CircleCI上でのiOS12検 証
 - テスト実行時間短縮 
 - 複数端末のつらさを乗り越え てiOS UITestを実行 
 - 
 テスト作成と安定化
 Merpay Tech Talk
 2月
 
 - XCTSkipとTestRailの Skipの導入
 テスト作成と安定化
 3月
 
 -


Slide 20

Slide 20 text

20 - テストの実行時間の短縮化 - ブランチ名による限定的テストケースの実 行 - ログイン済み起動対応 - テストユーザーのキャッシュ機能による安定化 - CircleCIのiOS12対応 - CircleCIのワークフローのリファクタリング - 画面更新によるUIテストの更新 2021/01~2020/03

Slide 21

Slide 21 text

21 主な問題💥 - テストユーザーの利用制限問題 - user-tkoolで対応 - CircleCIのPersisting Dataの制限問題 - Workflowの見直し 2021/01~2020/03

Slide 22

Slide 22 text

22 1年を振り返って

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

24 2021/04~

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

26 以上

Slide 27

Slide 27 text

27 We are hiring!! Link