espresso と firebase test lab で android アプリのテストを自動化する
TRANSCRIPT
Espresso と Firebase Test Lab でAndroid アプリのテストを自動化する
2016/11/27DevFest Kansai 2016 LTSansan 株式会社 辰濱健一
Copyright © 2014 Sansan, Inc. All rights reserved.
自己紹介
2
Copyright © 2014 Sansan, Inc. All rights reserved.
>自己紹介
3
• 辰濱健一
• 徳島生まれ、奈良育ち、徳島県在住
• 2 回転職するも、いずれも徳島県内勤務
• Sansan 株式会社所属
• 古民家を改修した神山ラボ勤務
• 名刺アプリ Eight Android 版の開発
• リモートワーク
Copyright © 2014 Sansan, Inc. All rights reserved.
>自己紹介
4
• 辰濱健一
• 徳島生まれ、奈良育ち、徳島県在住
• 2 回転職するも、いずれも徳島県内勤務
• Sansan 株式会社所属
• 古民家を改修した神山ラボ勤務
• 名刺アプリ Eight Android 版の開発
• リモートワーク
Copyright © 2014 Sansan, Inc. All rights reserved.
>Sansan 神山ラボ
5
Copyright © 2014 Sansan, Inc. All rights reserved.
>趣味
6
• 楽器演奏(エレクトーン・トランペット)
• 徳島県内のイベントで、ちらほら演奏する機会を頂いてます
Copyright © 2014 Sansan, Inc. All rights reserved.
>Tokushima.app
7
• http://tokushima-app.connpass.com• 徳島のスマホアプリ開発の勉強会
• 基本もくもく会、たまにハンズオン
• 場所は徳島市内、 10:00 〜 16:00• 初心者でも OK 、入退出自由、参加費無料
Copyright © 2014 Sansan, Inc. All rights reserved. 8
本題へ…
Copyright © 2014 Sansan, Inc. All rights reserved.
まず、 Espresso
9
Copyright © 2014 Sansan, Inc. All rights reserved.
Espresso
10
• Google 製 Android テストライブラリ
• https://google.github.io/android-testing-support-library/docs/espresso/
• UI テストに最適なフレームワーク
• View を探す
• View に対して Action を行う
• View の状態を検証する
Copyright © 2014 Sansan, Inc. All rights reserved.
サンプルアプリ
11
• 文字を入力
https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample
Copyright © 2014 Sansan, Inc. All rights reserved.
サンプルアプリ
12
• 文字を入力
• 上のボタンタップ
• 入力文字を上部に表示
https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample
Copyright © 2014 Sansan, Inc. All rights reserved.
サンプルアプリ
13
• 文字を入力
• 上のボタンタップ
• 入力文字を上部に表示
• 下のボタンタップ
• 別画面で入力文字を表示
https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample
Copyright © 2014 Sansan, Inc. All rights reserved.
Espresso のテストコード
14
Copyright © 2014 Sansan, Inc. All rights reserved.
Espresso のテストコード
15
id が R.id.editTextUserInput の View を探して…
Copyright © 2014 Sansan, Inc. All rights reserved.
Espresso のテストコード
16
文字を入力して、キーボードをとじる
Copyright © 2014 Sansan, Inc. All rights reserved.
Espresso のテストコード
17
id が R.id.changeTextBt の View をクリック
Copyright © 2014 Sansan, Inc. All rights reserved.
Espresso のテストコード
18
id が R.id.textToBeChanged の View のテキストをチェック
Copyright © 2014 Sansan, Inc. All rights reserved. 19
Espresso はUI 操作を記述できて
検証できる!
Copyright © 2014 Sansan, Inc. All rights reserved.
つぎに、 Firebase Test Lab
20
Copyright © 2014 Sansan, Inc. All rights reserved.
Firebase
21
• Google 製 の BaaS• https://firebase.google.com/• 分析、認証機構、ストレージなど開発の支えになる各
種サービスを統合して提供
• その中で、端末のテスト環境も提供されている→ Firebase Test Lab
Copyright © 2014 Sansan, Inc. All rights reserved.
Firebase Test Lab
22
• クラウド上の Android 実機を時間借りできる
• テストの種類
• Robo テスト
• いわゆるモンキーテスト
• Instrumentation テスト
• 記述したテストスクリプト( Espresso など)を実行
• テスト中のスクショや動画も確認できる
Copyright © 2014 Sansan, Inc. All rights reserved.
Firebase Test Lab
23
• クラウド上の Android 実機を時間借りできる
• テストの種類
• Robo テスト
• いわゆるモンキーテスト
• Instrumentation テスト
• 記述したテストスクリプト( Espresso など)を実行
• テスト中のスクショや動画も確認できる
Copyright © 2014 Sansan, Inc. All rights reserved.
Firebase Test Lab で Espresso を!
24
Copyright © 2014 Sansan, Inc. All rights reserved.
Firebase コンソール
25
Test Lab をクリック
Copyright © 2014 Sansan, Inc. All rights reserved.
テストタイプの選択
26
インストゥルメンテーションテストを選択
Copyright © 2014 Sansan, Inc. All rights reserved.
アプリ本体とテストの apk を選択
27
app-debug.apk
app-debug-androidTest.apk
Copyright © 2014 Sansan, Inc. All rights reserved.
ディメンションを選択して開始
28
機種 API レベル
画面の向き
Copyright © 2014 Sansan, Inc. All rights reserved.
ディメンションを選択して開始
29
横展開が非常に容易!!
Copyright © 2014 Sansan, Inc. All rights reserved.
実行中…
30
Copyright © 2014 Sansan, Inc. All rights reserved.
結果(全体)
31
Copyright © 2014 Sansan, Inc. All rights reserved.
結果(個別:テストケース)
32
Copyright © 2014 Sansan, Inc. All rights reserved.
結果(個別:動画)
33
ログや動画により、失敗しても
原因特定が容易!
← 日本語で入ってる…
※ 課金しないと参照できない
Copyright © 2014 Sansan, Inc. All rights reserved.
アクティビティマップも出力される
34
※Robo テストだけかも?
Copyright © 2014 Sansan, Inc. All rights reserved. 35
Firebase Test Lab で色んな実機上で
テストが行える!
Copyright © 2014 Sansan, Inc. All rights reserved. 36
まとめ
Copyright © 2014 Sansan, Inc. All rights reserved. 37
Espresso &Firebase Test Lab で
Copyright © 2014 Sansan, Inc. All rights reserved. 38
Android アプリのUI テストが
自動化できる!
Copyright © 2014 Sansan, Inc. All rights reserved. 39
Fin.