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

Destaque

George Siemens' Slides from MIT talk
George Siemens' Slides from MIT talkGeorge Siemens' Slides from MIT talk
George Siemens' Slides from MIT talkSteve Carson
 
分散環境でのTrac
分散環境でのTrac分散環境でのTrac
分散環境でのTracHiroki Kondo
 
Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料Hiroki Kondo
 
Browser and Mozilla
Browser and MozillaBrowser and Mozilla
Browser and Mozilladynamis
 
Student Portal Example
Student Portal ExampleStudent Portal Example
Student Portal Exampletianaphoto
 
CordovaでSNSアプリ作ってみた
CordovaでSNSアプリ作ってみたCordovaでSNSアプリ作ってみた
CordovaでSNSアプリ作ってみたyusukixs
 
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会Monaca
 
Tema 6 Banquetes Info General
Tema 6 Banquetes Info GeneralTema 6 Banquetes Info General
Tema 6 Banquetes Info Generalguest35ab197
 
Cordovaで業務アプリを作る 〜その事例とノウハウ〜
Cordovaで業務アプリを作る 〜その事例とノウハウ〜Cordovaで業務アプリを作る 〜その事例とノウハウ〜
Cordovaで業務アプリを作る 〜その事例とノウハウ〜Kenichi Inoue
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 Monaca
 
IBM Bluemix × Watson でMashup Hackathon (API説明)
IBM Bluemix × Watson でMashup Hackathon (API説明)IBM Bluemix × Watson でMashup Hackathon (API説明)
IBM Bluemix × Watson でMashup Hackathon (API説明)Masaya Fujita
 
Watson活用事例~Watsonハッカソンの例を通じて~
Watson活用事例~Watsonハッカソンの例を通じて~Watson活用事例~Watsonハッカソンの例を通じて~
Watson活用事例~Watsonハッカソンの例を通じて~Hiroki Nakayama
 
Firefox DevTools
Firefox DevToolsFirefox DevTools
Firefox DevToolsdynamis
 
Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02Hiroaki Komine
 
Cordova (PhoneGap) で始める、スマホアプリ開発
Cordova (PhoneGap) で始める、スマホアプリ開発Cordova (PhoneGap) で始める、スマホアプリ開発
Cordova (PhoneGap) で始める、スマホアプリ開発Kenichi Inoue
 

Destaque (18)

George Siemens' Slides from MIT talk
George Siemens' Slides from MIT talkGeorge Siemens' Slides from MIT talk
George Siemens' Slides from MIT talk
 
分散環境でのTrac
分散環境でのTrac分散環境でのTrac
分散環境でのTrac
 
Net lecture3
Net lecture3Net lecture3
Net lecture3
 
Social Media and CPD
Social Media and CPDSocial Media and CPD
Social Media and CPD
 
Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料
 
Browser and Mozilla
Browser and MozillaBrowser and Mozilla
Browser and Mozilla
 
Student Portal Example
Student Portal ExampleStudent Portal Example
Student Portal Example
 
CordovaでSNSアプリ作ってみた
CordovaでSNSアプリ作ってみたCordovaでSNSアプリ作ってみた
CordovaでSNSアプリ作ってみた
 
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
 
Tema 6 Banquetes Info General
Tema 6 Banquetes Info GeneralTema 6 Banquetes Info General
Tema 6 Banquetes Info General
 
Cordovaで業務アプリを作る 〜その事例とノウハウ〜
Cordovaで業務アプリを作る 〜その事例とノウハウ〜Cordovaで業務アプリを作る 〜その事例とノウハウ〜
Cordovaで業務アプリを作る 〜その事例とノウハウ〜
 
Overview Kepimpinan Instruksional
Overview Kepimpinan InstruksionalOverview Kepimpinan Instruksional
Overview Kepimpinan Instruksional
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
 
IBM Bluemix × Watson でMashup Hackathon (API説明)
IBM Bluemix × Watson でMashup Hackathon (API説明)IBM Bluemix × Watson でMashup Hackathon (API説明)
IBM Bluemix × Watson でMashup Hackathon (API説明)
 
Watson活用事例~Watsonハッカソンの例を通じて~
Watson活用事例~Watsonハッカソンの例を通じて~Watson活用事例~Watsonハッカソンの例を通じて~
Watson活用事例~Watsonハッカソンの例を通じて~
 
Firefox DevTools
Firefox DevToolsFirefox DevTools
Firefox DevTools
 
Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02
 
Cordova (PhoneGap) で始める、スマホアプリ開発
Cordova (PhoneGap) で始める、スマホアプリ開発Cordova (PhoneGap) で始める、スマホアプリ開発
Cordova (PhoneGap) で始める、スマホアプリ開発
 

Semelhante a ABC 2011 Summer

Dddをもっと身近に
Dddをもっと身近にDddをもっと身近に
Dddをもっと身近にYukei Wachi
 
プロジェクトを成功させるための期待マネジメント_中村洋_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
 

Semelhante a ABC 2011 Summer (20)

Dddをもっと身近に
Dddをもっと身近にDddをもっと身近に
Dddをもっと身近に
 
プロジェクトを成功させるための期待マネジメント_中村洋_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デモ
 

ABC 2011 Summer