SlideShare a Scribd company logo
Submit Search
Upload
Device Farm を使ったスマホアプリの自動テスト
Report
Share
健一 辰濱
Sansan株式会社 - スマートフォンアプリエンジニア at Sansan
Follow
•
2 likes
•
6,326 views
1
of
104
Device Farm を使ったスマホアプリの自動テスト
•
2 likes
•
6,326 views
Report
Share
Download Now
Download to read offline
Mobile
JAWS Festa−中四国2017− 2017.11.4@愛媛大学
Read more
健一 辰濱
Sansan株式会社 - スマートフォンアプリエンジニア at Sansan
Follow
Recommended
FridaによるAndroidアプリの動的解析とフッキングの基礎 by
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
7K views
•
35 slides
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~ by
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
SEGADevTech
4.3K views
•
188 slides
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例 by
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
8.4K views
•
54 slides
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで by
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
Shuichi Tsutsumi
197.4K views
•
91 slides
iOSアプリ UIテスト自動化入門 by
iOSアプリ UIテスト自動化入門
Shingo Tamaki
15.7K views
•
39 slides
Jenkins 再入門 by
Jenkins 再入門
Jumpei Miyata
67.8K views
•
62 slides
More Related Content
What's hot
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト by
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
2.3K views
•
15 slides
ワタシはSingletonがキライだ by
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
17.9K views
•
38 slides
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか? by
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
91.1K views
•
50 slides
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ by
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
9.1K views
•
118 slides
GoによるWebアプリ開発のキホン by
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
61K views
•
33 slides
Rest ful api設計入門 by
Rest ful api設計入門
Monstar Lab Inc.
73.8K views
•
36 slides
What's hot
(20)
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト by KLab Inc. / Tech
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
•
2.3K views
ワタシはSingletonがキライだ by Tetsuya Kaneuchi
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
•
17.9K views
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか? by naoki koyama
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
•
91.1K views
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ by SEGADevTech
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
•
9.1K views
GoによるWebアプリ開発のキホン by Akihiko Horiuchi
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
•
61K views
Rest ful api設計入門 by Monstar Lab Inc.
Rest ful api設計入門
Monstar Lab Inc.
•
73.8K views
イミュータブルデータモデル(入門編) by Yoshitaka Kawashima
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
•
185.7K views
Unityでソーシャルログイン機能を実装してみた by 昭仁 賀好
Unityでソーシャルログイン機能を実装してみた
昭仁 賀好
•
25.9K views
本当は恐ろしい分散システムの話 by Kumazaki Hiroki
本当は恐ろしい分散システムの話
Kumazaki Hiroki
•
686K views
脱RESTful API設計の提案 by 樽八 仲川
脱RESTful API設計の提案
樽八 仲川
•
14K views
DeNAの最新のマスタデータ管理システム Oyakata の全容 by sairoutine
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
•
3.6K views
Test Yourself - テストを書くと何がどう変わるか by Takuto Wada
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
•
38.3K views
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~ by Yuki Hirano
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
•
15K views
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発 by 日本マイクロソフト株式会社
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
•
1.5K views
ここが良かったDatadog by tyamane
ここが良かったDatadog
tyamane
•
10.3K views
アプリの鍵が消える時_Droid kaigi2018 by ak_shio_555
アプリの鍵が消える時_Droid kaigi2018
ak_shio_555
•
10.5K views
Dockerからcontainerdへの移行 by Kohei Tokunaga
Dockerからcontainerdへの移行
Kohei Tokunaga
•
16.6K views
ネットワーク ゲームにおけるTCPとUDPの使い分け by モノビット エンジン
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
•
61.4K views
世界一わかりやすいClean Architecture by Atsushi Nakamura
世界一わかりやすいClean Architecture
Atsushi Nakamura
•
47.1K views
目grep入門 +解説 by murachue
目grep入門 +解説
murachue
•
89.3K views
Similar to Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト by
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
3.7K views
•
97 slides
AppCodeNight testcode by
AppCodeNight testcode
Akira SUGIMOTO
902 views
•
8 slides
スマートフォンアプリの テスト自動化をはじめよう by
スマートフォンアプリの テスト自動化をはじめよう
Koji Hasegawa
39.9K views
•
59 slides
Robotium を使った UI テスト by
Robotium を使った UI テスト
健一 辰濱
1K views
•
63 slides
リモート・スマホ・レンタル(第2回 Androidテスト祭り) by
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
NTT Resonant Technology Inc.
1.8K views
•
14 slides
Sharoid Service Menu by
Sharoid Service Menu
sharoid
385 views
•
12 slides
Similar to Device Farm を使ったスマホアプリの自動テスト
(20)
Device Farm を使ったスマホアプリの自動テスト by 健一 辰濱
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
•
3.7K views
AppCodeNight testcode by Akira SUGIMOTO
AppCodeNight testcode
Akira SUGIMOTO
•
902 views
スマートフォンアプリの テスト自動化をはじめよう by Koji Hasegawa
スマートフォンアプリの テスト自動化をはじめよう
Koji Hasegawa
•
39.9K views
Robotium を使った UI テスト by 健一 辰濱
Robotium を使った UI テスト
健一 辰濱
•
1K views
リモート・スマホ・レンタル(第2回 Androidテスト祭り) by NTT Resonant Technology Inc.
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
NTT Resonant Technology Inc.
•
1.8K views
Sharoid Service Menu by sharoid
Sharoid Service Menu
sharoid
•
385 views
iOS豆知識ver0.0.5 by ppengotsu Name
iOS豆知識ver0.0.5
ppengotsu Name
•
13.9K views
JaSST'16 Tokyo モバイルセッション by mirer
JaSST'16 Tokyo モバイルセッション
mirer
•
1.2K views
20120316 designerworkshoppublished by Yoichiro Sakurai
20120316 designerworkshoppublished
Yoichiro Sakurai
•
697 views
Androidリリース作業の効率化(2) by Kenichi Kambara
Androidリリース作業の効率化(2)
Kenichi Kambara
•
37K views
iOSアプリケーションの Unit Test by Katsumi Kishikawa
iOSアプリケーションの Unit Test
Katsumi Kishikawa
•
6.1K views
KobeGTUG GAE/Java by takagig
KobeGTUG GAE/Java
takagig
•
573 views
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会 by Koji Hasegawa
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Koji Hasegawa
•
9K views
iQONの開発手法 at iQONエンジニアセミナー by Imamura Masayuki
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
•
4.9K views
Dev opschef by Yusuke Ando
Dev opschef
Yusuke Ando
•
2.7K views
[Android] モジュール管理で ビルド高速化! by ichigotake .
[Android] モジュール管理で ビルド高速化!
ichigotake .
•
2.5K views
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017 by Yahoo!デベロッパーネットワーク
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
•
9K views
Jenkinsを使おうよ by Yohei Oda
Jenkinsを使おうよ
Yohei Oda
•
1.1K views
テストがあればなんとかなる〜効率化までの道程〜 by Takao Sumitomo
テストがあればなんとかなる〜効率化までの道程〜
Takao Sumitomo
•
14K views
2017年のiOSアプリ開発におけるCI事情 by Toshiyuki Hirata
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
•
6.9K views
More from 健一 辰濱
地方創生ワカモノ会合 by
地方創生ワカモノ会合
健一 辰濱
140 views
•
78 slides
Google Analytics のデータ分析ハンズオン by
Google Analytics のデータ分析ハンズオン
健一 辰濱
302 views
•
59 slides
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O by
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
健一 辰濱
156 views
•
78 slides
知っておきたいFirebase の色んな上限について by
知っておきたいFirebase の色んな上限について
健一 辰濱
1.9K views
•
58 slides
Android 開発の昔と今 by
Android 開発の昔と今
健一 辰濱
435 views
•
22 slides
Firebase Extensions はじめの一歩 by
Firebase Extensions はじめの一歩
健一 辰濱
492 views
•
70 slides
More from 健一 辰濱
(20)
地方創生ワカモノ会合 by 健一 辰濱
地方創生ワカモノ会合
健一 辰濱
•
140 views
Google Analytics のデータ分析ハンズオン by 健一 辰濱
Google Analytics のデータ分析ハンズオン
健一 辰濱
•
302 views
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O by 健一 辰濱
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
健一 辰濱
•
156 views
知っておきたいFirebase の色んな上限について by 健一 辰濱
知っておきたいFirebase の色んな上限について
健一 辰濱
•
1.9K views
Android 開発の昔と今 by 健一 辰濱
Android 開発の昔と今
健一 辰濱
•
435 views
Firebase Extensions はじめの一歩 by 健一 辰濱
Firebase Extensions はじめの一歩
健一 辰濱
•
492 views
Firebase & BigQuery で Android アプリの成⻑を支える by 健一 辰濱
Firebase & BigQuery で Android アプリの成⻑を支える
健一 辰濱
•
1.2K views
GDG DevFest Tokyo 2019 Day2 Special Hands-on by 健一 辰濱
GDG DevFest Tokyo 2019 Day2 Special Hands-on
健一 辰濱
•
273 views
Firebase Summit 2019 Recap by 健一 辰濱
Firebase Summit 2019 Recap
健一 辰濱
•
250 views
Cloud Firestore を使って、Polling をやめたい話 by 健一 辰濱
Cloud Firestore を使って、Polling をやめたい話
健一 辰濱
•
3.2K views
Firebase hands on in Matsuyama by 健一 辰濱
Firebase hands on in Matsuyama
健一 辰濱
•
504 views
インドのインターネット環境との戦い方 by 健一 辰濱
インドのインターネット環境との戦い方
健一 辰濱
•
2.6K views
インドの低速なネットワーク環境の攻略法 by 健一 辰濱
インドの低速なネットワーク環境の攻略法
健一 辰濱
•
2.9K views
DroidKaigi 2018 参加報告会 Closing by 健一 辰濱
DroidKaigi 2018 参加報告会 Closing
健一 辰濱
•
361 views
企業スポンサー by 健一 辰濱
企業スポンサー
健一 辰濱
•
341 views
参加したセッションのピックアップ by 健一 辰濱
参加したセッションのピックアップ
健一 辰濱
•
430 views
CFP(Call For Paper)を出す話 by 健一 辰濱
CFP(Call For Paper)を出す話
健一 辰濱
•
201 views
DroidKaigi 2018 参加報告会 by 健一 辰濱
DroidKaigi 2018 参加報告会
健一 辰濱
•
150 views
DroidKaigi アプリの内部を見る by 健一 辰濱
DroidKaigi アプリの内部を見る
健一 辰濱
•
3.2K views
Java で書かれた Android アプリに Kotlin を適用させていく by 健一 辰濱
Java で書かれた Android アプリに Kotlin を適用させていく
健一 辰濱
•
2.7K views
Device Farm を使ったスマホアプリの自動テスト
1.
Device Farm を使った スマホアプリの自動テスト JAWS
Festa−中四国2017− 2017.11.4@愛媛大学 辰濱健一
2.
自己紹介 • 辰濱健一(たつはまけんいち) • 徳島県生まれ、神山町在住 •
GDG Shikoku スタッフ • Sansan 株式会社、名刺アプリ Eight のアプリ開発 • Twitter:@tatsuhama50 • Facebook:kenichi.tatsuhama 2
4.
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/
5.
DevFest Shikoku 2017 •
11/18(日)に徳島大学で開催! • Android, Kotlin, TensolFlow Go言語, Firebase など… 5 ご参加お待ちしております! https://gdgshikoku.connpass.com/event/68244/
6.
徳島県神山町 6
7.
徳島県神山町 7 約200km 車で3時間 四国は広いんです!
8.
徳島県神山町 • 人口:約 5,500
人 • 名産:すだち • 全面積の 83% が山地 • 過疎化が進む町 (消滅可能性都市にランクイン) • サテライトオフィス(13社)の進出、移住者が増 • 古民家再生・地産地消・教育改革など、先進的な取り組みが行 われて注目されている 8
9.
Sansan株式会社 神山ラボ 9
10.
Sansan株式会社 10 詳しくは、14:05 〜のサポータセッションで!!
11.
Device Farm とは?
12.
Device Farm とは •
AWS クラウドで実機のデバイスを使用してアプリをテスト • Android / iOS / Webアプリに対応 • 実際の環境をシミュレート • 開発ワークフローとの統合 • UI テストフレームワークをサポート • 料金 12
13.
Device Farm とは •
AWS クラウドで実機のデバイスを使用してアプリをテスト • Android / iOS / Webアプリに対応 • 実際の環境をシミュレート • 開発ワークフローとの統合 • UI テストフレームワークをサポート • 料金 13 エミュレータよも 信頼できる パフォーマンス
14.
Device Farm とは •
AWS クラウドで実機のデバイスを使用してアプリをテスト • Android / iOS / Webアプリに対応 • 実際の環境をシミュレート • 開発ワークフローとの統合 • UI テストフレームワークをサポート • 料金 14 マルチプラット フォーム
15.
Device Farm とは •
AWS クラウドで実機のデバイスを使用してアプリをテスト • Android / iOS / Webアプリに対応 • 実際の環境をシミュレート • 開発ワークフローとの統合 • UI テストフレームワークをサポート • 料金 15 • 位置情報の指定 • 端末言語 • 前提アプリの インストール
16.
Device Farm とは •
AWS クラウドで実機のデバイスを使用してアプリをテスト • Android / iOS / Webアプリに対応 • 実際の環境をシミュレート • 開発ワークフローとの統合 • UI テストフレームワークをサポート • 料金 16 ・API ・Gradle Plugin ・Jenkins Plugin →自動化できる!
17.
Device Farm とは •
AWS クラウドで実機のデバイスを使用してアプリをテスト • Android / iOS / Webアプリに対応 • 実際の環境をシミュレート • 開発ワークフローとの統合 • UI テストフレームワークをサポート • 料金 17 Appium, Espresso などで UI 操作を記述& 実行できる
18.
Device Farm とは •
AWS クラウドで実機のデバイスを使用してアプリをテスト • Android / iOS / Webアプリに対応 • 実際の環境をシミュレート • 開発ワークフローとの統合 • UI テストフレームワークをサポート • 料金 18 • 0.17$ / デバイス分 • 250$ / 月 • 無償枠(1000 デバイス分)
19.
テストコードがない人向け
20.
テストコードがない人向け • モンキーテスト • Remote
access (2016/4〜) • 【New!!】Direct Device Access (2017/10/16〜) 20
21.
モンキーテスト • Device Farm
側でランダムに触ってくれる • アプリのバイナリさえあれば、今すぐ始められる 21
22.
モンキーテスト 22 Automated tests を選んで Create
a new run
23.
モンキーテスト 23 アプリケーションの種類を選んで アップロード
24.
モンキーテスト 24 アプリの情報が表示される
25.
モンキーテスト 25 何イベント(数)実行するか
26.
モンキーテスト 26 実行する端末を選択
27.
モンキーテスト 27 端末の設定
28.
モンキーテスト 28 タイムアウトの設定
29.
モンキーテスト 29 実際のプロダクトでやってみた。
30.
ターゲットアプリ 30
31.
モンキーテスト 31 結果…!?
32.
モンキーテスト 32
33.
モンキーテスト 33 わずかな時間で複数端末での クラッシュが発覚。。。orz
34.
モンキーテスト • スクリーンショットや動画、ログが残ってる 34※横固定のタブレット
35.
モンキーテスト • 動画 35
36.
モンキーテスト 36 動画により、どういう遷移や状態で クラッシュしたかが確認できる! → 問題の確認が容易に!
37.
Remote access 37 • ブラウザ上に表示される端末をマウス・キーボードで操作 •
アプリバイナリのアップロード&実行が可能 • 端末内ブラウザで Web サイトの表示 (=レンダリングチェック)も可能
38.
Remote access 38 Remote access を選んで +Start
a new session
39.
Remote access 39 端末を検索して選んで…
40.
Remote access 40 Confirm and
start session
41.
Remote access 41しばし待つ(だいたい数分以内)
42.
Remote access 42 マウスで直接 操作可能! アプリバイナリの アップロードは ここから
43.
Remote access 43 ブラウザも 起動できる
44.
Remote access 44 手元にない端末を ちょっと試してみたい時には便利!
45.
Remote access 45 でも、何度も手作業で 同じ操作をして、 動作確認するのはつらい・・・
46.
Direct Device Access •
USB を介してローカルマシンに直接接続されているかのよう に、デバイスを使用できる。 • IDE からのデバッグも可能 • 200$/月の private device の契約が必要 46
47.
Direct Device Access •
https://aws.amazon.com/jp/blogs/mobile/announcing- direct-device-access-in-aws-device-farm/ 47 16 OCT 2017!!
48.
Direct Device Access 48 DeviceFarm上の 端末の画面 https://aws.amazon.com/jp/blogs/mobile/announcing-direct-device-access-in-aws-device-farm/ DeviceFarm上の 端末でデバッグ
49.
テストコードを用意する
50.
テストコードを用意して実行 • UI 操作をスクリプトで記述する •
何度でも同じ操作ができる • 機種や OS バージョンの横展開が容易になる • テストコードを Device Farm のコンソールから実行させる • ※以降 Android アプリを例に紹介します。 50
51.
テスティングフレームワーク • 特徴はいろいろ • OS:iOS
専用、Android 専用、ハイブリッド • アプリ内部(DB やキャッシュ)の参照可否 • リリースバイナリでの実行可否 • アプリ外の端末操作の可否 (別アプリの操作や OS が出すパーミッションダイアログの操作) • 用途によって選ぼう • 細かなところまで(ホワイトボックス)でテストする? • リリースバイナリでテストしたい? • 記述可能な言語 51
52.
テスティングフレームワークの例 • Android • Espresso
… アプリ内参照可、他アプリの操作不可、レコーダーあり • UIAutomater … 他アプリの操作が可能、Android 4.2 以上 (Espresso や UIAutomater は併用可能) • iOS • KIF • Calabash • ハイブリッド • Appium … 色んな言語で記述可能、リリースバイナリのテストが可能 52
53.
Espresso • Android アプリのテストを書くならオススメ •
Google が公開 • Android Studio から操作の記録と検証コードの追加ができる • WebView の操作・検証も可能 • Intent のテストも可能(Espresso-Intents) • 特定の状態(例:通信が終わるまで)まで待つ仕組み(IdlingResource) 53
54.
Espresso Recorder 54Android Studio
の Run > Record Espresso Test
55.
Espresso Recorder 55 1. 端末を操作する 2.アクションが 記録される 3.
検証を追加 1 〜 3 を繰り返す
56.
Espresso Recorder 56 検証を追加 1.
View を選択 2. 検証内容を編集 emailEdit の文字列が aaa かどうか?
57.
Espresso Recorder 57 Espresso の テストコード が生成される ※かなり冗長でカオス ※可読性的に要メンテ ※記述の参考にはなる このコードで 何度でも 同じ操作が 可能になる!
58.
Espresso の基本 58 • onView(...):操作対象の
View を探す • perform(...):View に対する操作 • check(...):View の検証
59.
Espresso で非同期待ち合わせ 59 // サーバアクセス・Progress
表示 ↑click 後、即実行される。。。 まだ結果が帰ってきていないので失敗する。 通信が終わってからチェックしたい。 Q:「通信が終わってから」とは?? ・何秒か待つ? 何秒? ・check…の前に wait(条件) を挟む?
60.
Espresso IdlingResource • 指定した条件を満たすまで、テストコードの実行を中断 •
例)サーバ通信中は、Progress 表示があるとする → Progress が非表示になったら再開したい 60
61.
Espresso IdlingResource 61 progress が 非表示(isGone) なら再開(idleNow)
62.
Espresso IdlingResource 62 IdlingResource の登録 IdlingResource
の解除
63.
Espresso IdlingResource • 63 ←
Progress が消えるまで待つ! // サーバアクセス・Progress 表示 • IdlingResource を設定したテストコードの実行
64.
Espresso IdlingResource 64 IdlingResource を使うと テスト実行の 非同期待ち合わせが容易に!
65.
DeviceFarm での実行 • 事前準備 •
アプリケーションバイナリの作成 • テストバイナリの作成 • コンソールからテストを実行 • コンソールで結果を確認 65
66.
アプリケーションバイナリ作成 66 • 本体のビルド • ./gradlew
assembleDebug • app-debug.apk が生成される • テストバイナリのビルド • ./gradlew assembleDebugAndroidTest • app-debug-androidTest.apk が生成される
67.
DeviceFarm でテスト実行 67 アプリケーションの種類を選んで
68.
DeviceFarm でテスト実行 68 アプリ本体のバイナリを アップロード
69.
DeviceFarm でテスト実行 69 アプリの情報を確認
70.
DeviceFarm でテスト実行 70 ←Instrumentation テストを選んで、 テストバイナリをアップロード
71.
DeviceFarm でテスト実行 71 テストアプリの情報や フィルタの設定
72.
DeviceFarm でテスト実行 72 実行する端末の種類を選んで
73.
DeviceFarm でテスト実行 73 テスト端末の設定をして
74.
DeviceFarm でテスト実行 74 実行!
75.
DeviceFarm でテスト実行 75 実行中…
76.
DeviceFarm でテスト実行 76 各端末の実行状態
77.
DeviceFarm でテスト実行 77 実行結果
78.
DeviceFarm でテスト実行 78 端末ごとの実行結果
79.
DeviceFarm でテスト実行 79 端末での実行結果
80.
DeviceFarm でテスト実行 80 テスト実行中の パフォーマンスモニタ
81.
DeviceFarm でテスト実行 81 テストコードにより 端末や OS
の横展開が 容易になった!
82.
DeviceFarm でテスト実行 82 でも…
83.
DeviceFarm でテスト実行 83 もうちょっと 楽したいですよね?
84.
開発ワークフローとの統合
85.
開発ワークフローとの統合 • Gradle Plugin
を使う • Jenkins Plugin を使う 85
86.
Gradle Plugin の導入・設定 •
Android Studio の build.gradle に数行追加 • IAMユーザを作成して、accessKey / secretKey を取得 (IAM : Identity and Access Management) • accessKey / secretKey を build.gradle へ設定 86
87.
Gradle Plugin の導入・設定 87 ←追加 ←追加↓ ・DeviceFarmプロジェクト名 ・DevicePool(端末群) ・認証トークン など…
88.
Gradle Plugin からの実行 88 ←実行! ↑結果はここを自分で見にいく… ※あくまでも
Device Farm のテストジョブのキックのみです。
89.
Gradle Plugin 89 結果はコンソールで確認…
90.
Gradle Plugin • メリット •
テスト実行のために、コンソールの操作が不要 • 実行時の設定をファイルで記述できる • コマンドラインからの実行ができる • もうちょっと… • IAM の認証情報を git で管理する?? • 結果が出た時にコンソールを見にいかないと行けない 90
91.
Jenkins Plugin 91 そこで Jenkins
連携!
92.
Jenkins Plugin の導入・設定 •
Jenkins に AWS Device Farm Plugin を導入 • Jenkins のシステム設定 • Jenkins にジョブを作成&設定 92
93.
Jenkins Plugin の導入・設定 •
Jenkins に AWS Device Farm Plugin を導入 93 検索すると出てきます
94.
Jenkins Plugin の導入・設定 •
Jenkins のシステム設定 • accessKey / secretKey を追加 94
95.
Jenkins Plugin の導入・設定 •
本体 apk、テスト apk の作成の設定 95
96.
Jenkins Plugin の導入・設定 •
ビルド後の処理の処理に 「Run Tests on AWS Device Farm」を追加して、設定する 96
97.
Jenkins での実行 97 他にも、 ・push があったら実行 ・定刻実行など… ←
98.
Jenkins で結果確認 98
99.
Jenkins 連携すると • 実行結果の推移がグラフィカルに確認できる •
テスト終了時に Slack 通知なども可能 99
100.
実運用するなら… 100 テストをちゃんと記述して、 Jenkins で継続的に テストを実行しよう!
101.
まとめ • Device Farm
はクラウド上の実機を時間借りできるサービス • テストコードがなくても触れる • テストコードを用意して、Jenkins 等の CI 連携すると効果的 101
102.
今後の期待 • 端末のラインナップの充実 • メーカーに偏りがある (先進国のチープな端末でのクラッシュの確認がしたい) •
最新の OS バージョンがない (最新の OS で確認したいニーズは大きいのでは?) • スクリーンショットがレポートに表示されない問題の改修 • https://forums.aws.amazon.com/thread.jspa?messageID=7527 86 • これが改修されると、色んな端末のレイアウトチェックが容易に! 102
104.
DevFest Shikoku 2017 •
11/18(日)に徳島大学で開催! • Android, Kotlin, TensolFlow Go言語, Firebase など… 104 ご参加お待ちしております! https://gdgshikoku.connpass.com/event/68244/