【AI自動テスト】アプリテストエージェント(β版)使ってみた結果【Firebase】

に公開

はじめに

Firebaseがリリースしたテストエージェント(β版)を使用してみたのでレポートします。テストケースを自然言語で記述するだけで、AI(Gemini)がUIを読み取り、テストを実行してくれます。

ちなみに、現在はベータ版です。

概要

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

https://firebase.google.com/docs/app-distribution/android/app-testing-agent?hl=ja

何がすごいか

これまでのUIテストには、いくつかの大きな課題がありました。AI自動テストツールはこれらを一気に解決する可能性を感じます。AIが画面要素を理解し、自然言語でテストを定義できるため、テストが書きやすいだけでなく、テストの壊れやすさが大幅に改善されます。アプリのUIが変更されても、AIが柔軟に対応してくれるのです。

テストの書きにくさ

UIテストコードを書くためには、テストフレームワークの使い方から画面要素の特定方法(ID、XPath、セレクタなど)、テストの設計パターン、非同期処理の扱い方まで、幅広い知識が必要でした。

非開発者でもGUIでUIテストを記述、実行できるツールの台頭もありつつやはり時間のかかる作業でした。

テストの壊れやすさ

画面要素のIDやXPathが少しでも変更されると、テストはたちまち失敗してしまいます。アプリのUIが変更されるたびに、テストスクリプトの修正が必要で、メンテナンスコストが膨れ上がっていました。

実際の使用感

Flutter製アプリで検証してみました。

テストケースの作成

以下のように、自然言語でテストの目標を定義するだけで、AIが自動的にテストを実行してくれます。まるで人間にテストを指示しているかのような柔軟性があります。

テストの実行と結果確認

テストの実行は非常にシンプルです。アプリをFirebaseにアップロードし、テスト実行をクリックするだけ。テスト結果も詳細に確認でき、各テストの成功/失敗、スクリーンショット、操作ログなどが詳細に記録されます。

↑テスト実行直後。おそらくアプリのインストールから始まるためか5分ほどかかった。

↑アプリが立ち上がり、テスト開始。ここからはさすがに素早い。

↑完了。テストケースを追加すればさらにテスト可能。

(なにやらSMS一応入れようとしているけど、ちゃんとプロンプト書けばすぐ改善できそう)

料金

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

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

おわりに

AI自動テストツールによって、開発効率の向上はもちろんのこと、今後はテスト自動化の民主化がさらに進むと予想されます。これまでテスト自動化はエンジニアの専門領域でしたが、AIの力を借りることで、非エンジニアでもテストを実行できるようになりそうですね。

まだ発展途上の機能ではありますが、今後の進化に注目していきたいと思います。

Fivot Tech Blog

Discussion