SlideShare ist ein Scribd-Unternehmen logo
1 von 104
Device Farm を使った
スマホアプリの自動テスト
JAWS Festa−中四国2017−
2017.11.4@愛媛大学
辰濱健一
自己紹介
• 辰濱健一(たつはまけんいち)
• 徳島県生まれ、神山町在住
• GDG Shikoku スタッフ
• Sansan 株式会社、名刺アプリ Eight のアプリ開発
• Twitter:@tatsuhama50
• Facebook:kenichi.tatsuhama
2
GDG Shikoku
4
• 四国地方をカバーする Google Developer Group
• Googleのテクノロジー全般について、四国で勉強会を開催して
います。
• Android、Kotlin、Google App Engine、TensolFlow、Firebase など
• Web:https://sites.google.com/site/gdgshikoku/
• Conpass: https://gdgshikoku.connpass.com/
DevFest Shikoku 2017
• 11/18(日)に徳島大学で開催!
• Android, Kotlin, TensolFlow
Go言語, Firebase など…
5
ご参加お待ちしております!
https://gdgshikoku.connpass.com/event/68244/
徳島県神山町
6
徳島県神山町
7
約200km
車で3時間
四国は広いんです!
徳島県神山町
• 人口:約 5,500 人
• 名産:すだち
• 全面積の 83% が山地
• 過疎化が進む町
(消滅可能性都市にランクイン)
• サテライトオフィス(13社)の進出、移住者が増
• 古民家再生・地産地消・教育改革など、先進的な取り組みが行
われて注目されている
8
Sansan株式会社 神山ラボ
9
Sansan株式会社
10
詳しくは、14:05 〜のサポータセッションで!!
Device Farm とは?
Device Farm とは
• AWS クラウドで実機のデバイスを使用してアプリをテスト
• Android / iOS / Webアプリに対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
12
Device Farm とは
• AWS クラウドで実機のデバイスを使用してアプリをテスト
• Android / iOS / Webアプリに対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
13
エミュレータよも
信頼できる
パフォーマンス
Device Farm とは
• AWS クラウドで実機のデバイスを使用してアプリをテスト
• Android / iOS / Webアプリに対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
14
マルチプラット
フォーム
Device Farm とは
• AWS クラウドで実機のデバイスを使用してアプリをテスト
• Android / iOS / Webアプリに対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
15
• 位置情報の指定
• 端末言語
• 前提アプリの
インストール
Device Farm とは
• AWS クラウドで実機のデバイスを使用してアプリをテスト
• Android / iOS / Webアプリに対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
16
・API
・Gradle Plugin
・Jenkins Plugin
→自動化できる!
Device Farm とは
• AWS クラウドで実機のデバイスを使用してアプリをテスト
• Android / iOS / Webアプリに対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
17
Appium,
Espresso などで
UI 操作を記述&
実行できる
Device Farm とは
• AWS クラウドで実機のデバイスを使用してアプリをテスト
• Android / iOS / Webアプリに対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
18
• 0.17$ / デバイス分
• 250$ / 月
• 無償枠(1000 デバイス分)
テストコードがない人向け
テストコードがない人向け
• モンキーテスト
• Remote access (2016/4〜)
• 【New!!】Direct Device Access (2017/10/16〜)
20
モンキーテスト
• Device Farm 側でランダムに触ってくれる
• アプリのバイナリさえあれば、今すぐ始められる
21
モンキーテスト
22
Automated tests を選んで
Create a new run
モンキーテスト
23
アプリケーションの種類を選んで
アップロード
モンキーテスト
24
アプリの情報が表示される
モンキーテスト
25
何イベント(数)実行するか
モンキーテスト
26
実行する端末を選択
モンキーテスト
27
端末の設定
モンキーテスト
28
タイムアウトの設定
モンキーテスト
29
実際のプロダクトでやってみた。
ターゲットアプリ
30
モンキーテスト
31
結果…!?
モンキーテスト
32
モンキーテスト
33
わずかな時間で複数端末での
クラッシュが発覚。。。orz
モンキーテスト
• スクリーンショットや動画、ログが残ってる
34※横固定のタブレット
モンキーテスト
• 動画
35
モンキーテスト
36
動画により、どういう遷移や状態で
クラッシュしたかが確認できる!
→ 問題の確認が容易に!
Remote access
37
• ブラウザ上に表示される端末をマウス・キーボードで操作
• アプリバイナリのアップロード&実行が可能
• 端末内ブラウザで Web サイトの表示
(=レンダリングチェック)も可能
Remote access
38
Remote access
を選んで
+Start a new session
Remote access
39
端末を検索して選んで…
Remote access
40
Confirm and start session
Remote access
41しばし待つ(だいたい数分以内)
Remote access
42
マウスで直接
操作可能!
アプリバイナリの
アップロードは
ここから
Remote access
43
ブラウザも
起動できる
Remote access
44
手元にない端末を
ちょっと試してみたい時には便利!
Remote access
45
でも、何度も手作業で
同じ操作をして、
動作確認するのはつらい・・・
Direct Device Access
• USB を介してローカルマシンに直接接続されているかのよう
に、デバイスを使用できる。
• IDE からのデバッグも可能
• 200$/月の private device の契約が必要
46
Direct Device Access
• https://aws.amazon.com/jp/blogs/mobile/announcing-
direct-device-access-in-aws-device-farm/
47
16 OCT 2017!!
Direct Device Access
48
DeviceFarm上の
端末の画面
https://aws.amazon.com/jp/blogs/mobile/announcing-direct-device-access-in-aws-device-farm/
DeviceFarm上の
端末でデバッグ
テストコードを用意する
テストコードを用意して実行
• UI 操作をスクリプトで記述する
• 何度でも同じ操作ができる
• 機種や OS バージョンの横展開が容易になる
• テストコードを Device Farm のコンソールから実行させる
• ※以降 Android アプリを例に紹介します。
50
テスティングフレームワーク
• 特徴はいろいろ
• OS:iOS 専用、Android 専用、ハイブリッド
• アプリ内部(DB やキャッシュ)の参照可否
• リリースバイナリでの実行可否
• アプリ外の端末操作の可否
(別アプリの操作や OS が出すパーミッションダイアログの操作)
• 用途によって選ぼう
• 細かなところまで(ホワイトボックス)でテストする?
• リリースバイナリでテストしたい?
• 記述可能な言語
51
テスティングフレームワークの例
• Android
• Espresso … アプリ内参照可、他アプリの操作不可、レコーダーあり
• UIAutomater … 他アプリの操作が可能、Android 4.2 以上
(Espresso や UIAutomater は併用可能)
• iOS
• KIF
• Calabash
• ハイブリッド
• Appium … 色んな言語で記述可能、リリースバイナリのテストが可能
52
Espresso
• Android アプリのテストを書くならオススメ
• Google が公開
• Android Studio から操作の記録と検証コードの追加ができる
• WebView の操作・検証も可能
• Intent のテストも可能(Espresso-Intents)
• 特定の状態(例:通信が終わるまで)まで待つ仕組み(IdlingResource)
53
Espresso Recorder
54Android Studio の Run > Record Espresso Test
Espresso Recorder
55
1. 端末を操作する
2.アクションが
記録される
3. 検証を追加
1 〜 3 を繰り返す
Espresso Recorder
56
検証を追加 1. View を選択
2. 検証内容を編集
emailEdit の文字列が
aaa かどうか?
Espresso Recorder
57
Espresso の
テストコード
が生成される
※かなり冗長でカオス
※可読性的に要メンテ
※記述の参考にはなる
このコードで
何度でも
同じ操作が
可能になる!
Espresso の基本
58
• onView(...):操作対象の View を探す
• perform(...):View に対する操作
• check(...):View の検証
Espresso で非同期待ち合わせ
59
// サーバアクセス・Progress 表示
↑click 後、即実行される。。。
まだ結果が帰ってきていないので失敗する。
通信が終わってからチェックしたい。
Q:「通信が終わってから」とは??
・何秒か待つ? 何秒?
・check…の前に wait(条件) を挟む?
Espresso IdlingResource
• 指定した条件を満たすまで、テストコードの実行を中断
• 例)サーバ通信中は、Progress 表示があるとする
→ Progress が非表示になったら再開したい
60
Espresso IdlingResource
61
progress が
非表示(isGone)
なら再開(idleNow)
Espresso IdlingResource
62
IdlingResource の登録
IdlingResource の解除
Espresso IdlingResource
• 63
← Progress が消えるまで待つ!
// サーバアクセス・Progress 表示
• IdlingResource を設定したテストコードの実行
Espresso IdlingResource
64
IdlingResource を使うと
テスト実行の
非同期待ち合わせが容易に!
DeviceFarm での実行
• 事前準備
• アプリケーションバイナリの作成
• テストバイナリの作成
• コンソールからテストを実行
• コンソールで結果を確認
65
アプリケーションバイナリ作成
66
• 本体のビルド
• ./gradlew assembleDebug
• app-debug.apk が生成される
• テストバイナリのビルド
• ./gradlew assembleDebugAndroidTest
• app-debug-androidTest.apk が生成される
DeviceFarm でテスト実行
67
アプリケーションの種類を選んで
DeviceFarm でテスト実行
68
アプリ本体のバイナリを
アップロード
DeviceFarm でテスト実行
69
アプリの情報を確認
DeviceFarm でテスト実行
70
←Instrumentation テストを選んで、
テストバイナリをアップロード
DeviceFarm でテスト実行
71
テストアプリの情報や
フィルタの設定
DeviceFarm でテスト実行
72
実行する端末の種類を選んで
DeviceFarm でテスト実行
73
テスト端末の設定をして
DeviceFarm でテスト実行
74
実行!
DeviceFarm でテスト実行
75
実行中…
DeviceFarm でテスト実行
76
各端末の実行状態
DeviceFarm でテスト実行
77
実行結果
DeviceFarm でテスト実行
78
端末ごとの実行結果
DeviceFarm でテスト実行
79
端末での実行結果
DeviceFarm でテスト実行
80
テスト実行中の
パフォーマンスモニタ
DeviceFarm でテスト実行
81
テストコードにより
端末や OS の横展開が
容易になった!
DeviceFarm でテスト実行
82
でも…
DeviceFarm でテスト実行
83
もうちょっと
楽したいですよね?
開発ワークフローとの統合
開発ワークフローとの統合
• Gradle Plugin を使う
• Jenkins Plugin を使う
85
Gradle Plugin の導入・設定
• Android Studio の build.gradle に数行追加
• IAMユーザを作成して、accessKey / secretKey を取得
(IAM : Identity and Access Management)
• accessKey / secretKey を build.gradle へ設定
86
Gradle Plugin の導入・設定
87
←追加
←追加↓
・DeviceFarmプロジェクト名
・DevicePool(端末群)
・認証トークン
など…
Gradle Plugin からの実行
88
←実行!
↑結果はここを自分で見にいく…
※あくまでも Device Farm のテストジョブのキックのみです。
Gradle Plugin
89
結果はコンソールで確認…
Gradle Plugin
• メリット
• テスト実行のために、コンソールの操作が不要
• 実行時の設定をファイルで記述できる
• コマンドラインからの実行ができる
• もうちょっと…
• IAM の認証情報を git で管理する??
• 結果が出た時にコンソールを見にいかないと行けない
90
Jenkins Plugin
91
そこで Jenkins 連携!
Jenkins Plugin の導入・設定
• Jenkins に AWS Device Farm Plugin を導入
• Jenkins のシステム設定
• Jenkins にジョブを作成&設定
92
Jenkins Plugin の導入・設定
• Jenkins に AWS Device Farm Plugin を導入
93
検索すると出てきます
Jenkins Plugin の導入・設定
• Jenkins のシステム設定
• accessKey / secretKey を追加
94
Jenkins Plugin の導入・設定
• 本体 apk、テスト apk の作成の設定
95
Jenkins Plugin の導入・設定
• ビルド後の処理の処理に
「Run Tests on AWS Device Farm」を追加して、設定する
96
Jenkins での実行
97
他にも、
・push があったら実行
・定刻実行など…
←
Jenkins で結果確認
98
Jenkins 連携すると
• 実行結果の推移がグラフィカルに確認できる
• テスト終了時に Slack 通知なども可能
99
実運用するなら…
100
テストをちゃんと記述して、
Jenkins で継続的に
テストを実行しよう!
まとめ
• Device Farm はクラウド上の実機を時間借りできるサービス
• テストコードがなくても触れる
• テストコードを用意して、Jenkins 等の CI 連携すると効果的
101
今後の期待
• 端末のラインナップの充実
• メーカーに偏りがある
(先進国のチープな端末でのクラッシュの確認がしたい)
• 最新の OS バージョンがない
(最新の OS で確認したいニーズは大きいのでは?)
• スクリーンショットがレポートに表示されない問題の改修
• https://forums.aws.amazon.com/thread.jspa?messageID=7527
86
• これが改修されると、色んな端末のレイアウトチェックが容易に!
102
DevFest Shikoku 2017
• 11/18(日)に徳島大学で開催!
• Android, Kotlin, TensolFlow
Go言語, Firebase など…
104
ご参加お待ちしております!
https://gdgshikoku.connpass.com/event/68244/

