More Related Content
PPTX
Device Farm を使ったスマホアプリの自動テスト PDF
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio PPTX
Espresso と Firebase Test Lab で Android アプリのテストを自動化する PDF
Apiドキュメンテーションツールを使いこなす【api blueprint編】 PPTX
PPTX
Android 開発, 運用時に使いたいライブラリやサービスの紹介 PPTX
Win7 * appium * androidで実機自動テストやってみた。 PDF
What's hot
PDF
ログ管理でウキウキAndroid Life (Log Management in Android) PDF
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014 PDF
Appiumのテスト結果レポートをsahaginで作ってみる PDF
アプリケーションエンジニアがMackerelで楽しく監視構成している事例 PDF
自作アプリを Apple Watch対応した話 〜FastCheckin編〜 PDF
AppiumのWebViewアプリテストの仕組みとハマりどころ PDF
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech PPTX
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】 PDF
Java + React.jsでSever Side Rendering #reactjs_meetup PDF
インフラエンジニアの綺麗で優しい手順書の書き方 PDF
Firebase Test Lab 無料枠を使ってみました。 PPTX
PDF
Behind-the-Scenes and Goals of LINE Summer Internship Program PDF
PPTX
Android ReactNative UITesting PDF
最近のSpringFramework2013 #jjug #jsug #SpringFramework PDF
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014 PPTX
前任者から引き継いだ Eight Android アプリ内部の改善 PDF
Viewers also liked
PPTX
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 - PPTX
Sansan における Android アプリ自動テスト導入事例 PPTX
Robotium を使った UI テストとレイアウト確認の効率化 PPTX
Appium を使って iOS / Android の UI テストを共通化 PPT
スマホアプリ・サイトの実機検証・自動テストサービスーMovaTestingのご紹介 PDF
ディープラーニングとAppiumでモバイルテスト自動化 PDF
AWS Device FarmでAndroidのUIテストをやってみた PDF
【JAWS DAYS 2016】ランサーズを支えるAurora PDF
PPTX
PPTX
iOSアプリ開発のCI環境 - Jenkins編 - PDF
AWS Device Farm を Jenkins CI から叩いてみた PDF
PDF
Mobile automation – should I use robotium or calabash or appium? PPTX
PPTX
JAWS DAYS | IoTプラットフォーム”SORACOM”最新動向 PDF
PPTX
Jawsdays2016 田舎とAWS Lambdaと私 PDF
PDF
Similar to Device Farm を使ったスマホアプリの自動テスト
PDF
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017 PDF
Automated Testing on AWS Device Farm PPTX
PDF
PDF
PDF
PDF
ATEAM TECH MeetUp_Vol.02 #AWS活用事例&交流会 PDF
インフラセキュリティブートキャンプ #seccamp PDF
PDF
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019) PPTX
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜 PPTX
ストレスレスなフロンティアを求めて NoSSHな環境でB/Gデプロイメントを使い運用にのせた PDF
AWS Black Belt Tech シリーズ 2015 AWS Device Farm PDF
PDF
PDF
PDF
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA PPTX
PDF
PPTX
本番稼働した IoT のツラミを乗り越えて火星まで行こう! More from Kenichi Tatsuhama
PPTX
PDF
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O PDF
Firebase & BigQuery で Android アプリの成⻑を支える PPTX
PDF
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01 PDF
知っておきたいFirebase の色んな上限について PDF
Firebase Extensions はじめの一歩 PDF
PDF
Google Analytics のデータ分析ハンズオン PPTX
PPTX
Cloud Firestore を使って、Polling をやめたい話 PPTX
PPTX
Firebase Summit 2019 Recap PPTX
GDG DevFest Tokyo 2019 Day2 Special Hands-on PPTX
Firebase hands on in Matsuyama PPTX
PPTX
PPTX
DroidKaigi 2018 参加報告会 Closing PPTX
PDF
Device Farm を使ったスマホアプリの自動テスト
- 1.
- 2.
- 3.
- 4.
> 自己紹介
3
• 辰濱健一
•Sansan株式会社所属
• スマホアプリエンジニア
• リモートワーク@徳島県神山町
• Tokushima.app 主催(スマホアプリ開発勉強会)
• JAWS-UG 四国のイベントに、
なんやかんやでちょこちょこ参加
• 趣味は音楽と旅行
- 5.
> 自己紹介
4
• 業務経歴
•1社目@徳島市
• Java, C++, MFC
• UWSC を使った Windows アプリの UI 自動テストの導入
• 性能改善チームにて、自動性能計測ツールを作成
• 2社目@徳島市
• iOS(Objective-C), Android(Java), Windows(C#)の
スマホ&タブレット向けアプリ開発
• 機能担当制、iOS で作った機能は作った人が他 OS に移植
• 3社目@徳島県神山町
• スマホアプリの自動テスト
• リモートワーク
- 6.
> 自己紹介
5
• 業務経歴
•1社目@徳島市
• Java, C++, MFC
• UWSC を使った Windows アプリの UI 自動テストの導入
• 性能改善チームにて、自動性能計測ツールを作成
• 2社目@徳島市
• iOS(Objective-C), Android(Java), Windows(C#)の
スマホ&タブレット向けアプリ開発
• 機能担当制、iOS で作った機能は作った人が他 OS に移植
• 3社目@徳島県神山町
• スマホアプリの自動テスト
• リモートワーク
開発&
品質担保と自動テスト
- 7.
> 自己紹介
6
• 業務経歴
•1社目@徳島市
• Java, C++, MFC
• UWSC を使った Windows アプリの UI 自動テストの導入
• 性能改善チームにて、自動性能計測ツールを作成
• 2社目@徳島市
• iOS(Objective-C), Android(Java), Windows(C#)の
スマホ&タブレット向けアプリ開発
• 機能担当制、iOS で作った機能は作った人が他 OS に移植
• 3社目@徳島県神山町
• スマホアプリの自動テスト
• リモートワーク
開発&
品質担保と自動テスト
モバイル開発
- 8.
> 自己紹介
7
• 業務経歴
•1社目@徳島市
• Java, C++, MFC
• UWSC を使った Windows アプリの UI 自動テストの導入
• 性能改善チームにて、自動性能計測ツールを作成
• 2社目@徳島市
• iOS(Objective-C), Android(Java), Windows(C#)の
スマホ&タブレット向けアプリ開発
• 機能担当制、iOS で作った機能は作った人が他 OS に移植
• 3社目@徳島県神山町
• スマホアプリの自動テスト
• リモートワーク
開発&
品質担保と自動テスト
モバイル開発
モバイル開発での
品質担保と
自動テスト
- 9.
> JAWS-UG のイベント参加実績
8
日時タイトル 参加形態 案内時の感想
2013/11/25 AWS勉強会「クラウドについ
て入門から活用事例まで説明
します!」in 美波町
一般参加 AWS って何?
2014/10/4 四国クラウドお遍路2014 LT 地元神山開催だし、
サテライトオフィ
スネタでLT でも
するかー
2015/10/10 四国クラウドお遍路2015
-クラウドとIT技術者の働き方
と-
登壇 リモートワークの
話ならできる!
2016/3/12 JAWS DAYS 2016 登壇
- 10.
> JAWS-UG のイベント参加実績
9
日時タイトル 参加形態 案内時の感想
2013/11/25 AWS勉強会「クラウドについ
て入門から活用事例まで説明
します!」in 美波町
一般参加 AWS って何?
2014/10/4 四国クラウドお遍路2014 LT 地元神山開催だし、
サテライトオフィ
スネタでLT でも
するかー
2015/10/10 四国クラウドお遍路2015
-クラウドとIT技術者の働き方
と-
登壇 リモートワークの
話ならできる!
2016/3/12 JAWS DAYS 2016 登壇 えっ!?
- 11.
> JAWS-UG のイベント参加実績
10
日時タイトル 参加形態 案内時の感想
2013/11/25 AWS勉強会「クラウドについ
て入門から活用事例まで説明
します!」in 美波町
一般参加 AWS って何?
2014/10/4 四国クラウドお遍路2014 LT 地元神山開催だし、
サテライトオフィ
スネタでLT でも
するかー
2015/10/10 四国クラウドお遍路2015
-クラウドとIT技術者の働き方
と-
登壇 リモートワークの
話ならできる!
2016/3/12 JAWS DAYS 2016 登壇 えっ!?
・年1回しか参加してない
・AWS の話をしたことない
・しかも DAYS !?
・弊社、企業サポータ…
・アプリエンジニアなのですが…
- 12.
> JAWS-UG のイベント参加実績
11
日時タイトル 参加形態 案内時の感想
2013/11/25 AWS勉強会「クラウドについ
て入門から活用事例まで説明
します!」in 美波町
一般参加 AWS って何?
2014/10/4 四国クラウドお遍路2014 LT 地元神山開催だし、
サテライトオフィ
スネタでLT でも
するかー
2015/10/10 四国クラウドお遍路2015
-クラウドとIT技術者の働き方
と-
登壇 リモートワークの
話ならできる!
2016/3/12 JAWS DAYS 2016 登壇 えっ!?
でも、四国でのご縁(コミュニティ)
からのお声がけなので、
頑張ります!!
・年1回しか参加してない
・AWS の話をしたことない
・しかも DAYS !?
・弊社、企業サポータ…
・アプリエンジニアなのですが…
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
> Device Farmとは
34
• AWS クラウドで実機のデバイスを使用してアプリを
テスト
• Android / iOS / Fire OS に対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
- 36.
> Device Farmとは
35
• AWS クラウドで実機のデバイスを使用してアプリを
テスト
• Android / iOS / Fire OS に対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
エミュレータよりも
信頼できる
パフォーマンス
- 37.
> Device Farmとは
36
• AWS クラウドで実機のデバイスを使用してアプリを
テスト
• Android / iOS / Fire OS に対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
マルチプラット
フォーム!
- 38.
> Device Farmとは
37
• AWS クラウドで実機のデバイスを使用してアプリを
テスト
• Android / iOS / Fire OS に対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
位置情報の指定、端
末言語、前提アプリ
のインストールなど
- 39.
> Device Farmとは
38
• AWS クラウドで実機のデバイスを使用してアプリを
テスト
• Android / iOS / Fire OS に対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
・API
・Gradle Plugin
・Jenkins Plugin
- 40.
> Device Farmとは
39
• AWS クラウドで実機のデバイスを使用してアプリを
テスト
• Android / iOS / Fire OS に対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
Appium, Espresso
などで、指定したUI
操作が記述可能
- 41.
> Device Farmとは
40
• AWS クラウドで実機のデバイスを使用してアプリを
テスト
• Android / iOS / Fire OS に対応
• 実際の環境をシミュレート
• 開発ワークフローとの統合
• UI テストフレームワークをサポート
• 料金
・0.17 $ / デバイス分
・250 $ / 月
・250 デバイス分 無料
- 42.
- 43.
> Device Farmを有効活用するために
42
• 何らかのテスティングフレームワークを習得しよう!
• スクリーンショットを保存しよう!
- 44.
> Device Farmを有効活用するために
43
• 何らかのテスティングフレームワークを習得しよう!
• スクリーンショットを保存しよう!
- 45.
> テスティングフレームワーク
44
• UI操作を記述するためのフレームワーク
• 特徴
• iOS 専用、Android 専用、ハイブリッド
• アプリ内部オブジェクトへのアクセスの可否
• リリースバイナリでの実行可否
• アプリ外の端末の操作(遷移後の別アプリの操作など)の可否
• 用途によって選ぼう
• 細かなところまでテストをしたい?
• リリースバイナリでテストをしたい?
(Android だとリリース時に難読化や最適化がかかる)
• 記述可能な言語
- 46.
> テスティングフレームワーク
45
• 弊社で使っているテスティングフレームワーク
•Android
• Robotium, Espresso
• アプリ内オブジェクト利用可
→ 端末内 DB の状態やキャッシュの値も参照可能
• 別アプリ遷移後の操作はできない…
→ UIAutomater との併用を検討
• iOS
• KIF
• iOS & Android
• Appium(Ruby) でテストコードを共通化
• リリースバイナリ可
- 47.
- 48.
- 49.
> Device Farmを有効活用するために
48
• 何らかのテスティングフレームワークを習得しよう!
• スクリーンショットを保存しよう!
- 50.
- 51.
- 52.
- 53.
> Device Farmでの実行
52
• Web から実行
• Gradle Plugin から実行
• Jenkins から実行
- 54.
> Device Farmでの実行
53
• Web から実行
• Gradle Plugin から実行
• Jenkins から実行
- 55.
> Device Farmでの実行 - Web から
54
「Robotium で書いた Android アプリのテストを
AWS Device Farm で実行する」
http://qiita.com/tatsuhama/items/27d5e3ef1056e740b085
で詳しく書いているので、雰囲気だけ掴んでもらえば OK。
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
> Device Farmでの実行
72
• Web から実行
• Gradle Plugin から実行
• Jenkins から実行
- 74.
> Gradle Pluginから実行
73
• Android の build.gradle へ何行か追記
• IAMユーザを作成して、accessKey / secretKey を取得
(IAM : Identity and Access Management)
• accessKey / secretKey を build.gradle へ設定
• ./gradlew devicefarmUpload を実行
•
•
- 75.
> Gradle Pluginから実行
74
• Android の build.gradle へ何行か追記
• IAMユーザを作成して、accessKey / secretKey を取得
(IAM : Identity and Access Management)
• accessKey / secretKey を build.gradle へ設定
• ./gradlew devicefarmUpload を実行
• 事前準備さえすれば、コマンド1つなので便利
• 「 AWS Device Farm Gradle Plugin を導入した」
http://qiita.com/tatsuhama/items/ca7b8e4dbe2fb5c687c0
参照
- 76.
> Gradle Pluginから実行
75
• あくまでも devicefarmUpload なので、呼び出しのみ
• 結果はコンソール上に示された URL を見に行く
- 77.
- 78.
> Gradle Pluginから実行
77
• 2016/02/28 時点で公式ガイドには、
classpath ‘com.amazonaws:aws-devicefarm-gradle-plugin:1.0’
を書くようアナウンスされている
http://docs.aws.amazon.com/devicefarm/latest/developerguide/a
ws-device-farm-gradle-plugin-setting-up.html
• ただし、1.0 では期待通り動かない…
https://github.com/awslabs/aws-device-farm-gradle-
plugin/issues/4
• 1.1 で改修されているので、少なくとも 1.1 を使いま
しょう!
• (中の人が今日聞いていることを期待してみる)
- 79.
- 80.
> Device Farmでの実行
79
• Web から実行
• Gradle Plugin から実行
• Jenkins から実行
- 81.
> Jenkins から実行
80
•Jenkins に AWS Device Farm Plugin を導入
• Jenkins のシステム設定
• accessKey / secretKey を追加
• Jenkins にジョブを作成&設定する
• 本体 apk、テスト apk の作成
• ビルド後の処理の処理に「Run Tests on AWS Device
Farm」を追加して、設定する
• ジョブを実行
• Jenkins 上から結果を確認
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
> 今後への期待
93
• 作ったプロジェクトが削除できない…
•Appium の Ruby サポート
• 現在は Java のみ
• フォーラム上では、サポート予定と書かれていた
• ジョブ開始までに時間がかかる(場合がある)
• Android のスクリーンショットの保存 or 収集ができ
ない(iOS は OK)
• フォーラムで多々報告がある
• テストを書かなくてもエミュレータのように、端末を
操作したい…
- 95.
- 96.
> まとめ
95
• DeviceFarm は端末の実機を時間借りできる
• モンキーテストも実行できるが、テストを記述した方
が効果的
• 実行は、Jenkins などで自動化しよう!
• 場所を選ばない働き方の味方
- 97.