Androidアプリリリース作業効率化(2)
   ∼テスト自動化の考え方∼



          2012.4.28
   @korodroid(神原 健一)
自己紹介
■氏名:神原 健一(@korodroid)
■活動:iplatform.org(http://www.iplatform.org/)
■所属:NTTソフトウェア株式会社

■主な活動(iplatform.org@プライベート)
  ■Google Play向けアプリ開発(現在18本)


       9     10



   ■Google Developer Day 2011 Tokyo 基調講演デモ
   ■Android Developer Lab Tokyo 2011 follow-up 5位入賞
   ■i*deal Competition 2010 ファイナリスト                 2
プライベートなアプリ開発は
       平日夜中と休日




【前回のおさらい】          3
Androidアプリリリースに伴う作業
 →ビルド、テスト、デバッグの繰り返し




【前回のおさらい】              4
Androidアプリリリースに伴う作業
   →面倒、しかも、楽しくないorz




【前回のおさらい】              5
Androidアプリリリースに伴う作業
→なるべく楽にして、新機能追加に時間を!




                       6
いきなり全フェーズの効率化は無理。
       前回は「ビルド」を効率化!

                  実装      ビルド テスト

                        前回発表時の効率化箇所
                             (by Jenkins)
※前回の発表資料)http://www.slideshare.net/kanbara/jenkinsandroid   7
今回「テスト」を効率化する際の
前提となる考え方を紹介します。
    実装   ビルド テスト

               今回の対象
             (by 何らかの手法)
                           8
何を目的として、効率化したいのか?
 ➡目的によって、最適解は異なる!
•Q.対応したいAndroidのバージョンは?
•Q.アプリのバージョンアップ頻度は?
•Q.アプリの画面数/試験項目数は?
•Q.アプリの複雑度?UIとUI以外の規模は?
…                         9
テスト効率化を実現するツール
➡多数あるが、どんな時にどれ使う?

JUnit,Robotium,
    Roboletric,NativeDriver,
        MonkeyRunner,Scirocco
         AndroidMock…
                                10
各ツールの1行解説

•JUnit
  主にビジネスロジックの試験に。はじめの一歩。
•Robotium
  UI系の試験に(GUIコンポーネント指定での操作)。
•Roboletric
  エミュレータなくてもOK。JavaVM上でのテスト。
•MonkeyRunner
  UI操作の自動化(座標指定での操作)。
•Scirocco
  Robotiumの拡張版(画面キャプチャ+レポート機能)。

                               11
自分のアプリの場合(準備中ですが)
➡アプリをどう絞って、どのツール使う?




                    12
そもそもver.upする?


9   10




                     13
そもそもver.upする?


9   10




                     13
そもそもver.upする?


9   10




               自動化対象は
              ver.upするもののみ




9   10




                             13
テスト自動化可能?


9   10




                     14
テスト自動化可能?


9   10




                     14
テスト自動化可能?


9   10




                 NFC
               (実機要)




9   10          ADK
               (実機要)

                       SmartWatch
                        (実機要)
                                    14
試験工数大・多端末対応?


9   10




                   15
試験工数大・多端末対応?


9   10




                   15
試験工数大・多端末対応?


 9      10




 2x/3x/4x
多端末対応




 9      10


             特定端末
             のみ対応
                    15
個人的に検討しているテスト自動化

【第1段階】
•ビジネスロジック
 ➡JUnit
•画面等に関する試験
 ➡Robotium + Scirocco

【第2段階】
•その他不便な箇所への補完
 ➡評価しながら検討


                        16
おすすめ情報
             テスト部の皆さんのノウハウ



•@ITの連載記事 ※導入におすすめ!
   http://www.atmarkit.co.jp/fsmart/index/androidtest.html



•日本Androidの会テスト部 ※色々な情報あり!
 http://sites.google.com/site/androidtestclub/



                                                             17
ご清聴ありがとうございました。
     情報がたまってきたら、
   また展開させていただきます。

※一応ですが、念のため補足で。
今回は完成したアプリに対して後付けでテストを追加
しようとしていますが、本来、テスト戦略は実装前に
考えるべきです。
                           18

Androidリリース作業の効率化(2)