20140115 potato tips no.3 android app test development driven and jenkins ci start

30
【第3回】potatotips (iOS/Android開発Tips共有会)

Upload: tkawashita

Post on 11-Jun-2015

1.966 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

【第3回】potatotips

(iOS/Android開発Tips共有会)

Page 2: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

Fragmentation地獄

資料削除

Page 3: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

Androidアプリ開発のつらぽ

•端末のフラグメンテーション

•多数のバージョン

•端末メーカーの(無意味な)独自カスタマイズ

•異なるCPUアーキテクチャ

Page 4: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 5: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

わかっていてもできないんだ・・・

Page 6: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 7: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

TDD Boot Camp / 課題( #tddbc )

• 対象 – 飲み物自動販売機 Ver 2.0 ⇒ポテトチップス自動販売機

• 課題を解くにあたって大事な事 – 課題を全部解くのを目標するのではなく、ワークショップの学習成果を最大化するように心がけましょう!

– TDDは「きれいで動くコード」を目指します。必要に応じて各自独自にリファクタリングを心がけましょう!

– 課題の箇条書きはTDDのRED->GREENの1サイクルに対応している訳ではありません。やりやすいように仕様を整理・分割して、スモールステップで進めましょう

– オブジェクト・モジュールはこまめに分割しましょう(たとえば自販機、在庫管理、金銭管理という風に)

• 課題 – ステップ0 お金の投入と払い戻し – ステップ1 ポテチの管理 – ステップ2 購入

Page 8: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

200円 100円

• 入金できる

• 購入できる

• おつりが取得できる

• ポテチの入庫

Page 9: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

利用予定(?)のテスト関連クラス

• AndroidTestCase – クラスの単体テスト

• ActivityInstrumentationTestCase2 – Activityを操作するテスト

• RenamingDelegatingContext –疑似Preference DB作成

1. Context mContext =

RenamingDelegatingContext(getContext(),”test_”);

2. PreferenceManager.getDefaultSharedPreferences(mContext );

Page 10: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 11: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 12: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

Source Code

• Target code

– https://github.com/cafedeaqua/PotatotipsVendingMachine

• Project Structure

– PotatotipsVendingMachine

• PotatotipsVendingMachineTest – In “tests” Folder

Page 13: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

Create build.xml

• android update project --path ./ --target "android-19" --subprojects

• android update test-project --path tests --main ..

Page 14: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

Test execute

• ant clean emma debug install

• ant -f tests/build.xml clean emma debug install test fetch-test-report

Page 15: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

Get coverage

• tests¥bin¥coverage.html

Page 16: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

ローカルでアプリテストを してよいのは中学生まで

Page 17: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

CloudBees

Build service http://www.cloudbees.com/ Dev@Cloud

Page 18: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

Plan

Page 19: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 20: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 21: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 22: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 23: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 24: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 25: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

android-junit-report

• libs/android-junit-report-1.5.8.jar

• custom_rules.xml

• AndroidManifext.xml

• ant.properties

On Test project

Page 26: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

AndroidManifext.xml

Page 27: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

custom_rules.xml

Page 28: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

ant.properties

• test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner

Page 29: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start
Page 30: 20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

まとめ

• テストカバレッジ 100%は無理

–そもそも実現する必要はない

• 但し、個人開発アプリほどテスト重要

–先週の実装は他人の実装

• テストを書き始めるキッカケが重要