Suche senden
Hochladen
Device Farm を使ったスマホアプリの自動テスト
•
Als PPTX, PDF herunterladen
•
2 gefällt mir
•
6,362 views
健一 辰濱
Folgen
JAWS Festa−中四国2017− 2017.11.4@愛媛大学
Weniger lesen
Mehr lesen
Mobil
Melden
Teilen
Melden
Teilen
1 von 104
Jetzt herunterladen
Empfohlen
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
SEGADevTech
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
kk_Ataka
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
KLab Inc. / Tech
About GStreamer 1.0 application development for beginners
About GStreamer 1.0 application development for beginners
Shota TAMURA
No skk, no life.
No skk, no life.
digitalghost
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
Takuro Sasaki
Empfohlen
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
SEGADevTech
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
kk_Ataka
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
KLab Inc. / Tech
About GStreamer 1.0 application development for beginners
About GStreamer 1.0 application development for beginners
Shota TAMURA
No skk, no life.
No skk, no life.
digitalghost
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
Takuro Sasaki
async/await のしくみ
async/await のしくみ
信之 岩永
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
こわくない Git
こわくない Git
Kota Saito
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
Amazon Web Services Japan
Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編
なべ
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#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
harmonylab
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
JIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだ
Narichika Kajihara
低レイヤー入門
低レイヤー入門
demuyan
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
Hiroyuki Ito
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
ssuser868e2d
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
AppCodeNight testcode
AppCodeNight testcode
Akira SUGIMOTO
Weitere ähnliche Inhalte
Was ist angesagt?
async/await のしくみ
async/await のしくみ
信之 岩永
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
こわくない Git
こわくない Git
Kota Saito
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
Amazon Web Services Japan
Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編
なべ
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#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
harmonylab
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
JIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだ
Narichika Kajihara
低レイヤー入門
低レイヤー入門
demuyan
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
Hiroyuki Ito
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
ssuser868e2d
Was ist angesagt?
(20)
async/await のしくみ
async/await のしくみ
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
こわくない Git
こわくない Git
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編
Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月
Ubuntu Juju/MAAS・OpenStackを使った検証環境構築 - OpenStack最新情報セミナー 2016年3月
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...
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
CUDAプログラミング入門
CUDAプログラミング入門
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
JIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだ
低レイヤー入門
低レイヤー入門
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
Ähnlich wie Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
AppCodeNight testcode
AppCodeNight testcode
Akira SUGIMOTO
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめよう
Koji Hasegawa
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
NTT Resonant Technology Inc.
Sharoid Service Menu
Sharoid Service Menu
sharoid
iOS豆知識ver0.0.5
iOS豆知識ver0.0.5
ppengotsu Name
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
mirer
20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
Kenichi Kambara
iOSアプリケーションの Unit Test
iOSアプリケーションの Unit Test
Katsumi Kishikawa
KobeGTUG GAE/Java
KobeGTUG GAE/Java
takagig
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Koji Hasegawa
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
Dev opschef
Dev opschef
Yusuke Ando
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
ichigotake .
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
Jenkinsを使おうよ
Jenkinsを使おうよ
Yohei Oda
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜
Takao Sumitomo
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
Ähnlich wie Device Farm を使ったスマホアプリの自動テスト
(20)
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
AppCodeNight testcode
AppCodeNight testcode
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめよう
Robotium を使った UI テスト
Robotium を使った UI テスト
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
Sharoid Service Menu
Sharoid Service Menu
iOS豆知識ver0.0.5
iOS豆知識ver0.0.5
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
20120316 designerworkshoppublished
20120316 designerworkshoppublished
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
iOSアプリケーションの Unit Test
iOSアプリケーションの Unit Test
KobeGTUG GAE/Java
KobeGTUG GAE/Java
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
Dev opschef
Dev opschef
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Jenkinsを使おうよ
Jenkinsを使おうよ
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
Mehr von 健一 辰濱
地方創生ワカモノ会合
地方創生ワカモノ会合
健一 辰濱
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン
健一 辰濱
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
健一 辰濱
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
健一 辰濱
Android 開発の昔と今
Android 開発の昔と今
健一 辰濱
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
健一 辰濱
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
健一 辰濱
GDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-on
健一 辰濱
Firebase Summit 2019 Recap
Firebase Summit 2019 Recap
健一 辰濱
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
健一 辰濱
Firebase hands on in Matsuyama
Firebase hands on in Matsuyama
健一 辰濱
インドのインターネット環境との戦い方
インドのインターネット環境との戦い方
健一 辰濱
インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法
健一 辰濱
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing
健一 辰濱
企業スポンサー
企業スポンサー
健一 辰濱
参加したセッションのピックアップ
参加したセッションのピックアップ
健一 辰濱
CFP(Call For Paper)を出す話
CFP(Call For Paper)を出す話
健一 辰濱
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会
健一 辰濱
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
健一 辰濱
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく
健一 辰濱
Mehr von 健一 辰濱
(20)
地方創生ワカモノ会合
地方創生ワカモノ会合
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
Android 開発の昔と今
Android 開発の昔と今
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
GDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-on
Firebase Summit 2019 Recap
Firebase Summit 2019 Recap
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
Firebase hands on in Matsuyama
Firebase hands on in Matsuyama
インドのインターネット環境との戦い方
インドのインターネット環境との戦い方
インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing
企業スポンサー
企業スポンサー
参加したセッションのピックアップ
参加したセッションのピックアップ
CFP(Call For Paper)を出す話
CFP(Call For Paper)を出す話
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく
Device Farm を使ったスマホアプリの自動テスト
1.
Device Farm を使った スマホアプリの自動テスト JAWS
Festa−中四国2017− 2017.11.4@愛媛大学 辰濱健一
2.
自己紹介 • 辰濱健一(たつはまけんいち) • 徳島県生まれ、神山町在住 •
GDG Shikoku スタッフ • Sansan 株式会社、名刺アプリ Eight のアプリ開発 • Twitter:@tatsuhama50 • Facebook:kenichi.tatsuhama 2
3.
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
103.
104.
DevFest Shikoku 2017 •
11/18(日)に徳島大学で開催! • Android, Kotlin, TensolFlow Go言語, Firebase など… 104 ご参加お待ちしております! https://gdgshikoku.connpass.com/event/68244/
Jetzt herunterladen