Robotiumチュートリアル:最初のAndroidフレームワーク

ロボティウムとは何ですか?

Robotium は、ネイティブ アプリケーションとハイブリッド アプリケーションのテスト ケースを自動化する Android テスト フレームワークです。 Robotium を使用すると、開発者は Android アプリケーション用の強力な自動 GUI テスト ケースを作成できます。 さらに、開発者は機能、システム、および受け入れテストのシナリオを作成して、多くの Android アクティビティを広めることができます。

Robotiumテストフレームワーク

標準の Android テスト フレームワークには以下のような制限があります。

  • 複数のアクティビティを処理できない
  • テスト実行のパフォーマンスが遅い
  • テストケースは complex & 実装が難しい

ロボティウムフレームワーク Android アプリケーションでテストを行うのがより良い選択です

Robotium はオープンソース フレームワークであり、Android テスト フレームワークの拡張機能と見なされます。 Robotium を使用すると、開発者は Android アプリケーション用の堅牢な自動 GUI テスト ケースを作成できます。 さらに、開発者は、複数の Android アクティビティにわたる機能、システム、および受け入れテストのシナリオを作成できます。

Robotium の高度な機能
Robotium の高度な機能

Robotium テスト ケース クラス

Robotium はクラスのセットを使用します (com.jayway.android.robotium.solo) テスト用。このクラスは、複数のアクティビティにまたがるテスト ケースをサポートします。 Solo は、ActivityInstrumentationTestCase2 と統合されています。

Robotium テスト ケース クラス
Robotium と ActivityInstrumentationTestCase2 の統合

テスターはアプリケーション設計の知識がなくてもテスト ケースを作成できます (黒) box テスト)、Robotium テスト ケース クラスを使用して。 これは、Android テスト ケース クラスと比較して優れた機能です。

ロボティウムの使い方

Android テスト プロジェクトで Robotium を使用するには、以下の手順に従う必要があります。

ロボティウムを使用する

Robotium を使用して Android アプリケーションのテストを実施します。 Android アプリケーションの品質を保証するには、次の手順に従う必要があります。

  1. 設計テスト仕様書
  2. テストプログラムの開発
  3. 実行する テストケース ターゲットデバイス上
  4. テスト結果を収集する
Androidアプリケーション
Androidアプリケーションのテスト手順 テスト 手続き

STEP 1) テスト仕様書の設計

  • これはアプリケーションをテストする最初のステップです。このステップでは、テストするターゲットを定義します。 Android アプリケーションには、UI、アクティビティ、コンポーネント、サービスなど、テストする必要があるターゲットが多数あります。 アプリケーションでターゲットを明確に定義すると、幅広いテスト範囲を達成するのに役立ちます。
  • 実行するテストの種類 (単体テスト、機能テスト、システム テスト) を計画します。
  • カバレッジを最大化するようにテスト ケースを設計しますが、テスト ケースの数は最小限に抑えます。 より多くのコードがテストされるほど、早期にバグが検出される可能性が高くなります。

STEP 2) TESTプログラムを書く

このセクションでは、Android を使用して Android テスト プログラムを作成する方法を説明します。 ジュニット テストとロボティウム。 HelloAndroid という名前の Android プログラムをすでに開発していると仮定します。このプログラムには、以下で説明するいくつかの機能があります。

  • 「Hello world!」というテキストを表示します。 画面上で。
  • ユーザーが「スタート」ボタンを押すとメッセージ「HelloAndroid」を表示します
HelloAndroid アプリケーション
HelloAndroid アプリケーション

システム要件

  • Android プラットフォームには、事前に統合された JUnit 3.0 フレームワークが付属しています。
  • Android テスト プロジェクトを作成するには、 Eclipse、コンピュータには以下がインストールされている必要があります。
  • 最新バージョンの Android プラットフォーム (現在 Android 8.1)

また、ご購読はいつでも停止することが可能です ダウンロード Eclipse ADT (Android 開発者ツール) が組み込まれた IDE。これには、必須の Android SDK コンポーネントと、 Eclipse IDE 。

Robotium テスト フレームワークの場合は、Robotium ライブラリを次の場所からダウンする必要があります。 ロボティウムのウェブページ.

Android テスト プロジェクトの作成

  • 「ファイル」→「新規作成」→「その他」をクリックします。
  • 選択: Android -> 以下の図に示す Android テスト プロジェクト -> 次へを選択
新しい Android テスト プロジェクトを作成する
新しい Android テスト プロジェクトを作成する

テストプロジェクトの名前を書きます。命名規則として、テスト プロジェクトの名前は「HelloAndroidTest」にする必要があります。

命名規則に基づいたテスト プロジェクト名の追加
命名規則に基づいてテスト プロジェクト名を追加します

テスト対象のアプリケーションを選択します。 この場合、これは HelloAndroid です。「完了」をクリックします。

