Android Studio のジャーニー

Android Studio のジャーニーを作成すると、自然言語を使用して各テスト(ジャーニー)のステップとアサーションを記述できるため、エンドツーエンド テストの作成とメンテナンスが簡単になります。Gemini のビジョンと推論の機能を活用することで、自然言語で記述された手順が Gemini がアプリで実行するアクションに変換され、ジャーニーの記述と理解が容易になります。また、より複雑なアサーションを記述して説明することもできます。Gemini は、デバイスで確認した内容に基づいてアサーションを評価し、ジャーニーが合格か不合格かを判断します。

また、Gemini は目標を達成するために実行するアクションを決定するため、アプリのレイアウトや動作の微妙な変更に対する回復力が向上し、アプリのさまざまなバージョンやデバイス構成に対して実行する際の不安定なテストが減少します。

Android Studio から直接、ローカルまたはリモートの Android 搭載デバイスに対してジャーニーを記述して実行します。IDE には、ジャーニーの作成に役立つ新しいエディタ エクスペリエンスと、Gemini の推論とジャーニーの実行をより深く理解するのに役立つリッチな結果が用意されています。

ジャーニーを作成する

Android Studio には、ジャーニーの作成と編集を簡素化するファイル テンプレートと新しいエディタ エクスペリエンスが用意されています。ジャーニーは、拡張マークアップ言語(XML)構文を使用して記述され、ジャーニーの説明と手順を整理します。

Android Studio のジャーニー エディタ。ジャーニー ステップを含む XML ファイルが表示されています。

ジャーニーを作成して編集を開始する手順は次のとおりです。

  1. Android Studio の [Project] パネルで、ジャーニーを作成するアプリ モジュールを右クリックします。
  2. [New] > [Test] > [Journey File] を選択します。
  3. 表示されたダイアログで、ジャーニーの名前と説明を入力します。
  4. [OK] をクリックします。Android Studio は、選択した名前でジャーニーの XML ファイルを作成します。[Code] ビューを使用して XML を直接編集することも、[Design] ビューを使用して編集操作を改善することもできます。
  5. [デザイン] ビューでジャーニーを表示している場合は、テキスト フィールドを使用してジャーニーの各ステップを説明します。各ステップには、Gemini に実行してほしい説明的なアクションや、Gemini に評価してほしいアサーションを含めることができます。
  6. キーボードの Enter キーを押して、同じジャーニーで新しいプロンプトを開始します。この手順は、定義するジャーニーの各ステップで必要に応じて繰り返すことができます。

ジャーニーの作成に関するヒント

ジャーニーを詳細かつ体系的に記述することで、Gemini が意図したジャーニーをより決定論的な方法で正確に実行する可能性が高まります。ジャーニーを効果的に作成するためのヒントを以下に示します。

  • アサーションとアクションを分離する: Gemini は、アプリの状態を継続的に評価し、ジャーニーを続行するのに「正しい」状態かどうかを判断します。ただし、より複雑なアサーションは別のステップとして定義する必要がある場合があります。また、各プロンプトは「Verify that」(検証する)、「Assert that」(アサートする)、「Check that」(確認する)などのキーフレーズで始め、このステップがアサーションであることを Gemini に示します。
  • スワイプで Gemini を操作する: タップやキーボード入力などの基本的な操作に加えて、Gemini は画面を特定の方向にスワイプする必要がある操作にも対応しています。たとえば、コンテンツをスクロールしたり、UI を閉じたりする場合は、スワイプ操作の方向と目的を説明します。デフォルトでは、Gemini は画面の中央からスワイプしますが、デバイス画面の別の部分でスワイプするように指定することもできます。
  • 複雑な操作や構成の変更を避ける: Gemini は、複数指のジェスチャー、画面の回転、折りたたみ操作など、すべての操作や構成の変更をサポートしていません。Gemini の機能の改善に向けて取り組んでいます。

ジャーニーを実行する

他のインストルメンテーション テストと同様に、利用可能なローカルまたはリモートのデバイスでジャーニーを実行できます。Android Studio は、ジャーニーの実行を理解するのに役立つ豊富な結果を生成します。

