SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Yumi Miyata
アンドロイドは
テストの夢をみるか?



Do Android Dreams of Tests?
Android Bazaar and Conference 2011 summer
        日本Androidの会テスト部
自己紹介

宮田友美(みやたゆみ)
TwitterID:@miyatay

            日本Androidの会テスト部部長

              株式会社オープンストリーム所属
              – 業務でAndroidアプリを作ってます
                   – http://www.opst.co.jp/
テスト部とは?
2010年9月 発足
243名 部員
• 昨年から倍になりました!




http://www.flickr.com/photos/ilike/3707503212/
目標
ぶっちぎりのテスト力を
世界へ



http://www.flickr.com/photos/jaffathecake/2675559042
主な活動
月1回、部会開催
次回は、8/6 開催



http://www.flickr.com/photos/vokakvklim/4522919056
分科会(小チーム)



http://www.flickr.com/photos/jiheffe/3462940215
公式サイト翻訳
@mike_neck



               テストツール作成
                         (SQLite)
                                                     @ussy00



               テストツール検証
             (MonkeyRunnner,Robolectric,Robotium)
@myb1126                                            @bols_blue


                   受入れテスト
                  ガイドライン作成
  @dicea                                            @colis_dev
そして、
@nowsprinting                @7hepta             @sassy_watson




           Testter
                @mike_neck             @ussy00
Testter ?
• テストをしたくても、
  対象アプリがないと話にならない
• Androidのテストを検証するために必要な
  機能をすべて実装したアプリが欲しい




http://www.flickr.com/photos/jof/263652571
SQLiteのテストしたい
GPSを使った機能のテストしたい
では、作ってしまえ
@nowsprinting                @7hepta             @sassy_watson




           Testter
                @mike_neck             @ussy00
@nowsprinting                @7hepta             @sassy_watson




   Testterとそのテストを
    書いて得たノウハウ

                @mike_neck             @ussy00
問題
 テストプロジェクトのリソースが取得で
 きない




http://www.flickr.com/photos/proimos/4199675334/
原因
  #getTestContext()が@hide
  テストプロジェクトのリソースファイルを
  取ることができない




出典: http://www.flickr.com/photos/dcysurfer/2897532891
解
決
策   http://www.flickr.com/photos/farleyj/2768941171
リフレクション
Method method =
    getClass().getMethod("getTestContext");
Context context = (Context) method.invoke(this);
SecretResource resource =
  SecretResource.load(
   context.getResources(),
   R.raw.config
 );
問題
 Activityのロジックがテストしづらい




http://www.flickr.com/photos/proimos/4199675334/
原因
  Viewと分離できていないとテストが面倒




出典: http://www.flickr.com/photos/dcysurfer/2897532891
解
決
策   http://www.flickr.com/photos/farleyj/2768941171
Activityからロジックを分離
ロジックをUIと切り離してテス
トしやすい構成に
問題
 Viewに登録されているEventListener
 のgetterがないためテストが書けない
 ⇒じゃあリフレクションを使ってテストす
 るの?



http://www.flickr.com/photos/proimos/4199675334/
原因
  SDKの制約としてアクセスできないメソッド
  がある




出典: http://www.flickr.com/photos/dcysurfer/2897532891
解
決
策   http://www.flickr.com/photos/farleyj/2768941171
そもそもJUnitでテストをしない
今回の場合は結合テストでしかるべきイ
ベントが発生することをテストする
問題
 テストプロジェクトの構成をどうするか?




http://www.flickr.com/photos/proimos/4199675334/
原因
  開発時に記述するテストと結合テストやシステ
  ムテストで記述するテストを分離したい
  しかし、テストプロジェクトが分散すると管理が
  大変だし・・・




出典: http://www.flickr.com/photos/dcysurfer/2897532891
解
決
策   http://www.flickr.com/photos/farleyj/2768941171
テスト対象プロジェクト以下に
テストプロジェクトをつくる

     testter
               src
                lib
               res
               tests   ut-test
                       it-test
そして、
このような活動で得た
 ノウハウを公開する
  イベントを開催
      http://www.flickr.com/photos/neil_roger/3895501627
宣伝
Android
テスト祭り

                      2011年8月6日開催
http://www.flickr.com/photos/madeiraarchipelago/17549695/
詳細

     https://sites.google.com/site/atecfes/program


