はじめに

Firebase App Distributionの新機能「アプリ テスト エージェント(Android)」がプレビュー版として公開されたと知り、早速試してみました!
この機能は、自然言語でE2Eテストを記述し、Firebase App Distributionにアップロード済みのビルドでテストができるというものです。

https://x.com/firebase/status/1910414983621464496?s=46&t=yKn7uqbI1dbDePPhN8BBWw

アプリ テスト エージェントの有効化

Firebase App Distributionのページに飛ぶと「アプリ テスト エージェント」のバナーが表示されているので有効にします。

そうするとテストケースタブが出てくるので、そこから「新しいテストケース」の追加が可能になります。

今回E2Eテストするアプリについて

今回デモで作ったアプリはFlutter製で、Flutterの初期プロジェクトにログイン機能を追加したものになります。こちらでE2Eテストを実行します。

ログイン画面 ホーム画面 ログアウトDialog

自然言語でのE2Eテスト記述

E2Eテストを記述していきます。複数ステップが作成可能で、ステップごとに目標, ヒント(省略可), 成功基準(省略可) が記述できます。
今回は3ステップでE2Eテストを作成します。

まず、Googleログインに成功してホーム画面に遷移できることを確認します。

次に、ホーム画面のカウンターを操作して表示されている値を増やしてみます。

最後に、ログアウトしてログイン画面に戻れるかを確認します。

UIも分かりやすく、短時間でE2Eテストのシナリオが完成しました!
省略可ではありますが、ヒント成功基準を詳細に記述するとテストのブレが減るので良いと思います。

E2Eテスト実行

テストはテストケースタブと、リリース詳細から開始設定ができます。(CI/CDなどにも組み込めます)

テストケースタブ リリース詳細

開始すると以下の画面に遷移します。今回はこちらの設定で開始します。

デバイスに関してはかなりの数が用意されていて、特定のデバイスチェックを行いたい時も便利そうです。
一方でデバイスの個数がテスト件数に加算されるので注意が必要です。

ログイン認証情報は、Firebase Authenticationを使用したGoogleログインやメールパスワードでの認証など選択が可能です。
今回はGoogleログインを選択しています。(AIが用意されているGoogleアカウントでログインしてくれます!)

E2Eテスト結果

テストを実行するとリリース詳細欄に進捗が表示されます。

実行結果は以下です。今回の場合大体3分ほどでテストが完了し、テスト成功が確認できました。

また、右上の「アーティファクトを表示」から詳細なログや定期的なスクリーンショット、動画が確認可能です。

動画(video.mp4)に関しては以下のようなものが出力されています。

失敗時

ちなみに今回記事作成中にテストが1回失敗しました。
それはログイン時にローディングを表示しているが、AIがFlutterのpumpAndSettle()のように画面描画の終了を待ってくれないので、ローディングに入った瞬間に「ホーム画面に遷移する」が完了しないと判定されエラーになるというものでした。

このエラーはヒントに「ローディングを待つ」と記載することで回避できました!
以下のようにエラー原因がスクリーンショットで分かりやすかったり、動画の確認もできるので原因追及が非常に楽でした。

既知の問題

非常に便利な「アプリ テスト エージェント」ですが、まだ数点注意点の記載がありました。
やはりヒントの記載が重要そうです。

  • アプリ テスト エージェントは生成 AI を使用してアプリをテストするため、同じ手順に沿って異なるアクションを実行することがあります。
  • アプリ テスト エージェントは、タップ、テキストの入力、上方向へのスクロール、下方向へのスクロール、待機のアクションのみをサポートしています。
  • アプリ テスト エージェントは、完了に多くのアクションを必要とする 1 つのステップのみを含むテストを実行できません。複雑なタスクを複数の短いステップに分割すると、パフォーマンスが向上します。
  • アプリ テスト エージェントがスクロールせず、画面外の他の要素を表示しないことがあります。これは、スクロール可能であることを視覚的に示すものがない場合によく発生します。回避策として、「ヒント」フィールドを使用してスクロールを推奨できます。
  • アプリ テスト エージェントは、アクションを特定回数実行するなど、カウントに問題が生じることがあります。

また、テストの実行可能件数についても記載があります。
現状は一つのテストケースに多くのステップを含ませるのが良さそうです。

プレビュー期間中、AI ガイド付きテストは割り当て上限内で無料で提供されます。デフォルトの割り当て上限は 1 か月あたり 100 件のテストです。

複数のデバイスで複数のテストケースを実行する場合、または同じテストケースを複数のデバイスで実行する場合、複数のテストとしてカウントされます。たとえば、2 つのデバイスで 2 つのテストケースを実行した場合、合計 4 件のテストとしてカウントされます。

まとめ

Firebase App Distributionの新機能「アプリ テスト エージェント」は、自然言語でテストシナリオを手軽に記述し、ビルドからすぐにテストを開始できる点がすごく魅力的です。
最近、Playwright + MCPやShortestを利用したWeb向けの自然言語E2Eテストが話題に上がっている中で、モバイル向けの手法が登場したことは非常に嬉しい進化でした。

参考資料

Firebase App Distribution アプリ テスト エージェント(Android)

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link