Android Studio でジャーニーを実行し、エディタのデバイス セレクタと実行アイコンをハイライト表示している様子。

ジャーニーをテストする手順は次のとおりです。

  1. インストルメンテーション テストを実行する場合と同様に、メイン ツールバーからターゲット デバイスを選択します。
  2. テストするジャーニー XML ファイルに移動し、エディタで開きます。
  3. エディタで、次のいずれかの操作を行います。
    1. [デザイン] ビューが表示されている場合は、 [ジャーニーを実行] をクリックします。
    2. [コード] ビューで、XML でジャーニーの名前が定義されている場所の横にあるガターで [test を実行] をクリックします。

Android Studio は Journeys Test 構成を作成し、対象デバイスで実行します。実行中、Android Studio はアプリをビルドしてデプロイし、Gemini に接続して、ユーザー ジャーニーの各ステップで実行するアクションを決定します。

エディタでサムネイルにカーソルを合わせると、詳細情報が表示されます。これは、ジャーニーのプロンプトを反復処理する際に役立ちます。

Android Studio のジャーニー テスト結果パネル。ステップの詳細と Gemini の推論が表示されている。

結果を表示

Android Studio でジャーニーのテストが完了すると、テスト結果パネルが自動的に表示され、結果が表示されます。

Android Studio で実行する他のインストゥルメント化テストと比較すると、ジャーニーの結果の表示方法にはいくつかの違いがあります。

  • [テスト] パネルには、ユーザー ジャーニーが個別のステップに分解されて表示されます。各ステップをクリックすると、Gemini がそのステップをどのように実行したかについての詳細を確認できます。
  • [結果] パネルには、Gemini がユーザーのジャーニーをどのように解釈し、推論したか、また Gemini がどのように実行したかを理解するのに役立つ豊富な情報が表示されます。
  • Gemini に送信されたスクリーンショットは、ステップの各アクションの視覚的な補助として表示されます。
  • 各アクションと、そのアクションに対する Gemini の推論は、各スクリーンショットの横に記載されています。
  • ステップ内の各アクションには番号が付けられています。

既知の問題

  • ジャーニーをテストする場合、アプリのすべての権限はデフォルトで付与されます。
  • Android 15(API レベル 35)を搭載したデバイスでジャーニーをテストすると、「AndroidX Crawler」に対して「安全でないアプリがブロックされました」という警告がデバイスに表示されることがあります。[インストールを続行] をクリックすると、このチェックをバイパスできます。または、デバイスの開発者向けオプションを設定して、[USB 経由のアプリも検証] オプションを無効にすることもできます。
  • 現在、ジャーニー ファイルは [プロジェクト] パネルの [Android] ビューに表示されません。プロジェクト内のジャーニー ファイルを表示するには、[プロジェクト] ビューを使用します。
  • ジャーニー内の複数のアクションでまったく同じプロンプトが使用されている場合、ジャーニー エディタに表示されるテスト結果が正しくないことがあります。具体的には、重複するプロンプトを含むすべてのアクションで、そのプロンプトの最新のインスタンスに関連付けられたテスト結果が表示されます。この問題を回避するには、各アクションに一意のプロンプトがあることを確認します。たとえば、一意の接頭辞または接尾辞を追加します。
  • 新しいエミュレータでキーボードが 2 回目に読み込まれると、スタイラスのポップアップが表示されます。通常、このポップアップにより、テキスト フィールドを操作するテストが失敗します。この場合は、ポップアップを閉じてジャーニーを再実行します。
  • アプリ クローラーのアーティファクトがエージェントの根拠に表示されることがあります。
  • ジャーニーの実行が IllegalStateException で失敗することがあります。この場合、[テスト結果] をクリックすると、エラーの詳細が表示されます。
  • 最上位の build.gradle ファイルで Android Gradle プラグイン(com.android.application)が定義されていない場合、ジャーニーの実行時に次のエラーが表示されることがあります。

    Failed to apply plugin class 'com.android.tools.journeys.JourneysGradlePlugin'
    

    この問題を解決するには、プラグインが最上位の build.gradle ファイルで定義されていることを確認します。詳細については、Android ビルドシステムを構成するをご覧ください。