コラム
TOP >  コラム >  コラム詳細

Androidアプリのツボ  第10回 : Android開発のためのUIテスト自動化ツール 後編
はじめに




前回の記事でも紹介しましたが、AndroidのUIテストでは、同じテストをたくさんの端末で実施する必要があることや、アプリケーションのバージョンアップやOSのバージョンアップ等で回帰テストの回数が増えるという大変さがあります。

また、UIならではの仕様変更が多くなることや、端末を直接操作することの大変さもあります。このような大変さを解決してくれるのが、UIテスト自動化のツール・フレームワークです。

前回の記事ではUIテスト自動化ツール・フレームワークの簡単な比較を行いましたが、今回の記事では、前回取り上げた以下の3つのフレームワークを詳しく紹介していきます。


著者:宮田 友美
株式会社オープンストリーム(http://www.opst.co.jp/)において、アーキテクトとしてAndroidの調査・研究および案件支援に従事。約1年の育児休業を終え、2013年4月から職場に復帰。一児の母として業務に勤しむ毎日を送っている。Androidテスト部部長( http://www.android-tec.org)。
Robotium(https://code.google.com/p/robotium/
uiautomator(http://developer.android.com/tools/help/uiautomator/
MonkeyTalk( http://www.gorillalogic.com/monkeytalk


■ Robotium http://code.google.com/p/robotium/
特徴

RobotiumはAndroidアプリケーションのテストを自動化するための、Android Testing Frameworkをベースにしたテストフレームワークです。
ネイティブアプリケーションのテストはもちろん、Robotium4.0からは、WebViewを活用してコンテンツ等をHTML、CSS、JavaScriptで提供するような、ハイブリッドアプリケーションのテストにも対応しています。

テスト対象アプリに手を加える必要がなく、テストもSDK付属のAndroid Testing Frameworkをベースにしているため、非常に導入が簡単です。

バージョンもAndroid 1.6から対応しているためほとんどのAndroidアプリケーション開発で利用できるでしょう。

Robotiumでは、ADTを利用してAndroid Test Projectを作成し、Javaでテストを記述していきます。テストコードのサンプルは以下の通りです。UIテストの内容はサンプルコードのコメントを参照してください。


テストクラスはandroid.test.ActivityInstrumentationTestCase2のサブクラスとして定義します。

UI操作は基本的にSoloクラスを介して操作します。判定に関してはJUnitのassertはもちろん、Soloクラスにもいくつかassertメソッドが拡張されています。

拡張されているassertは、アクティブなアクティビティをチェックするものと、低メモリ状態になっていないかを確認するものがあります。

Robotiumを利用するとソースコードがないアプリケーションでも、apkがあればテストすることが可能です。

ただし、テスト対象のActivityクラスが何かを知る必要があります。
また、テストプロジェクトとapkファイルは同じ署名である必要があります。apkファイルと同じ署名ができない状況の場合は、テスト対象のapkファイルから一度、既存の署名を外して署名し直す必要があります。詳細については脚注のURLを参照してください。


1| 2| 3| 4| 5

>

>>



第9回 第11回


連載一覧

1| 2| 3

>

>>