読者です 読者をやめる 読者になる 読者になる

sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

「Androidアプリ テスト技法」第3章その4(終わり)

Androidアプリテスト技法

Androidアプリテスト技法

前回の続き

UIテスト自動化

テストのためのツールやフレームワークは色々あるが、それぞれ長所短所があり、これ一つで万事OKという状態ではないらしいですが、とりあえずRobotiumを使っておくのがよさそうでしょうか?

  • Android Testing Framework

    AndroidSDKに標準で含まれる。一部のUI操作が行えないという制約はあるが、ビジネスロジックからUIのテストまでこなせる便利なツール

  • monkeyrunner

    標準で含まれる。絶対座標指定でUIを操作でき、Pythonで操作内容を記述可能なツール

  • uiautomator

    標準で含まれる。様々なパターンのUIテストに有効だが、4.1(API 16)以降のみのサポートとなる

  • Robotium

    Activityをまたがるテストを書いたりするときに便利

  • Native Driver / Monkey Talk

    AndroidとiOSの両方のプラットフォームをサポートしているツール

ユニットテストアプローチ

JUnit4を使ったロジックのテスト

AndroidSDKに依存しないビジネスロジックだけを切り出して、JDKを利用した箇所だけをJavaVM上でテストする。

また、Android SDK を利用している箇所をテストするには、Robolectricというフレームワークのモックを利用するとよい。

JavaVMでテストをする場合の注意点は以下

  • テスト対象はAndroid APIを利用しないソースだけ
  • Activityからロジックを切り出すこと
  • JDKAndroid SDKは、同じクラスでも実装が異なることがあるため、Dalvik VM上での動作確認も必要となる

Robolectricを使ったテスト

Robolectricを使えば、JavaVM上でAndroidの処理も動作可能になるが、Dalvikで動くわけではないため、テスト自体の信頼性は低くなることは理解する必要がある。

そのほか

Android実機の使用

エミュレータだけではなく、実機を用いたテストの実施がとても重要ではあるが、画面サイズやdensityが異なる環境での確認のためにエミュレータも必要。

アプリの品質

公式サイトでApp Qualityアプリの品質に関するガイドラインをチェックすること

Robolectric導入

Robolectric からライブラリをダウンロードし、新規テストプロジェクト作成してテストを行うまでの手順が解説されているが、面倒そうだし、現時点でここまでやる余裕はないのでよみとばし。


予定よりかなり時間がかかりましたが、なんとか読み終わりました。

テストコードも書き慣れるとちょっと楽しいかも…しれ…ないこともないですね…やっぱり…

とりあえず、品質向上とトータルでのコスト削減のためがんばります。

風邪気味ですこし鼻水が垂れてきてはいますが、今日はマイクロソフトさんの「Community Open Day 2013」で @waki 氏のセッションだけ聞いて、京都へと帰ります。

そろそろ移動開始!