テスト対象のターゲット アプリケーションの選択
テスト対象のアプリケーションを選択してください

テストスイートの作成

テスト仕様に基づいて、テスト プログラムのテスト スイートの作成を開始しました。 さまざまなテスト フレームワークを選択できます。 このチュートリアルでは、標準の Android テスト フレームワークを選択します アクティビティ計測テストケース 2。 Robotium フレームワークを使用してテストする場合は、Robotium ライブラリ ファイルをプロジェクト フォルダーの libs ディレクトリに追加する必要があります。 (プロジェクトフォルダーに lib フォルダーを作成します)。

テスト ケースは、複数のテストを実行するためのフィクスチャを定義します。 テスト ケースを定義するには、以下のプログラム構造に従う必要があります。

  • のサブクラスを実装する TestCase.
  • フィクスチャの状態を保存するインスタンス変数を定義する
  • オーバーライドしてフィクスチャの状態を初期化します。 設定()
  • オーバーライドによるテスト後のクリーンアップ 取り壊す().
テストプログラムの構造
テストプログラムの構造
package com.example.helloandroid.test;

import com.example.helloandroid.HelloAndroid;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;

public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> {
    
	private HelloAndroid mActivity;
	private TextView mView;
	private String resourceString;
	private Solo solo;
	
	public HelloAndroidTest () {
		// TODO Auto-generated constructor stub
		super("com.example.helloandroid",HelloAndroid.class);	
	}
	
	 @Override
	protected void setUp() throws Exception {
		// TODO Auto-generated method stub
	//	super.setUp();
		 
	 	mActivity = this.getActivity();
		solo = new Solo(getInstrumentation(),getActivity());
		mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2);
		resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world);
		
	}
	 
	 @Override
	protected void tearDown() throws Exception {
		// TODO Auto-generated method stub
		//super.tearDown();
		solo.finishOpenedActivities();
	}
	
	public void testPrecondition() {
		assertNotNull(mView);
	}
	
	/* test Target application contains a text display "Hello World!"*/
	public void testSearchText() {
		assertEquals(resourceString,(String) mView.getText());
	}
	
	/* test HelloAndroid Activity on target application is exist*/
	public void testCurrentActivity() throws Exception  {
    	solo.assertCurrentActivity("wrong activity", HelloAndroid.class);
    }
    
	/* test Application UI contains "Start" button */
	/* send event click button to target application */
    public void testSearchButton() throws Exception {
    	boolean found = solo.searchButton("Start");
    	solo.clickOnButton("Start");
    	assertTrue(found);
    }

	

}

テストケースの追加

  • TestSuite と同じパッケージ内で、TestCase クラスを作成します
  • 特定のアクティビティ (HelloAndroid など) をテストするには、テスト ケース エクステント ActivityInstrumentationTestCase2 を作成します。
  • このクラスでは、テスターは getActivity() メソッドを通じてテスト アクティビティを取得できます。
  • 「test + 元のメソッド名」という名前のメソッドを作成することで、テストアクティビティのテストを自由に作成できます
  • テスト方法では、テスターは Android JUnit 関数を使用して実際の値と期待値を比較できます。 これらの方法を以下に示します。
Robotium と Android テスト フレームワークのメソッド例
Robotium と Android Testing フレームワークのメソッド例

上記のテスト スイートでは、アプリケーション GUI に「Hello World!」というテキストが表示され、「開始」というボタン名が含まれることが検証されました。

ステップ 3) テストを実行する

テスト プログラムの作成が完了したら、以下の手順を使用してテストを実行します。

  • Android デバイスを PC に接続します (実際のデバイスがない場合はエミュレータを起動します)。
  • IDE で、右クリック→「Run as」→「Android Unit Test」を選択します。
テストプログラムの実行
テストプログラムの実行

IDE でテストを実行する以外に、コマンド ラインでもテストを実行できます。このテスト プログラムでは、テスト パッケージは com.example.helloandroid.test です。で Linux ターミナル、次のように使用できますwing このパッケージ内のすべてのテストを実行するコマンド:

$ adb シェル am 楽器 -w -e パッケージ com.example.helloandroid.test

STEP 4) テスト結果を取得する

テストが実行されると、テスト結果が得られます。

このテストプログラムでは、4 つのテストメソッドが実行されます。 この場合、すべてのテスト ケースが合格します。

すべてのテストケースが成功した場合のテスト結果出力
すべてのテストケースが合格した場合のテスト結果出力

テスト ケースが失敗した場合、出力が表示され、どのテスト ケースが失敗したかが示されます。

すべてのテストケースが失敗した場合のテスト結果出力
すべてのテスト ケースが失敗した場合のテスト結果の出力

ソースコードの例

この記事には、チュートリアルをより明確に理解し、技術的な知識を素早く習得するのに役立つソース コードの例がいくつか含まれています。