ユーザー インターフェース テストを自動化する

ユーザー インターフェース(UI)テストでは、アプリが機能要件を満たし、ユーザーから高確率で選ばれるような優れた品質基準を達成していることを確認します。

UI テストのアプローチの 1 つは、人間のテスターにターゲット アプリで一連のユーザー操作を実行してもらい、正しく動作するかどうかを確認することです。ただし、この手動のアプローチは時間がかかる退屈な作業であり、ミスが起こりがちです。より効率的なアプローチは、UI アクションの実行を自動化した UI テストを作成することです。自動化のアプローチでは、反復可能な方法でテストを迅速かつ確実に実行できます。

注: テストアプリのビルドには Android Studio を使用することを強くおすすめします。使用すると、プロジェクトのセットアップ、ライブラリの組み込み、パッケージングが容易になります。このトレーニング クラスでは、Android Studio の使用を前提としています。

Android Studio で UI テストを自動化するには、独立した Android テストフォルダ(src/androidTest/java)にテストコードを実装します。Android Plug-in for Gradle は、テストコードに基づいてテストアプリをビルドし、ターゲット アプリと同じデバイスにテストアプリを読み込みます。テストコードでは、特定の使用状況シナリオをカバーするテストタスクを実行するために、UI テスト フレームワークを使用してターゲット アプリのユーザー インタラクションをシミュレートできます。

一般に、Android アプリをテストするには、次のタイプの自動化 UI テストを作成します。

  • 単一アプリを対象とする UI テスト: このタイプのテストでは、ユーザーが特定のアクションを実行するかアクティビティに特定の入力を行ったときに、ターゲット アプリが期待どおりに動作することを検証します。これにより、アプリのアクティビティでのユーザー インタラクションに応じて、ターゲット アプリが正しい UI 出力を返すかどうかを確認できます。Espresso のような UI テストフレームワークでは、プログラムでユーザー アクションをシミュレートして、複雑なアプリ内ユーザー インタラクションをテストできます。
  • 複数のアプリにまたがる UI テスト: このタイプのテストでは、異なるユーザーアプリ間またはユーザーアプリとシステムアプリ間のインタラクションが正しく動作することを検証します。たとえば、カメラアプリがサードパーティ製のソーシャル メディア アプリまたはデフォルトの Android フォトアプリと適切に画像を共有するどうかをテストします。UI Automator など、アプリ間インタラクションをサポートする UI テスト フレームワークでは、このようなシナリオのテストを作成できます。

このクラスのレッスンでは、AndroidX Test のツールと API を使用して、これらのタイプの自動化テストを作成する方法を学びます。そのような API を使用してテストの作成に取りかかる前に、AndroidX Test 用にプロジェクトをセットアップするの説明に従って、AndroidX Test を追加してください。

レッスン

単一アプリの UI をテストする
Espresso テスト フレームワークを使用して、単一アプリで UI をテストする方法を学習します。
複数のアプリの UI をテストする
UI Automator テスト フレームワークを使用して、複数のアプリで UI をテストする方法を学習します。

参考情報

Espresso を使用した Android のテストに関するその他の情報については、次のリソースをご覧ください。

サンプル

Android テストの Codelab