Android Studio の Journeys は、AI のビジョンと推論の機能を利用して、自然言語の指示に基づいてアプリをナビゲートしてテストします。一連の指示(ジャーニー)は、AI がアプリで実行するアクションに変換されます。また、より複雑なアサーションを記述して説明することもできます。AI は、デバイスで確認した内容に基づいてアサーションを評価します。
また、Gemini は目標を達成するために実行するアクションを推論するため、アプリのレイアウトや動作の微妙な変更に対する回復力が向上し、アプリのさまざまなバージョンやデバイス構成に対して実行するテストの不安定さが軽減されます。
ジャーニーは、Android Studio またはコマンドラインから、ローカルまたはリモートの Android 搭載デバイスに対して作成して実行できます。IDE には、ジャーニーの作成に役立つ新しいエディタ エクスペリエンスと、Gemini の推論とジャーニーの実行をより適切に把握できるリッチリザルトが用意されています。
ジャーニーを作成する
Android Studio には、ジャーニーの作成と編集を容易にするファイル テンプレートと新しいエディタ エクスペリエンスが用意されています。ジャーニーは、ジャーニーの説明と手順を整理するために XML 構文を使用して記述されます。
ジャーニーを作成して編集を開始する手順は次のとおりです。
- Android Studio の [Project] パネルで、ジャーニーを作成するアプリ モジュールを右クリックします。
- [New] > [Test] > [Journey File] を選択します。
表示されたダイアログで、ジャーニーの名前と説明を入力します。
Android Studio でジャーニー ファイルの作成に使用するダイアログ。 [Finish] をクリックします。Android Studio は、選択した名前でジャーニーの XML ファイルを作成します。[Code] ビューを使用して XML を直接編集することも、[Design] ビューを使用して編集を簡素化することもできます。
[デザイン] ビューでジャーニーを表示している場合は、テキスト フィールドを使用してジャーニーの各ステップを説明します。各ステップには、Gemini に実行してほしい説明的なアクションや、Gemini に評価してほしいアサーションを含めることができます。
キーボードの Enter キーを押して、同じジャーニーの新しいステップを開始します。この手順は、定義するジャーニーの各ステップで必要に応じて繰り返すことができます。
ジャーニーの作成に関するヒント
AI はサポートされている言語で記述されたほとんどの手順を理解できますが、ジャーニーの作成で次のヒントを活用すると、より正確で期待どおりの結果が得られます。
- アプリがすでにフォアグラウンドにあることを前提としています。ジャーニーを実行すると、アプリが自動的に起動します。ジャーニーのステップは、アプリが完全に起動した後に開始する必要があります。つまり、「アプリを起動する」を手順に含める必要はありません。
- 曖昧さのない表現を使用する: 正確な表現を使用することで、誤解を最小限に抑え、信頼性を高めることができます。
| 元のコード | すべきこと |
|---|---|
| 「閉じるボタンを選択します」 | 「[閉じる] をタップ」または「閉じる」 |
| 「セロリと入力して」 | 「ホーム画面の上部の検索バーに「セロリ」と入力して」 |
| 「スワイプして閉じる」 | 「左にスワイプして閉じると、カードは表示されなくなるはずです」 |
- ステップの一部として成功基準を含める: これにより、Gemini がユーザーの意図をよりよく理解し、アクションが完了して次のアクションを開始できるタイミングを明確にできます。
| 元のコード | すべきこと |
|---|---|
| 「送信ボタンを選択します」 | 「送信ボタンをタップしてメールを送信します。これでメールが閉じ、受信トレイに戻ります。」 |
| 「ショッピング カートに移動して」 | 「ショッピング カート アイコンをタップすると、ショッピング カート ページに移動します。アイテムが 0 個であることを確認します」 |
| 「最初の動画をクリックして」 | 「最初の動画をクリックして、完全に読み込まれるまで待つ」 |
- ジャーニーを調整する: ジャーニーが想定どおりに実行されない場合は、結果を表示し、[Action Taken] と対応する [Reasoning] を確認して、Gemini が想定どおりに手順を実行しなかった理由を把握できます。この情報を使用して、手順をより明確にしてください。
- ジャーニーをより具体的なステップに分割する: AI は複数アクションのステップを解釈できますが、より詳細な個別のステップに分割することで、ジャーニーの精度と再現性が向上する場合があります。
- 「エラー: 許可された最大試行回数でアクションを正常に完了できませんでした」: このエラーが発生した場合は、失敗したステップを 2 つ以上の小さなステップに分割してみてください。このエラーは、AI がアプリとの最大数のやり取りを試行した後、アクションを完了できなかった場合に発生するためです。
サポートされている機能とサポートされていない機能
ジャーニーの作成時にサポートされている機能と、まだ完全にサポートされていない機能の概要は次のとおりです。以下のリストはすべてを網羅したものではありません。
ジャーニー内でサポートされているアクションは次のとおりです。
- UI 要素をタップします。
- 入力: テキスト フィールドにテキストを入力します。
- 特定の方向にスワイプまたはスクロールして、UI を操作します。
次の機能は、現時点では完全にサポートされていません。また、一貫性のない動作をする可能性があります。
- マルチフィンガー ジェスチャー(ピンチしてズームなど) - 画面上の 2 つ以上の接触点を同時に必要とする操作(ピンチしてズームインまたはズームアウトする、2 本の指でスワイプするなど)。
- 長押し - 標準的なタップよりも長い時間、指を押し続けること。
- ダブルタップ - 画面上の同じ場所をすばやく 2 回タップすること。
- 画面の回転/折りたたみ - デバイスの向き(縦向きと横向きなど)や折りたたみ式デバイスの物理状態(開閉など)の変化を処理します。
- 記憶 - 以前のやり取りや手順で得られた特定の情報、コンテキスト、ユーザーの入力を保持し、思い出す。
- カウント - 数量、頻度、進捗状況を正確に追跡します。
- 条件ステートメント - 他の指定された条件が満たされているかどうかに基づいてアクションを実行します。
機能は常に改善されています。追加の機能については、後日このページでご確認ください。ジャーニーの改善にご協力いただくため、フィードバックをお寄せください。
ジャーニーを実行する
他のインストルメンテーション テストと同様に、利用可能なローカルまたはリモートのデバイスでジャーニーを実行できます。Android Studio は、ジャーニーの実行を理解するのに役立つ豊富な結果を生成します。
ジャーニーをテストする手順は次のとおりです。
- 計測テストを実行する場合と同様に、メイン ツールバーからターゲット デバイスを選択します。
- テストするジャーニー XML ファイルに移動し、エディタで開きます。
- エディタで、次のいずれかの操作を行います。
- [デザイン] ビューが表示されている場合は、
[ジャーニーを実行] をクリックします。 - [コード] ビューで、XML でジャーニーの名前が定義されている場所の横にあるガターで
[Run 'test'] をクリックします。
- [デザイン] ビューが表示されている場合は、
Android Studio は Journeys Test 構成を作成し、対象デバイスで実行します。実行中、Android Studio はアプリをビルドしてデプロイし、Gemini に接続して、ユーザー ジャーニーの各ステップで実行するアクションを決定します。
プリインストールされたアプリに対してジャーニーを実行する
テストデバイスにプリインストールされているアプリでジャーニーを実行できます。これは、アプリのリリース版をテストする場合や、アプリを Android Gradle プラグイン 9.0.0 以降にまだ更新していない場合に便利です。
- Android Gradle プラグイン 9.0.0 以降に更新されたプロジェクトを開くか、新しいプロジェクトを作成します。
- ジャーニーを作成する。
- ジャーニーの実行構成を編集し、次の環境変数を追加します。Android Studio からジャーニーを実行しようとすると、実行構成が自動的に作成されます。
JOURNEYS_CUSTOM_APP_IDは、ターゲット アプリのパッケージ ID を設定します。
- 編集したジャーニーを実行します。Android Studio は、指定したターゲット アプリでジャーニーの手順を実行します。
コマンドラインからジャーニーを実行する
コマンドラインから Gradle タスクとして Journey を実行することもできます。
設定
コマンドラインから Journeys を使用するには、Google Cloud に対する認証を行う必要があります。
注: 以下の手順では、gcloud CLI を使用してユーザー認証情報を提供しますが、これはすべての開発環境に当てはまるわけではありません。必要に応じて使用する認証プロセスの詳細については、アプリケーションのデフォルト認証情報の仕組みをご覧ください。
Google Cloud CLI をインストールするには、gcloud CLI をインストールする手順に沿って操作します。
ユーザー認証情報の場合
次のターミナル コマンドを使用して手動で認証できます。
gcloud auth application-default login
サービス アカウントの認証情報の場合
まだ作成していない場合は、ガイドに沿ってプロジェクトのサービス アカウントの認証情報を作成します。
- サービス アカウント キーを作成したプロジェクトで IAM Service Account Credentials API が有効になっていることを確認します。
- 管理者ユーザーとサービス アカウントに
Service Account Token Creator権限が付与されていることを確認します。
認証を行うには、次のコマンドを実行します。
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL
Gradle タスクとして実行する
コマンドラインで Gradle タスクを直接実行して、ジャーニーを実行します。タスクを実行すると、テスト結果がログに表示され、HTML と XML のテスト結果ファイルが生成されます。
すべてのジャーニーを実行する テストスイート内のすべてのジャーニーは、次のコマンドで実行できます。
./gradlew :app:testJourneysTestDefaultDebugTestSuite
単一のジャーニーを実行するには
次のように JOURNEYS_FILTER を使用して、実行するジャーニーの名前を指定します。
JOURNEYS_FILTER=your_journey_name.journey.xml ./gradlew :app:testJourneysTestDefaultDebugTestSuite
サブディレクトリ内のすべてのジャーニーを実行する
JOURNEYS_FILTER をサブディレクトリ名に設定します。たとえば、次のコマンドは、テストスイートのルート ディレクトリ内の home サブディレクトリにあるすべてのジャーニーを実行します。
JOURNEYS_FILTER=home ./gradlew :app:testJourneysTestDefaultDebugTestSuite
結果を表示
Android Studio でジャーニーのテストが完了すると、テスト結果パネルが自動的に表示され、結果が表示されます。
Android Studio で実行する他のインストゥルメント化テストと比較すると、ジャーニーの結果の表示方法にはいくつかの違いがあります。
- [テスト] パネルには、ユーザー ジャーニーが個別のステップに分解されて表示されます。各ステップをクリックすると、Gemini がそのステップをどのように実行したかについての詳細を確認できます。
- [結果] パネルには、Gemini がユーザーのジャーニーをどのように理解し、推論し、実行したかについての詳細な情報が表示されます。
- Gemini に送信されたスクリーンショットは、ステップの各アクションの視覚的な補助として表示されます。
- 各アクションと、Gemini がそのアクションを実行した理由が、各スクリーンショットの横に記載されています。
- ステップ内の各アクションには番号が付けられています。
既知の問題
- ジャーニーをテストする場合、アプリのすべての権限はデフォルトで付与されます。
- Android 15(API レベル 35)を搭載したデバイスでジャーニーをテストすると、「AndroidX Crawler」に対して「安全でないアプリがブロックされました」という警告がデバイスに表示されることがあります。[インストール] をクリックすると、このチェックをバイパスできます。または、デバイスの開発者向けオプションを設定して、[USB 経由のアプリも検証] オプションを無効にすることもできます。