Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モバイルアプリ開発へE2Eテストを導入しよう
Search
asmz
July 11, 2025
0
88
モバイルアプリ開発へE2Eテストを導入しよう
Talked at 宮城アプリ開発勉強会 2025
asmz
July 11, 2025
Tweet
Share
More Decks by asmz
See All by asmz
React Native+Expoで始めるWebフロント開発
asmz
0
400
UIデザインを考える全ての人たちに捧げる Apple Human Interface Guidelinesのススメ
asmz
1
2.3k
Overview of Swift and iOS App development
asmz
0
1.3k
How to get mobile app logs using Firebase Crashlytics
asmz
0
860
OK Google, Deploy the iOS app
asmz
1
890
Cooperate with Adobe XD, Zeplin and Xcode
asmz
1
3.1k
phpconsen LT
asmz
0
750
SWWDC 39
asmz
1
250
Create voice assistant app by Dialogflow
asmz
0
850
Featured
See All Featured
Done Done
chrislema
185
16k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
How STYLIGHT went responsive
nonsquared
100
5.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
The Language of Interfaces
destraynor
160
25k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Speed Design
sergeychernyshev
32
1.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Transcript
asmz.beer モバイルアプリ開発へ 自動E2Eテストを導入しよう – Maestro, Firebase App Testing Agent -
2025/7/11 宮城アプリ開発勉強会 2025 Akira Shimizu / asmz
asmz.beer 誰なのか? • Akira Shimizu / asmz (@_asmz) • https://asmz.beer/
• モバイルアプリエンジニア ◦ iOS / Android / React Native / 最近はFlutter • 株式会社フライヤー所属 ◦ https://www.flierinc.com/ ◦ モバイルアプリケーションG テックリード
asmz.beer flierとは • 1冊10分で本の要約が読めるサービス • 約4,000冊超の要約が読み放題 • 通勤時間などスキマ時間で知識を吸収
asmz.beer アジェンダ • E2Eテスト導入の動機付け • Maestroによる自動E2Eテスト • Firebase App Testing
Agent(AIテスト) • まとめ
asmz.beer E2Eテスト導入の動機付け
asmz.beer 現在のアプリチームの開発の流れ • 1スプリント2週間 ◦ 前半1週間:開発 ◦ 後半1週間:QA、リリース準備 Sprint N
Sprint N+1 Week N Week N+1 Week N+2 feature A feature B feature C feature D feature E QA, Release - feature A - feature B - feature C QA, Release - feature D - feature E Week N+3
asmz.beer 現在のアプリチームの開発の流れ • QA(Quality Assurance)対象 ◦ スプリント内で行ったコード変 更箇所とその周辺 差分無し アプリケーションコード全体
新規追加コード 変更コード QA対象
asmz.beer 現在のアプリチームの開発の流れ • 課題感 ◦ デグレチェックが不十分 ◦ カバーするリソース不足 差分無し アプリケーションコード全体
新規追加コード 変更コード QA対象外
asmz.beer 現在のアプリチームの開発の流れ • 対応案(今回の動機付け) ◦ E2Eテストでカバーしたい 差分無し アプリケーションコード全体 新規追加コード 変更コード
E2E対象 QA対象
asmz.beer Maestroによる自動 E2Eテスト
asmz.beer Maestroとは • https://maestro.dev/ • E2Eテストフレームワーク • iOS/Androidネイティブ、React Native、Flutterに対応
asmz.beer Maestroの特徴 • Yamlによる直感的なテストシナリオ定義 • アプリ起動 • ボトムナビゲーションのBlogタブを タップ •
リスト内で「Kotlin」から始まる要素 までスクロール • その要素をタップ • 左上のボタンを押して戻る
asmz.beer Maestroの特徴 • Flutter integration testと比較 ボイラープレートが大幅に少なく、手順のみの記述で済む
asmz.beer 実演
asmz.beer 実運用での課題 • 起動フローが複雑な場合、それを突破するシナリオを 用意するのが結構たいへん ◦ 初回起動時オンボーディング ◦ ホームへ辿り着くにはログイン必須 ◦
起動後不特定多数のポップアップ表示
asmz.beer 実運用での課題 例)起動後不特定多数の ポップアップ表示を閉じる OSによって表示が異な る場合はフロー分岐が 必要 発生しうるパターン全て で閉じるよう対処 もう少しfuzzyにやりたい気持ち...
asmz.beer Firebase App Testing Agent(AIテスト)
asmz.beer Firebase App Testing Agentとは https://firebase.google.com/docs/app-distribution/android/app-testing-agent?hl=ja • Gemini in Firebaseがベース
• 自然言語で定義したテストケースをAI Agentが理解し、 動作をシミュレートしてくれる自動テストツール • 現在プレビュー版でAndroidのみサポート
asmz.beer 自然言語によるテストケース作成 目標: テストエージェントが行う べき操作を記述 ヒント: テストエージェントの理解 を促す追加情報を提供 成功基準 :
テストエージェントがステッ プを正常に完了したか判 断する基準
asmz.beer 実行結果 テストエージェントが各ス テップでどういう動作をし たのかダイジェストで見れ る テストのフル動画や全ログは GCSに保存されており、ここの ボタンから行ける
asmz.beer これならfuzzyにやってくれるのでは ...?
asmz.beer 実験 • 「起動後不特定多数のポップアップを 表示」を再現 ◦ Firebase In-App Messageを1つ表示 ◦
モーダル表示、閉じたらアラート表示 ◦ アラート閉じたらSnackBar表示
asmz.beer 対応前テストケース • モーダル表示されると成功基準を達成できず失敗 6つの要素を見つけられ ずテスト失敗
asmz.beer テストケース編集 ここの記述を追記 モーダルやアラートがいく つ出るかは不確定なので 細かい言及はせずfuzzy に記載
asmz.beer 対応後テストケース • いい感じに突破してくれた!
asmz.beer その他使ってみて所感 • 同じテストケースでも実行の都度動きが違ったりしてまだ安定しない ◦ 公式ドキュメントにも 既知の問題として挙がっている • 1ステップでうまくいかない時はステップを分割した方が精度が上がった ◦
例) メアド・パスワードを入れてログインボタンを押し、ログイン成功させホーム画面へ遷移 する ▪ メアド・パスワードを入力 • 成功基準:メアド・パスワード欄に文字が入力されていること ▪ ログインボタンを押し、ログインを実行する • 成功基準:ローディングが消え「ホーム」という文字列が表示されていること
asmz.beer まとめ
asmz.beer まとめ • しっかりとテストケース通りの動作を保証する厳密な E2Eテストをしたい ◦ Maestroはいいぞ • 細かい挙動は置いといて、ざっと全体的な挙動確認を 自動で行いたい
◦ Firebase App Testing Agentはいいぞ
asmz.beer Enjoy, Engineering! 2025/7/11 宮城アプリ開発勉強会 2025 Akira Shimizu / asmz