アプリ テスト エージェントは、Firebase の Gemini を活用したテストケースの生成、管理、実行エージェントです。テストの目標を自然言語で定義すると、エージェントは AI を使用してアプリを理解して操作し、ユーザー操作をシミュレートして、詳細なテスト結果を提供します。
アプリ テスト エージェントによるデータの使用方法
アプリ テスト エージェントは Gemini in Firebase から提供され、同じ利用規約が適用されます。Gemini in Firebase がデータを使用する方法の詳細については、Gemini in Firebase によるデータの使用方法をご覧ください。
始める前に
まだ登録していない場合は、アプリを Firebase に登録します。
他の Firebase プロダクトを使用していない場合は、プロジェクトを作成してアプリを登録するだけでかまいません。アプリに SDK を追加する必要はありません。ただし、今後追加のプロダクトを使用する場合は、Firebase コンソールを使用して Firebase を追加するのステップをすべて完了してください。
アプリのプレリリース版をテスターに配布する準備ができたら、通常のプロセスに従って APK または AAB をビルドします。APK はデバッグ鍵またはアプリ署名鍵を使用して署名する必要があります。
テストケースを作成する
Gemini in Firebase を使用するアプリ テスト エージェントは、Firebase コンソールから選択したカスタマイズを使用して、AI ガイド付きテストまたはランダム クロールテストを作成できます。APK または AAB ファイルをアップロードしたら、Firebase コンソールの App Distribution ページを開き、次の手順を行います。
- [テストケース] ページで、[新しいテストケース] をクリックします。独自のテストケースを作成しない場合は、提供されているサンプル テストケースを変更するか、使用してください。
- [テストケースを追加] ダイアログで、テストケース名と、アプリ テスト エージェントにアプリでテストしてほしい内容を説明する目標を追加して、テストケースをカスタマイズします。
- (省略可)[テストケースを追加] ダイアログで、必要に応じてヒントを追加し、アプリ テスト エージェントがアプリを理解し、操作しやすくするための追加情報を提供します。
- (省略可)[テストケースを追加] ダイアログで、必要に応じて成功基準を追加し、アプリ テスト エージェントがテストの成功を判断するために使用する追加のガイダンスを提供します。
- テストのカスタマイズが完了したら、[保存] をクリックします。
テストケースに別のステップを追加することもできます。別のステップを追加する場合は、アプリ テスト エージェントがテストする順序に応じてステップの順序を並べ替えることができます。
アプリ テスト エージェントを使用すると、アプリの動作にシステム変数を追加して、Test Lab での実行時の動作を変更できます。詳細については、Android Studio でテストを実行するをご覧ください。
サンプル テストケース
次の例は、アプリ テスト エージェントを使用してテストケースを作成する方法を示しています。
ホームページのテスト |
テストタイトル
|
ホームページの読み込み
|
目標
|
ホームページを読み込む
|
ヒント
|
オンボーディング画面を閉じます。ポップアップを閉じます。ログインしないでください。
|
成功基準
|
アプリのメイン ホームページが画面に表示され、すべての画像が読み込まれ、エラーは表示されません。
|
Gemini を使用してテストを作成する
アプリ テスト エージェントでは、[テストを実行] ボタンをクリックし、Gemini を使用して AI ガイド付きテストを実行できます。既存のテストケースのいずれかを使用し、アプリ テスト エージェントのカスタマイズ画面で [AI ガイド付きテスト] を選択できます。Gemini は、提供されたテストケースを使用して、コア ユーザー ジャーニーをクロールします。
既存のテストケースを使用して AI ガイド付きテストを作成しない場合は、[テストを実行] ボタンを使用して、AI ガイド付きテストまたはランダム クロールテストを作成できます。実行するテストタイプは、アプリ テスト エージェントのカスタマイズ画面で選択できます。
テストの結果は、[リリース] ページで、リリースの [アプリ テスト エージェント] タブから確認できます。[詳細を表示] ボタンをクリックすると、[テスト結果] ダイアログが開き、問題、アプリのスクリーンショット、テスト中に Gemini が行ったジャーニーが表示されます。
ランダム クロールテストを作成する
アプリ テスト エージェントでランダム クロールテストを作成する場合は、自動テスター機能を使用します。自動テスター機能を使用すると、アプリビルドをテスターに自動的に配布できます。この機能は、[アプリテスト エージェントのカスタマイズ] ダイアログで追加したカスタマイズに従って、アプリのランダム クロールを行います。
ビルドを自動的にテストする
CI / CD パイプラインなどから新しいビルドでアプリテスト エージェント テストを自動的に実行するには、Firebase CLI、App Distribution の Gradle、または fastlane プラグインを使用してビルドをエージェントに配布します。
Firebase CLI を使用してビルドを自動的にテストする
アプリ テスト エージェントの機能を使用するには、少なくとも 1 台のテストデバイスと 1 つのテストケース ID を指定する必要があります。テストケース ID は、Firebase コンソールの [テストケース] ページで確認してダウンロードできます。Firebase CLI の使用開始と配布を構成するさまざまな方法について詳しくは、Firebase CLI を使用して Android アプリをテスターに配布するをご覧ください。
appdistribution:distribute
コマンドを実行してアプリをアップロードし、次のパラメータを使用して、アプリ テスト エージェント機能への配布を構成します。
appdistribution:distribute オプション |
--test-devices または
--test-devices-file
|
アプリ テスト エージェント機能にビルドを配布するテストデバイス。
テストデバイスは、テストデバイスのセミコロン区切りのリストとして指定できます。
--test-devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
または、テストデバイスのセミコロン区切りのリストを含む書式なしテキスト ファイルのパスを指定します。
--test-devices-file: "/path/to/test-devices.txt"
|
--test-username
|
テスト中に使用する自動ログインのユーザー名。
|
--test-password または
--test-password-file
|
テスト中に使用する自動ログイン用のパスワード。
または、パスワードを含む書式なしテキスト ファイルのパスを指定します。
--test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
テストを非同期で実行します。自動テストの結果は Firebase コンソールで確認できます。
|
--test-case-ids または
--test-case-ids-file
|
AI を活用した自動テストを実行するテストケース ID のカンマ区切りのリスト。
--test-case-ids: "load-app,play-the-first-level"
または、テストケース ID のカンマまたは改行区切りのリストを含む書式なしテキスト ファイルのパスを指定します。
--test-case-ids-file: "/path/to/test-case-ids.txt"
|
Gradle を使用してビルドを自動的にテストする
アプリ テスト エージェントの機能を使用するには、少なくとも 1 台のテストデバイスと 1 つのテストケース ID を指定する必要があります。テストケース ID は、Firebase コンソールの [テストケース] ページで確認してダウンロードできます。Gradle の使い方と配布を構成するさまざまな方法について詳しくは、Gradle を使用して Android アプリをテスターに配布するをご覧ください。
App Distribution を構成するには、firebaseAppDistribution
セクションを少なくとも 1 つ追加し、次のパラメータを使用して、アプリ テスト エージェント機能への配布を構成します。
App Distribution ビルド パラメータ |
testDevices または
testDevicesFile
|
アプリ テスト エージェント機能にビルドを配布するテストデバイス。
テストデバイスは、デバイス仕様のセミコロンで区切ったリストとして指定できます。
testDevices="model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
または、デバイス仕様のセミコロン区切りリストを含むファイルへのパスを指定することもできます。
testDevicesFile="/path/to/testDevices.txt"
|
testUsername
|
テスト中に使用する自動ログインのユーザー名。
|
testPassword または
testPasswordFile
|
テスト中に使用する自動ログイン用のパスワード。
または、パスワードを含む書式なしテキスト ファイルのパスを指定します。
testPasswordFile="/path/to/testPassword.txt"
|
testNonBlocking |
テストを非同期で実行します。自動テストの結果は Firebase コンソールで確認できます。
|
testCases または testCasesFile
|
AI を活用した自動テストを実行するテストケース ID のカンマ区切りのリスト。
testCases: "load-app,play-the-first-level"
または、テストケース ID のカンマまたは改行区切りのリストを含む書式なしテキスト ファイルのパスを指定します。
testCasesFile: "/path/to/test-case-ids.txt"
|
fastlane を使用してビルドを自動的にテストする
アプリ テスト エージェントの機能を使用するには、少なくとも 1 台のテストデバイスと 1 つのテストケース ID を指定する必要があります。テストケース ID は、Firebase コンソールの [テストケース] ページで確認してダウンロードできます。fastlane の使い方と配布を構成するさまざまな方法について詳しくは、fastlane を使用して Android アプリをテスターに配布するをご覧ください。
./fastlane/Fastfile
のレーンに firebase_app_distribution
ブロックを追加します。次のパラメータを使用して、アプリ テスト エージェント機能への配布を構成します。
firebase_app_distribution のパラメータ |
test_devices または
test_devices_file
|
アプリ テスト エージェント機能にビルドを配布するテストデバイス。テストデバイスは、テストデバイスのセミコロン区切りのリストとして指定できます。
test_devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
または、テストデバイスのセミコロン区切りのリストを含む書式なしテキスト ファイルのパスを指定します。
test_devices_file: "/path/to/test-devices.txt"
|
test_username
|
テスト中に使用する自動ログインのユーザー名。
|
test_password または
test_password_file
|
テスト中に使用する自動ログイン用のパスワード。
または、パスワードを含む書式なしテキスト ファイルのパスを指定します。
test_password_file: "/path/to/test-password.txt"
|
test_non_blocking |
テストを非同期で実行します。自動テストの結果は Firebase コンソールで確認できます。
|
--test_case_ids または
--test_case_ids_file
|
AI を活用した自動テストを実行するテストケース ID のカンマ区切りのリスト。
--test_case_ids: "load-app,play-the-first-level"
または、テストケース ID のカンマまたは改行区切りのリストを含む書式なしテキスト ファイルのパスを指定します。
--test_case_ids_file: "/path/to/test-case-ids.txt"
|
テスト結果をデバッグする
テスト結果が想定と異なる場合は、[テスト結果] ページの [詳細を表示] で [エージェント ビューを表示] を切り替えて、テストをデバッグできます。エージェント ビューには、アプリのユーザー補助情報を使用しているときにアプリ テスト エージェントが検出できた画面上の要素が表示されます。エージェントが確認した内容を詳しく見るには、アクション オーバーフロー メニューからその情報をダウンロードします。
テスト結果ページの [アーティファクトを表示] ボタンを使用して、テスト結果のすべての動画、ログ、Cloud のアーティファクトを確認することもできます。
既知の問題と制限事項
アプリ テスト エージェントのプレビュー版には、いくつかの既知の制限事項があります。
- アプリ テスト エージェントは生成 AI を使用してアプリをテストするため、同じ手順に沿って異なるアクションを実行することがあります。
- アプリ テスト エージェントは、タップ、テキストの入力、上方向へのスクロール、下方向へのスクロール、待機のアクションのみをサポートしています。
- アプリ テスト エージェントは、完了に多くのアクションを必要とする 1 つのステップのみを含むテストを実行できません。複雑なタスクを複数の短いステップに分割すると、パフォーマンスが向上します。
- アプリ テスト エージェントがスクロールせず、画面外の他の要素を表示しないことがあります。これは、スクロール可能であることを視覚的に示すものがない場合によく発生します。回避策として、「ヒント」フィールドを使用してスクロールを推奨できます。
- アプリ テスト エージェントは、アクションを特定回数実行するなど、カウントに問題が生じることがあります。
テストの割り当て
プレビュー期間中、AI ガイド付きテストは割り当て上限内で無料で提供されます。デフォルトの割り当て上限は 1 か月あたり 100 件のテストです。
複数のテストケース、または同じテストケースを複数のデバイスで実行する場合、複数のテストとしてカウントされます。たとえば、2 つのデバイスで 2 つのテストケースを実行した場合、合計 4 件のテストとしてカウントされます。
デフォルトの上限を超えて割り当てを増やすには、ユースケースを添えて Firebase サポートにお問い合わせください。