home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

技術/Android/TestAutomation

技術/Android/TestAutomation

技術 / Android / TestAutomation
id: 987 所有者: msakamoto-sf    作成日: 2011-06-19 19:10:18
カテゴリ: Android 

テストの自動化メモ。

JUnit + Instrumentation

Android上でのActivityTestの基本。Javaのinstrumentと同様、仮想マシンとクラスの間にインターセプト出来る。
android.testパッケージ以下にinstrumentを使ってUIを操作「したことに」して各種Testを実行可能なクラスが用意されている。

Robotium -> scirocco

PowerMockを開発しているJaywayが、その有り余るHENTAI性をAndroidのUIテストの自動化に注ぎ込んだのがRobotium。
"Android開発におけるSelenium"を目指しており、UI部品の内容に対するexpectationを記述や複数Activityにまたがるテストを簡単に記述できる。
個人的には、あのJaywayがメイン開発に携わっていることから将来性も高いと感じる。

Robotiumによる自動化テストで、画面のキャプチャなどもまとめて取得できるよう、特にチーム開発での運用面をサポートするツールとしてsciroccoが公開されている。
こちらは日本にあるSONIXという会社が開発している。

nativedriver

Googleが開発したUIテスト自動化ツール。Seleniumで使われているWebDriverと類似のAPIでUIをテストできるようになる。Robotiumの競合に位置づけることが出来る。
nativedriverの場合、テスト対象のアプリ側にテストサーバ機能を持つ専用のjarファイルを追加するなどが必要。とはいえ、アプリ側のロジックに副作用が出るような形はさすがにとっていない。
マルチプラットフォーム対応を目指しており、既にAndroidに対応しているが近日中にiOSにも対応予定。Windowsも視野に入れている。

Jython経由でmonkeyrunner

デバッグ機能を使ってUIを操作する・・・らしい。

ただしタップイベントなどを x, y の座標値で指定する必要が有るため、実用は難しいかもしれない。

ちなみに、InstrumentationとRobotiumは2011-06時点では「再生」だけで「記録」機能が無い。
一方、monkeyrunnerにはドキュメント化はされていないが MonkeyRunner Recorder という機能が隠されている。

これを使うとRecorderを一種のUI操作Proxyとして、あとでmonkeyrunnerで実行出来る形式のpythonスクリプトでUI操作を保存できる。

ただしmonkeyrunnerでは操作した結果を取得する機能が画面snapshotの取得しか使えない。プログラムで画面UIの変化を検出する機能が存在しない。
この点が、UIテストの自動化に組み込むにあたりデメリットになるだろう。



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2011-08-21 16:29:54
md5:b63b0482b65174a356f770e67f052a0f
sha1:080a140da9f7f1eaeda5d40dbf9d12e0b9db284f
コメント
コメントを投稿するにはログインして下さい。