http://www.flickr.com/photos/eelssej_/4948400648/
是非、
                                                       ご参加
                                                       ください!


http://www.flickr.com/photos/pinksherbet/2977652113/
さらに、宣伝
オープンストリームで一緒にAndroidアプ
リ開発してくれる方大募集

• Android案件の開発・提案等
• アーキテクト(もしくはアーキ候補)
興味がある方は以下までご連絡ください!


@miyatay
miyata.y@opst.co.jp

Mais conteúdo relacionado

Semelhante a ABC

プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3Yoh Nakamura
 
ABC2011w_テスト部
ABC2011w_テスト部ABC2011w_テスト部
ABC2011w_テスト部miyatay
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようKoji Hasegawa
 
JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料Yuuki Namikawa
 
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件Yusuke Suzuki
 
WUM_LT公開版_yohhatu
WUM_LT公開版_yohhatuWUM_LT公開版_yohhatu
WUM_LT公開版_yohhatuYoh Nakamura
 
『入門 ソーシャルデータ』9章
『入門 ソーシャルデータ』9章『入門 ソーシャルデータ』9章
『入門 ソーシャルデータ』9章y torazuka
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)Yuuki Namikawa
 
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015Yahoo!デベロッパーネットワーク
 
エッセンシャルスクラムのエッセンス
エッセンシャルスクラムのエッセンスエッセンシャルスクラムのエッセンス
エッセンシャルスクラムのエッセンスYukei Wachi
 
"Ordinary" System Development
"Ordinary" System Development"Ordinary" System Development
"Ordinary" System DevelopmentShintaro Kakutani
 
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会Kazuhiro Hara
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Shuji Watanabe
 
AgileJapan2013_大阪サテライト_yohhatu
AgileJapan2013_大阪サテライト_yohhatuAgileJapan2013_大阪サテライト_yohhatu
AgileJapan2013_大阪サテライト_yohhatuYoh Nakamura
 
Material Designなdrawerを実装したい
Material Designなdrawerを実装したいMaterial Designなdrawerを実装したい
Material Designなdrawerを実装したいshinya sakemoto
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携Masahiro Murakami
 
Fiddler Scriptデモ
Fiddler ScriptデモFiddler Scriptデモ
Fiddler Scriptデモhagurese
 
Ambrotypeにおける、Facebook連携方法
Ambrotypeにおける、Facebook連携方法Ambrotypeにおける、Facebook連携方法
Ambrotypeにおける、Facebook連携方法Hirotomo Oi
 

Semelhante a ABC (20)

プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3
 
ABC2011w_テスト部
ABC2011w_テスト部ABC2011w_テスト部
ABC2011w_テスト部
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめよう
 
JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料
 
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
 
WUM_LT公開版_yohhatu
WUM_LT公開版_yohhatuWUM_LT公開版_yohhatu
WUM_LT公開版_yohhatu
 
『入門 ソーシャルデータ』9章
『入門 ソーシャルデータ』9章『入門 ソーシャルデータ』9章
『入門 ソーシャルデータ』9章
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
 
20160601 devtools
20160601 devtools20160601 devtools
20160601 devtools
 
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
 
Twitter4Jとテスト
Twitter4JとテストTwitter4Jとテスト
Twitter4Jとテスト
 
エッセンシャルスクラムのエッセンス
エッセンシャルスクラムのエッセンスエッセンシャルスクラムのエッセンス
エッセンシャルスクラムのエッセンス
 
"Ordinary" System Development
"Ordinary" System Development"Ordinary" System Development
"Ordinary" System Development
 
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
 
AgileJapan2013_大阪サテライト_yohhatu
AgileJapan2013_大阪サテライト_yohhatuAgileJapan2013_大阪サテライト_yohhatu
AgileJapan2013_大阪サテライト_yohhatu
 
Material Designなdrawerを実装したい
Material Designなdrawerを実装したいMaterial Designなdrawerを実装したい
Material Designなdrawerを実装したい
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
 
Fiddler Scriptデモ
Fiddler ScriptデモFiddler Scriptデモ
Fiddler Scriptデモ
 
Ambrotypeにおける、Facebook連携方法
Ambrotypeにおける、Facebook連携方法Ambrotypeにおける、Facebook連携方法
Ambrotypeにおける、Facebook連携方法
 

ABC