Firebase App Testing Agentで始めるAIベースの柔軟なE2Eテスト
はじめに
モバイルアプリのE2Eテストを導入・検討する際、以下のようなケースに遭遇して思ったより導入が難航した経験はないでしょうか?
- 初回起動時のみ出るチュートリアルやオンボーディング画面
- 不定期に出現するプッシュ通知許可や位置情報のリクエスト
- 特定条件下だけで表示される広告やモーダル
- A/BテストやRemote Configによって変化するUIフロー
こうした「出るかもしれないUI」に対応しようとすると、テストシナリオはどんどん複雑になり、メンテナンスも難しくなってきます。
そこで今回注目したのが、Firebase App Testing Agentです。自然言語による柔軟な指示で、従来のE2Eテストでは対応しづらいケースを突破できる可能性があります。
本記事では、実際にデモアプリを使ってこのツールを試した結果と、その活用方法について紹介します。
Firebase App Testing Agentとは?
Firebase App Testing Agentは、2025年4月にGoogleが発表したGemini for Firebaseベースの新しいテスト実行支援ツールです。
AIエージェントが「自然言語による曖昧な操作指示」を理解し、E2Eテストを自動で進めることができるのが最大の特徴です。
従来のテスト自動化では、ボタンのIDや表示テキストを正確に指定して操作する必要がありました。しかしApp Testing Agentでは、以下のようにテストエージェントへ操作のゴール(目標)を自然言語で指示します。
- 目標
- テストエージェントが行うべき操作を記述
- 成功基準
- テストエージェントがそのステップの目標を達成したか判断する基準
- ヒント
- テストエージェントの理解を促すための追加情報を記述
このようにFirebase App Testing Agentは、裏側でアプリの画面を解析しながら最適な操作を判断してくれるため、テストシナリオの記述量を減らしつつ、柔軟性の高いテストの実現が期待できます。
デモアプリでの実験
実際に Firebase App Testing Agent を使い、アプリ起動時に不規則に表示されるモーダルダイアログ群を突破できるか、デモアプリで実験してみました。
実験用デモアプリ
- ポートフォリオアプリ
- https://asmz.github.io/portfolio-app-flutter/ (←これのAndroid版)
-
Profile
タブに各種Webサービスのアカウント情報が6件表示される
実験用として、アプリ起動時に以下のUIを表示するよう実装しています
- 画面の大半を覆うWelcomeモーダルダイアログ
- その上に重なって表示されるFirebase In-App Messaging
- Welcomeダイアログを閉じると出てくる通知許可アラート
- 通知を許可すると画面下を一部隠す形で表示されるSnackBar
テストケースの内容
- 目標
- アプリを起動しProfileタブ内をスクロールし、アカウントが全て表示されていることを確認する
- 成功基準
- リンク付きのアカウントは6つあること
特に何も対応せずこのテストを実行すると、モーダルやアラートにアカウント情報が隠されてしまい、上記の成功基準を満たせず失敗します。
突破実験
この状況をうまく突破してもらうため、以下のヒント欄に自然言語で追加指示を記載しました。
- ヒント
- もしProfile画面の上に重なって表示されるモーダルやアラートがある場合は全て閉じること
- SnackBarで画面が隠されている場合は消えるまで待つ
ここでのポイントは、閉じるべきダイアログの数や待機時間などを「具体的に指示しない」ことです。あえて曖昧な指示にすることで、状況に応じた柔軟な対応を期待しました。
この状態でテスト再実行したところ、エージェントがうまくこのヒントを読み取ってくれたようで、複数重なったモーダルやアラートを突破し、無事テストケースを通過させることができました。
このように、画面の状況に応じてある程度柔軟にエージェントが対応してくれることがわかり、「どの順番で何が出るか分からない」といったUIフローの突破に一定の手応えを感じました。
まとめ
モバイルアプリのE2Eテストにおいて、不規則なモーダルダイアログや分岐フローの存在が、導入の際の大きな障壁となることがあります。
Firebase App Testing Agentを活用すれば、自然言語による柔軟な指示によって、複雑なUIの状況にも対応可能となり、テストシナリオをよりシンプルに保ちながら自動化できる可能性が広がります。
もちろん現時点ではAndroidのみの対応であることや、成功率に課題が残るケースもありますが、今後の進化次第では、モバイルE2Eテストのハードルを下げる新しい選択肢となるかもしれません。
使いどころを見極めつつ、今後のアップデートも引き続きウォッチしていきたいと思います。
Discussion