espresso と firebase test lab で android アプリのテストを自動化する

39
Espresso と Firebase Test Lab Android ととととととととととととと 2016/11/27 DevFest Kansai 2016 LT Sansan とととと ととと

Upload: kenichi-tatsuhama

Post on 16-Apr-2017

366 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Espresso と Firebase Test Lab でAndroid アプリのテストを自動化する

2016/11/27DevFest Kansai 2016 LTSansan 株式会社 辰濱健一

Page 2: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

自己紹介

2

Page 3: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

>自己紹介

3

• 辰濱健一

• 徳島生まれ、奈良育ち、徳島県在住

• 2 回転職するも、いずれも徳島県内勤務

• Sansan 株式会社所属

• 古民家を改修した神山ラボ勤務

• 名刺アプリ Eight Android 版の開発

• リモートワーク

Page 4: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

>自己紹介

4

• 辰濱健一

• 徳島生まれ、奈良育ち、徳島県在住

• 2 回転職するも、いずれも徳島県内勤務

• Sansan 株式会社所属

• 古民家を改修した神山ラボ勤務

• 名刺アプリ Eight Android 版の開発

• リモートワーク

Page 5: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

>Sansan 神山ラボ

5

Page 6: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

>趣味

6

• 楽器演奏(エレクトーン・トランペット)

• 徳島県内のイベントで、ちらほら演奏する機会を頂いてます

Page 7: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

>Tokushima.app

7

• http://tokushima-app.connpass.com• 徳島のスマホアプリ開発の勉強会

• 基本もくもく会、たまにハンズオン

• 場所は徳島市内、 10:00 〜 16:00• 初心者でも OK 、入退出自由、参加費無料

Page 8: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved. 8

本題へ…

Page 9: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

まず、 Espresso

9

Page 10: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

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 の状態を検証する

Page 11: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

サンプルアプリ

11

• 文字を入力

https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample

Page 12: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

サンプルアプリ

12

• 文字を入力

• 上のボタンタップ

• 入力文字を上部に表示

https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample

Page 13: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

サンプルアプリ

13

• 文字を入力

• 上のボタンタップ

• 入力文字を上部に表示

• 下のボタンタップ

• 別画面で入力文字を表示

https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample

Page 14: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Espresso のテストコード

14

Page 15: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Espresso のテストコード

15

id が R.id.editTextUserInput の View を探して…

Page 16: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Espresso のテストコード

16

文字を入力して、キーボードをとじる

Page 17: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Espresso のテストコード

17

id が R.id.changeTextBt の View をクリック

Page 18: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Espresso のテストコード

18

id が R.id.textToBeChanged の View のテキストをチェック

Page 19: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved. 19

Espresso はUI 操作を記述できて

検証できる!

Page 20: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

つぎに、 Firebase Test Lab

20

Page 21: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Firebase

21

• Google 製 の BaaS• https://firebase.google.com/• 分析、認証機構、ストレージなど開発の支えになる各

種サービスを統合して提供

• その中で、端末のテスト環境も提供されている→ Firebase Test Lab

Page 22: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Firebase Test Lab

22

• クラウド上の Android 実機を時間借りできる

• テストの種類

• Robo テスト

• いわゆるモンキーテスト

• Instrumentation テスト

• 記述したテストスクリプト( Espresso など)を実行

• テスト中のスクショや動画も確認できる

Page 23: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Firebase Test Lab

23

• クラウド上の Android 実機を時間借りできる

• テストの種類

• Robo テスト

• いわゆるモンキーテスト

• Instrumentation テスト

• 記述したテストスクリプト( Espresso など)を実行

• テスト中のスクショや動画も確認できる

Page 24: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Firebase Test Lab で Espresso を!

24

Page 25: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

Firebase コンソール

25

Test Lab をクリック

Page 26: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

テストタイプの選択

26

インストゥルメンテーションテストを選択

Page 27: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

アプリ本体とテストの apk を選択

27

app-debug.apk

app-debug-androidTest.apk

Page 28: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

ディメンションを選択して開始

28

機種 API レベル

画面の向き

Page 29: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

ディメンションを選択して開始

29

横展開が非常に容易!!

Page 30: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

実行中…

30

Page 31: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

結果(全体)

31

Page 32: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

結果(個別:テストケース)

32

Page 33: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

結果(個別:動画)

33

ログや動画により、失敗しても

原因特定が容易!

←  日本語で入ってる…

※ 課金しないと参照できない

Page 34: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved.

アクティビティマップも出力される

34

※Robo テストだけかも?

Page 35: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved. 35

Firebase Test Lab で色んな実機上で

テストが行える!

Page 36: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved. 36

まとめ

Page 37: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved. 37

Espresso &Firebase Test Lab で

Page 38: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved. 38

Android アプリのUI テストが

自動化できる!

Page 39: Espresso と Firebase Test Lab で Android アプリのテストを自動化する

Copyright © 2014 Sansan, Inc. All rights reserved. 39

Fin.