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

ユーザー インターフェース(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 のテストに関するその他の情報については、次のリソースをご覧ください。

サンプル

コードラボ