Weitere ähnliche Inhalte

Was ist angesagt?

async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介MITSUNARI Shigeo
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編infinite_loop
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAmazon Web Services Japan
 
Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編なべ
 
Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月
Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月 Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月
Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するYoshifumi Kawai
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...harmonylab
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜京大 マイコンクラブ
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門NVIDIA Japan
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだNarichika Kajihara
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門demuyan
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドHiroyuki Ito
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfssuser868e2d
 

Was ist angesagt? (20)

async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
 
Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編
 
Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月
Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月 Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月
Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだ
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
 

Ähnlich wie Device Farm を使ったスマホアプリの自動テスト

Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようKoji Hasegawa
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト健一 辰濱
 
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)NTT Resonant Technology Inc.
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menusharoid
 
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションJaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションmirer
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublishedYoichiro Sakurai
 
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Kenichi Kambara
 
iOSアプリケーションの Unit Test
iOSアプリケーションの Unit TestiOSアプリケーションの Unit Test
iOSアプリケーションの Unit TestKatsumi Kishikawa
 
KobeGTUG GAE/Java
KobeGTUG GAE/JavaKobeGTUG GAE/Java
KobeGTUG GAE/Javatakagig
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Koji Hasegawa
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーImamura Masayuki
 
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!	[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化! ichigotake .
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよYohei Oda
 
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜Takao Sumitomo
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情Toshiyuki Hirata
 

Ähnlich wie Device Farm を使ったスマホアプリの自動テスト (20)

Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
AppCodeNight testcode
AppCodeNight testcodeAppCodeNight testcode
AppCodeNight testcode
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめよう
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト
 
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menu
 
iOS豆知識ver0.0.5
iOS豆知識ver0.0.5iOS豆知識ver0.0.5
iOS豆知識ver0.0.5
 
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションJaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
 
iOSアプリケーションの Unit Test
iOSアプリケーションの Unit TestiOSアプリケーションの Unit Test
iOSアプリケーションの Unit Test
 
KobeGTUG GAE/Java
KobeGTUG GAE/JavaKobeGTUG GAE/Java
KobeGTUG GAE/Java
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
 
Dev opschef
Dev opschefDev opschef
Dev opschef
 
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!	[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよ
 
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
 

Mehr von 健一 辰濱

地方創生ワカモノ会合
地方創生ワカモノ会合地方創生ワカモノ会合
地方創生ワカモノ会合健一 辰濱
 
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 を適用させていく健一 辰濱
 

Mehr von 健一 辰濱 (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 を適用させていく
 

Device Farm を使ったスマホアプリの自動テスト