以下の内容はhttps://www.m3tech.blog/entry/2025/06/10/094324より取得しました。


Firebase App Test Agent 自然言語のE2Eテストを試してみた

【QAチーム ブログリレー2日目】

こんにちは。逝去から1年経っての俄かポール・オースター2巡目通読、追憶がちなマルチデバイスチームQA前川です。

チームで開発する複数アプリとサーバサイドのQAでAI活用による効率化が求められる中、Firebase App DistributionのApp Test Agent機能がAndroidでプレビューリリースされた、ということで試してみました。 自然言語テストなので厳密な記述は不要で与しやすいかと思いきや、自然言語ゆえに意外なところでやや手間どった初動という感触でした。

App Test Agentとは

App Test Agentとは

「Gemini in Firebase を活用したテストケースの生成、管理、実行エージェントです。テストの目標を自然言語で定義すると、エージェントは AI を使用してアプリを理解して操作し、ユーザー インタラクションをシミュレートして、詳細なテスト結果を提供します。」 (Firebase公式サイトより)

Firebase App Distributionにアップしたビルドに対して自然言語でE2Eテストを記述して実行できます。

今回はエムスリーのサービスの軸であるポータルアプリ”m3.comアプリ”で必須機能、認証&ユーザー問い合わせ&ログアウトのステップで試してみます。Flux+MVVMアーキテクチャのアプリです。 m3.comアプリの設計について気になる方はこちらをご覧ください。

有効化

FirebaseのApp Distrobutionページを開くと最初にオプトインのバナーが表示されます。

opt-in
有効にするとテストケースタブが生成します。そこで新しいテストケースを追加していきます。
TestCaseTab

テストケース記述&実行

タイトルに要件、今回は「ログインしてホーム画面に遷移し、問い合わせ送信する」 ステップごとに目標に操作内容、ヒント&成功基準(省略可) を記述し、別のステップを追加でシナリオを作成してきます。

making_steps

紹介記事などを参考に詳細な指示記載なしに、Geminiへの絶大な信頼をもとに上記のような記述レベルでログイン->問い合わせ->ログアウトというシナリオを一旦作成、実行しました。 テストケース作成後に一覧でテスト実行押下で実行のカスタマイズメニューが表示され、実施するビルドを選択、デバイスとログイン認証ユーザーの情報をセットしてテストを実行押下、で走りはじめます。

testcase_kist
test_customize
App Distoribution>リリースタブで選択したビルドを開くと、アプリテストエージェントpreviewタブに実行中のテストが保留中で表示されます。
test_running

そして見事に初手から失敗しました。 「詳細を表示」で実行結果リストの失敗ステップを開き、さらに失敗箇所をタップするとキャプチャつきでエラー状態が目視で確認できます。

failure_login01
failure_login02
failure_login03

まさかのユーザーIDが全角入力でした。なんでやねん。認証情報は当然半角英数でセットして実行していますが、想定外にstrictなAgentでした。 ちなみに実行結果の詳細は「アーティファクトを表示」からGoogleCloudを開き、output > sitemap.pngでも参照可能です。

artifact01
sitemap
ステップ1で入力モード指定を追加します。
testcase_login_fix
しかし再び失敗、今度はユーザーID改行でした。
login_failure_LF
そう来たかとエンターキーを押さずにパスワードフィールドにフォーカス移すとステップを追加
testcase_fix2
しかしなお改行は回避できず失敗
login_failure_LF2

ユーザーの通常操作では改行が発生しないようコントロールが入っていますが、テストエージェントでは改行可能な実装となっていたため、ユーザーIDで改行できないよう制限を追加することで突破できました。 テストエージェントの性能から発したとはいえ、結果、改善となったわけではあります。

test_result_success

ちなみにログイン後にモーダルダイアログを表示して訴求するケースがあり、そこを閉じてスルーしてホーム画面表示する、という回避のヒント記述を試行中ですが、いまだ成功しておらず模索中です。

所感

公式の既知の問題にも記載されていますが、

  • アクションをなるべくステップ細分化し、
  • スクリーン内のテスト外の要素をヒントでいかに回避できるか、

がテストケース作成の効率化に重要なポイントとなりそうです。 また、本番環境での通信に限られるため、サーバ応答に準じたケースは難しく、あくまでも汎用的なUIテストベースとなりそうです。

とはいえ初手で若干手間どりはしたものの、自然言語でライトに記述でき、ライトに実行して即修正が回せる自然言語テスト、使いどころは多々ありそうです。

We are hiring!

マルチデバイスチームではOSや採用技術を問わないモバイルアプリ開発&検証、そして運用フェーズにも興味のあるQAエンジニアを絶賛募集しています。 興味がありましたらぜひご応募ください!

jobs.m3.com




以上の内容はhttps://www.m3tech.blog/entry/2025/06/10/094324より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14