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

More Related Content

What's hot

スマホアプリ自動テストサービス
スマホアプリ自動テストサービススマホアプリ自動テストサービス
スマホアプリ自動テストサービスKoh Uehara
 
Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Kazunori Inaba
 
Linuxサーバのセキュリティ対策 part3 - ファイル転送編
Linuxサーバのセキュリティ対策 part3 - ファイル転送編Linuxサーバのセキュリティ対策 part3 - ファイル転送編
Linuxサーバのセキュリティ対策 part3 - ファイル転送編Kazunori Inaba
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Tokuhiro Matsuno
 
Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupToshiaki Maki
 
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集yuki0211s
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いたAkihiro Kuwano
 
Linuxサーバのセキュリティ対策 part2 - Apache編
Linuxサーバのセキュリティ対策 part2 - Apache編Linuxサーバのセキュリティ対策 part2 - Apache編
Linuxサーバのセキュリティ対策 part2 - Apache編Kazunori Inaba
 
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)JOYZO
 
Terraformをいじってみて
TerraformをいじってみてTerraformをいじってみて
Terraformをいじってみてssuser11d6e6
 
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側についてLIFULL Co., Ltd.
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコードYukihiko SAWANOBORI
 
AWA with Realm
AWA with RealmAWA with Realm
AWA with RealmYuji Hato
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件今城 善矩
 
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingchibochibo
 
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL HOME'Sにおけるサイトの高速化と今後の対応LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL HOME'Sにおけるサイトの高速化と今後の対応LIFULL Co., Ltd.
 
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話Shuichi Tsutsumi
 
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うRustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うSatoshi Yoshikawa
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話Kentaro Matsumae
 

What's hot (20)

スマホアプリ自動テストサービス
スマホアプリ自動テストサービススマホアプリ自動テストサービス
スマホアプリ自動テストサービス
 
Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4
 
Linuxサーバのセキュリティ対策 part3 - ファイル転送編
Linuxサーバのセキュリティ対策 part3 - ファイル転送編Linuxサーバのセキュリティ対策 part3 - ファイル転送編
Linuxサーバのセキュリティ対策 part3 - ファイル転送編
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetup
 
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
 
Linuxサーバのセキュリティ対策 part2 - Apache編
Linuxサーバのセキュリティ対策 part2 - Apache編Linuxサーバのセキュリティ対策 part2 - Apache編
Linuxサーバのセキュリティ対策 part2 - Apache編
 
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
 
Terraformをいじってみて
TerraformをいじってみてTerraformをいじってみて
Terraformをいじってみて
 
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
【 ヒカ☆ラボ 】LIFULL Home's androidアプリの開発の裏側について
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコード
 
AWA with Realm
AWA with RealmAWA with Realm
AWA with Realm
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件
 
Ansible softlayer
Ansible softlayer Ansible softlayer
Ansible softlayer
 
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streamingビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
 
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL HOME'Sにおけるサイトの高速化と今後の対応LIFULL HOME'Sにおけるサイトの高速化と今後の対応
LIFULL HOME'Sにおけるサイトの高速化と今後の対応
 
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
 
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うRustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使う
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
 

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

アプリの不具合を少なくするために
アプリの不具合を少なくするためにアプリの不具合を少なくするために
アプリの不具合を少なくするために健一 辰濱
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト健一 辰濱
 
アプリ開発作業の効率改善
アプリ開発作業の効率改善アプリ開発作業の効率改善
アプリ開発作業の効率改善健一 辰濱
 
shibuya.apk vol21
shibuya.apk vol21shibuya.apk vol21
shibuya.apk vol21Takeshi Eto
 
バージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフバージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフToshiyuki Hirata
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 
kintone x Sansan 連携事始め~カスタマイズまで
kintone x Sansan連携事始め~カスタマイズまでkintone x Sansan連携事始め~カスタマイズまで
kintone x Sansan 連携事始め~カスタマイズまでKatsuki Ito
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでStudy Group by SciencePark Corp.
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境Toshiyuki Hirata
 
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれるAzure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれるStudy Group by SciencePark Corp.
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menusharoid
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -Toshiyuki Hirata
 
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。Sho Yoshida
 
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみましたSatoshi Yokoi
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発takuma mori
 
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
マスコットアプリ─ キャラアプリ─ 開発 with Xamarinマスコットアプリ─ キャラアプリ─ 開発 with Xamarin
マスコットアプリ─ キャラアプリ─ 開発 with Xamarinjz5 MATSUE
 
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92Yoshito Tabuchi
 
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックDevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックYu Kitazume
 
自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のりStudy Group by SciencePark Corp.
 

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

アプリの不具合を少なくするために
アプリの不具合を少なくするためにアプリの不具合を少なくするために
アプリの不具合を少なくするために
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト
 
アプリ開発作業の効率改善
アプリ開発作業の効率改善アプリ開発作業の効率改善
アプリ開発作業の効率改善
 
shibuya.apk vol21
shibuya.apk vol21shibuya.apk vol21
shibuya.apk vol21
 
バージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフバージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフ
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
kintone x Sansan 連携事始め~カスタマイズまで
kintone x Sansan連携事始め~カスタマイズまでkintone x Sansan連携事始め~カスタマイズまで
kintone x Sansan 連携事始め~カスタマイズまで
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
 
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれるAzure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menu
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
Spray intro
Spray introSpray intro
Spray intro
 
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。
 
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
マスコットアプリ─ キャラアプリ─ 開発 with Xamarinマスコットアプリ─ キャラアプリ─ 開発 with Xamarin
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
 
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
 
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックDevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニック
 
自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり
 

More from 健一 辰濱

地方創生ワカモノ会合
地方創生ワカモノ会合地方創生ワカモノ会合
地方創生ワカモノ会合健一 辰濱
 
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオンGoogle Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン健一 辰濱
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O 健一 辰濱
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について健一 辰濱
 
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今健一 辰濱
 
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩健一 辰濱
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える健一 辰濱
 
GDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-onGDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-on健一 辰濱
 
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap健一 辰濱
 
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話健一 辰濱
 
Firebase hands on in Matsuyama
Firebase hands on in MatsuyamaFirebase hands on in Matsuyama
Firebase hands on in Matsuyama健一 辰濱
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方健一 辰濱
 
インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法健一 辰濱
 
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 ClosingDroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing健一 辰濱
 
企業スポンサー
企業スポンサー企業スポンサー
企業スポンサー健一 辰濱
 
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ健一 辰濱
 
CFP(Call For Paper) を出す話
CFP(Call For Paper)を出す話CFP(Call For Paper)を出す話
CFP(Call For Paper) を出す話健一 辰濱
 
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会健一 辰濱
 
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る健一 辰濱
 
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていくJava で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく健一 辰濱
 

More from 健一 辰濱 (20)

地方創生ワカモノ会合
地方創生ワカモノ会合地方創生ワカモノ会合
地方創生ワカモノ会合
 
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオンGoogle Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
 
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今
 
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
 
GDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-onGDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-on
 
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap
 
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
 
Firebase hands on in Matsuyama
Firebase hands on in MatsuyamaFirebase hands on in Matsuyama
Firebase hands on in Matsuyama
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
 
インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法
 
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 ClosingDroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing
 
企業スポンサー
企業スポンサー企業スポンサー
企業スポンサー
 
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ
 
CFP(Call For Paper) を出す話
CFP(Call For Paper)を出す話CFP(Call For Paper)を出す話
CFP(Call For Paper) を出す話
 
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会
 
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
 
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていくJava で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく
 

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

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