1. 始める前に
この Codelab では、Android アプリのテストの概要と、自動テストを適用する方法について説明します。
前提条件
- Android Studio でプロジェクト ディレクトリに移動する方法についての基本的な知識
学習内容
- テストの概要
- 自動テストとは
- 単体テストとインストルメンテーション テストの概要
- Android プロジェクトで単体テストとインストルメンテーション テストのファイルを見つける方法
必要なもの
- Android Studio がインストールされているパソコン
- このパスウェイの前の Codelab で作成したプロジェクト
2. テストとは
ソフトウェアにおけるテストとは、ソフトウェアが正常に動作することをチェックするための体系的な方法です。自動テストは、記述したコードの動作に問題がないことを確認するための実際のコードです。
コードをリリースする前にバグを排除できるという点で、ソフトウェアのテストは有益であり、ユーザー エクスペリエンスを向上させるために不可欠なものです。
手動テストはほぼ常に実施されていますが、Android でのテストは多くの場合、自動化が可能です。Kotlin を用いた Android の基本コースの全体を通じて、アプリコードとアプリの機能要件をテストする自動テストに焦点を当てます。この Codelab では、Android でのテストの基本について説明します。後の Codelab では、Android アプリをテストするためのより高度な方法を学びます。
Android 開発と Android アプリのテストに慣れてきたら、日頃からアプリのコードとともにテストを作成することをおすすめします。アプリに新しい機能を追加するたびにテストを作成することで、以降のアプリの拡張に伴うワークロードを削減できます。また、手動によるアプリのテストにあまり時間をかけずに、アプリが適切に動作することを簡単に確認できます。
3.自動テストの概要
自動テストとは、作成したコードが適切に動作することを確認し、プロジェクトの拡大と変更に応じて正常に動作するコードのことです。自動テストはすべてのソフトウェア開発に不可欠な要素であり、Android 開発も例外ではありません。そのため、今すぐ自動テストを導入することをおすすめします。初めて Android アプリを作成したときに、メイン アクティビティが main
ディレクトリのサブフォルダにあり、src
ディレクトリに test
ディレクトリと androidTest
ディレクトリが含まれていたことを覚えているでしょうか。これら 2 つのディレクトリには、テストコードが記述されています。Android 開発には、単体テストとインストルメンテーション テストの 2 種類の自動テストがあります。2 つのディレクトリは、この 2 つのテストカテゴリを表しています。
単体テストのコードを見つける
Android のローカルテストは test
ディレクトリにあり、通常は単体テストです。単体テストでは、コードの一部をテストして、そのコードが正常に動作することを確認します。また、関数、クラス、プロパティをテストできます。ローカルテストは Java 仮想マシンで実行されます。つまり、デバイスやエミュレータなしで、開発環境で実行できます。もっと簡単に言うと、単体テストをパソコンで実行できるということです。Android Studio は、ローカルテストを自動的に実行する機能を備えています。
新しいプロジェクトを作成するたびに、Android Studio によって簡単な単体テストが自動的に生成されます。これはインストルメンテーション テストの場合も同様です。なお、これらのテストで重要な処理が行われることはなく、プレースホルダとしてのみ機能します。ここでは、テストファイルの場所についてのみ説明します。生成されたテストの内容は、後で詳しく見ていきます。
単体テストのコードを見つけるには:
- 前のプロジェクトの Birthday Card アプリを開きます。
- 必要に応じて、ナビゲーション メニューから [Android] を選択します。
- [app] > [java] > [com.example.happybirthday (test)] > [ExampleUnitTest] の順にクリックします。
インストルメンテーション テストのコードを見つける
Android 開発において、インストルメンテーション テストという用語は、一般的にユーザー インターフェース テスト(UI テスト)と呼ばれるテストを指します。インストルメンテーション テストを使用すると、アプリの中でアクティビティとフラグメントのライフサイクル、およびプラットフォームの API とサービスに依存する部分をテストできます。
単体テストと異なり、UI テストではコードを直接テストしません。代わりに、ユーザー インターフェースをテストして、正しい UI コンポーネントが表示されるかどうか、UI 内でアクションを実行したときにユーザー インターフェースが想定どおりに動作するかどうかを確認します。もう一つの違いとして、すべてのインストルメンテーション テストは物理デバイスまたはエミュレータで実行する必要があります。前のパスウェイでエミュレータを設定しているため、このステップはすでに実施済みです。
Android でインストルメンテーション テストを実行すると、通常の Android アプリと同様に、テストコードが独自の APK に組み込まれます。APK とは、デバイスやエミュレータでアプリを実行するために必要なすべてのコードとファイルが含まれた圧縮ファイルのことです。このテスト APK は、通常のアプリ APK とともにデバイスまたはエミュレータにインストールされます。テスト APK はアプリ APK に対してテストを実行します。
テストを実行する前に、コードの内容を確認してください。
インストルメンテーション テストのコードを確認するには:
- [Android] プロジェクト ビューを使用している場合は、[app] > [java] > [com.example.happybirthday (androidTest)] > [ExampleInstrumentedTest] をクリックします。
- [Project] プロジェクト ビューを使用している場合は、[HappyBirthday] > [app] > [src] > [androidTest] > [java] > [com.example.happybirthday] > [ExampleInstrumentedTest] をクリックします。
4. 完了
Android でのテストの概要と、Android で単体テストとインストルメンテーション テストを見つける方法について学習しました。