Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How To Remodel Current Testing Environment

How To Remodel Current Testing Environment

Day1, DroidKaigi 2017

Matsuda Jumpei

March 09, 2017
Tweet

More Decks by Matsuda Jumpei

Other Decks in Programming

Transcript

  1. Test Driven Development テストの作成・実行を開発サイクルに組み込む 1. ユニットテストを書く (実行すると fail する) 2.

    ざくっと実装する 3. ユニットテストが通る 4. 合意を得られるまでリファクタリングする 5. 1~4を繰り返す テスト = 開発プロセスを構築するファクター
  2. 現存するテストの理解 e.g. タイムアウトを利用した検証 I T o k e n R

    e p o s i t o r y t o k e n R e p o s i t o r y = m o c k ( ) ; I A u t h U s e C a s e u c = n e w A u t h U s e C a s e ( t o k e n R e p o s i t o r y ) ; u c . r e q u e s t L o g I n ( u s e r I d , p a s s w o r d ) ; / / a s y n c e x e c u t i o n T h r e a d . s l e e p ( 3 0 0 0 ) ; M o c k i t o . v e r i f y ( t o k e n R e p o s i t o r y ) . c r e a t e ( a n y ( ) ) ;
  3. 現存するテストの理解 e.g. タイムアウトを利用した検証 I T o k e n R

    e p o s i t o r y t o k e n R e p o s i t o r y = m o c k ( ) ; I A u t h U s e C a s e u c = n e w A u t h U s e C a s e ( t o k e n R e p o s i t o r y ) ; u c . r e q u e s t L o g I n ( u s e r I d , p a s s w o r d ) ; / / a s y n c e x e c u t i o n T h r e a d . s l e e p ( 3 0 0 0 ) ; v e r i f y ( t o k e n R e p o s i t o r y ) . c r e a t e ( a n y ( ) ) ; 3000ms という値に意味はある?
  4. 分類の例 : Test Size https://testing.googleblog.com/2010/12/test‑sizes.html Feature Small Medium Large Network

    access No localhost only Yes Database No Yes Yes File system access No Yes Yes Use external systems No Discouraged Yes Multiple threads No Yes Yes Sleep statements No Yes Yes System properties No Yes Yes Time limit (seconds) 60 300 900+
  5. e.g. とある教育系アプリのモデリング 技術的側面 Unit test (on all branch) Groovy +

    Robospock Instrumentation test (on master/release) Java + Emulator Mockableだけど、Injectableとは言えない Constructor Injectionはあまりない 初期化時に処理が発生し、Setterでは対応不可