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

Unity製モバイルアプリを自動テストする仕組みを作ってみた

uechan16
December 06, 2023

 Unity製モバイルアプリを自動テストする仕組みを作ってみた

11月21日にJaSST nano vol30で発表したスライドです

テスト自動化の成功事例を語ろう by T-DASH Advent Calendar 2023にも掲載しています。
https://qiita.com/advent-calendar/2023/t-dash02

uechan16

December 06, 2023
Tweet

More Decks by uechan16

Other Decks in Programming

Transcript

  1. 自己紹介 uechan   @uechang16 井之上 心也 趣味:音楽鑑賞、ポケモンカード 略歴: 2017年-2022年 大手メーカの品質保証部門で画像処理、セキュリティ関連のQA 2022年-現在

    Psychic VR Labで「STYLY」の1人目QAとしてJoin JaSST nano初登壇です。 QAエンジニア歴7年です! よろしくお願いします!!
  2. STYLYの動作デバイス 種別 デバイス名 PC VR Steam PC VR VIVEPORT(PC) スマートフォン

    Mobile/Android スマートフォン Mobile/iOS スマートフォン SATCH/Android スマートフォン SATCH/iOS VR ゴーグル Quest2 AR ゴーグル XREAL VR ゴーグル Pico Neo3 VR ゴーグル Pico4 VR ゴーグル VIVE Flow VR ゴーグル VIVE XR Elite 裸眼立体視ディスプレイ SR Display Web WebClient Web Studio
  3. リリースフロー 実装 PR出して レビュー後 マージ PRをまとめ リリースビル ドに QA リリース!

    🎉 ・実装者の動 作確認 ・Unity上の 単体テスト ・レビュー ・レビュー担当者 の動作確認 ・変更点に対する 機能/非機能テスト ・リグレッション テスト ・探索型テスト
  4. リリースフロー 実装 PR出して レビュー後 マージ PRをまとめ リリースビル ドに QA リリース!

    🎉 ・実装者の動 作確認 ・Unity上の 単体テスト ・レビュー ・レビュー担当者 の動作確認 ・変更点に対する 機能/非機能テスト ・リグレッション テスト ・探索型テスト 同じテストケースを毎回行うリグレッションテストをPR発行時にできないか? ※QA時のリグレッションテストを完全に無くすのではなく、負荷分散的な意味
  5. 苦労した事と今の悩み • GithubActionsとAirtestの連携がめちゃくちゃ大変でした ◦ Airtest CLIが動かない!! ◦ Android/iOS並列処理が難しい!! ▪ Shell芸でなんとかしました

    • 謎にテストがfailする現象。。。。 ◦ 今も悩んでます ◦ 再試行すると直るやつ • Self-hosted runnerなので複数PRを同時に処理できない。 ◦ 開発が盛り上がっているとPRマージまで時間がかかる ▪ ビルドからテスト完了まで2時間30分はかかる
  6. まとめ • テスト工数削減などを主目的に ◦ リグレッションテストの自動化を行いました • Airtest + pocoはUnityアプリも自動テストできる! •

    より詳しい技術的な話はQiitaにあります。 Unity製Android/iOSアプリのGUIを自動テストする仕組みを作ってみた