Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Kenichi Tatsuhama
PPTX, PDF
9,842 views
アプリの不具合を少なくするために
Sansan×SONYアプリ勉強会 http://connpass.com/event/25411/
Software
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 58
2
/ 58
3
/ 58
4
/ 58
5
/ 58
6
/ 58
7
/ 58
8
/ 58
9
/ 58
10
/ 58
11
/ 58
12
/ 58
13
/ 58
14
/ 58
15
/ 58
16
/ 58
17
/ 58
18
/ 58
19
/ 58
20
/ 58
21
/ 58
22
/ 58
23
/ 58
24
/ 58
25
/ 58
26
/ 58
27
/ 58
28
/ 58
29
/ 58
30
/ 58
31
/ 58
32
/ 58
33
/ 58
34
/ 58
35
/ 58
36
/ 58
37
/ 58
38
/ 58
39
/ 58
40
/ 58
41
/ 58
42
/ 58
43
/ 58
44
/ 58
45
/ 58
46
/ 58
47
/ 58
48
/ 58
49
/ 58
50
/ 58
51
/ 58
52
/ 58
53
/ 58
54
/ 58
55
/ 58
56
/ 58
57
/ 58
58
/ 58
More Related Content
PPTX
Sansan における Android アプリ自動テスト導入事例
by
Kenichi Tatsuhama
PPTX
Device Farm を使ったスマホアプリの自動テスト
by
Kenichi Tatsuhama
PPTX
Appium を使って iOS / Android の UI テストを共通化
by
Kenichi Tatsuhama
PDF
iOSアプリ UIテスト自動化入門
by
Shingo Tamaki
PPTX
Robotium を使った UI テスト
by
Kenichi Tatsuhama
PPTX
Win7 * appium * androidで実機自動テストやってみた。
by
Naoto Kishino
PDF
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
by
yuki0211s
PDF
スマホアプリ自動テストサービス
by
Koh Uehara
Sansan における Android アプリ自動テスト導入事例
by
Kenichi Tatsuhama
Device Farm を使ったスマホアプリの自動テスト
by
Kenichi Tatsuhama
Appium を使って iOS / Android の UI テストを共通化
by
Kenichi Tatsuhama
iOSアプリ UIテスト自動化入門
by
Shingo Tamaki
Robotium を使った UI テスト
by
Kenichi Tatsuhama
Win7 * appium * androidで実機自動テストやってみた。
by
Naoto Kishino
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
by
yuki0211s
スマホアプリ自動テストサービス
by
Koh Uehara
What's hot
PPTX
STFとAppiumをもちいたAndroidアプリの自動テスト
by
Toshiyuki Hirata
PDF
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
by
Yahoo!デベロッパーネットワーク
PDF
Appiumのテスト結果レポートをsahaginで作ってみる
by
Nozomi Ito
PDF
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
by
Takeshi HASEGAWA
PDF
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
by
Nozomi Ito
PDF
Firebase Test Lab 無料枠を使ってみました。
by
cch-robo
PDF
Rubyを使ったスマホアプリのUIテスト
by
Kenichi Tatsuhama
PDF
ディープラーニングとAppiumでモバイルテスト自動化
by
Nozomi Ito
PPTX
Appiumを用いたwebブラウザ自動テスト
by
yumi_chappy
PPTX
Androidアプリ開発のテスト環境
by
Toshiyuki Hirata
PPTX
JaSST'16 Tokyo モバイルセッション
by
mirer
PDF
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
by
Koji Hasegawa
PDF
福井スマートフォンハッカソン Titanium Mobileの紹介
by
Mori Shingo
PDF
VRの入力デバイス #JAGVR
by
Koji Hasegawa
PDF
Lt 20150711
by
Tomoyuki Obi
PDF
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
by
Koji Hasegawa
PDF
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
by
Koji Hasegawa
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
PDF
Selenium boot campの紹介
by
Nozomi Ito
PDF
fastlane触ってみた
by
Shingo Tamaki
STFとAppiumをもちいたAndroidアプリの自動テスト
by
Toshiyuki Hirata
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
by
Yahoo!デベロッパーネットワーク
Appiumのテスト結果レポートをsahaginで作ってみる
by
Nozomi Ito
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
by
Takeshi HASEGAWA
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
by
Nozomi Ito
Firebase Test Lab 無料枠を使ってみました。
by
cch-robo
Rubyを使ったスマホアプリのUIテスト
by
Kenichi Tatsuhama
ディープラーニングとAppiumでモバイルテスト自動化
by
Nozomi Ito
Appiumを用いたwebブラウザ自動テスト
by
yumi_chappy
Androidアプリ開発のテスト環境
by
Toshiyuki Hirata
JaSST'16 Tokyo モバイルセッション
by
mirer
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
by
Koji Hasegawa
福井スマートフォンハッカソン Titanium Mobileの紹介
by
Mori Shingo
VRの入力デバイス #JAGVR
by
Koji Hasegawa
Lt 20150711
by
Tomoyuki Obi
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
by
Koji Hasegawa
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
by
Koji Hasegawa
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
Selenium boot campの紹介
by
Nozomi Ito
fastlane触ってみた
by
Shingo Tamaki
Viewers also liked
PDF
BTLE (Bluetooth Low Energy) and CoreBluetooth
by
Zach Dennis
PDF
Ble android
by
kudo1048
PPTX
Introduction to Bluetooth Low Energy
by
yeokm1
PPTX
Interfacing BLE with android based device
by
IEI GSC
PDF
RxSwiftのデータバインディングだけ
by
Hironytic
PPTX
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
by
removed_96f4639f4009e61a478bf38f188e8404
PDF
Android Bluetooth Introduction
by
Erin Yueh
PDF
Android & the Web of Things: Bluetooth Low Energy, Bluetooth 4.0, iBeacons, B...
by
EVRYTHNG
PDF
Connect your Android to the real world with Bluetooth Low Energy
by
Gabor Paller
PDF
in in der 響應式編程
by
景隆 張
PDF
iOSアプリ開発でコンフリクトした話
by
裕 四方
BTLE (Bluetooth Low Energy) and CoreBluetooth
by
Zach Dennis
Ble android
by
kudo1048
Introduction to Bluetooth Low Energy
by
yeokm1
Interfacing BLE with android based device
by
IEI GSC
RxSwiftのデータバインディングだけ
by
Hironytic
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
by
removed_96f4639f4009e61a478bf38f188e8404
Android Bluetooth Introduction
by
Erin Yueh
Android & the Web of Things: Bluetooth Low Energy, Bluetooth 4.0, iBeacons, B...
by
EVRYTHNG
Connect your Android to the real world with Bluetooth Low Energy
by
Gabor Paller
in in der 響應式編程
by
景隆 張
iOSアプリ開発でコンフリクトした話
by
裕 四方
Similar to アプリの不具合を少なくするために
PPTX
アプリ開発作業の効率改善
by
Kenichi Tatsuhama
PDF
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
by
Yahoo!デベロッパーネットワーク
PPTX
Robotium を使った UI テストとレイアウト確認の効率化
by
Kenichi Tatsuhama
PDF
アプリリリース後に後悔しないための20のこと
by
leverages_event
PDF
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
by
Yahoo!デベロッパーネットワーク
PDF
ABC2011w_テスト部
by
miyatay
PDF
Unit test in android
by
Tatsuya Maki
PPTX
Android 開発, 運用時に使いたいライブラリやサービスの紹介
by
Kenichi Tatsuhama
PPTX
前任者から引き継いだ Eight Android アプリ内部の改善
by
Kenichi Tatsuhama
KEY
Androidリリース作業の効率化(2)
by
Kenichi Kambara
KEY
テスト初心者Androiderのためのソフトウェアテスト入門
by
Satoshi Watanabe
PDF
はてなにおける Android アプリのソフトウェアテスト
by
Yu Nobuoka
PDF
smartphone test (know how & tools)
by
Yukio Andoh
PDF
Android4.2徹底解剖!
by
leverages_event
PDF
111008 silverlight square_datavalidation
by
Takayoshi Tanaka
PDF
テストがあればなんとかなる〜効率化までの道程〜
by
Takao Sumitomo
PDF
ScalaでAndroidアプリ開発
by
papamitra
PDF
Outsmarting Smartphone Apps 2
by
Takahiro Yoshimura
PDF
ABC
by
Yumi Miyata
PDF
ABC 2011 Summer
by
miyatay
アプリ開発作業の効率改善
by
Kenichi Tatsuhama
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
by
Yahoo!デベロッパーネットワーク
Robotium を使った UI テストとレイアウト確認の効率化
by
Kenichi Tatsuhama
アプリリリース後に後悔しないための20のこと
by
leverages_event
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
by
Yahoo!デベロッパーネットワーク
ABC2011w_テスト部
by
miyatay
Unit test in android
by
Tatsuya Maki
Android 開発, 運用時に使いたいライブラリやサービスの紹介
by
Kenichi Tatsuhama
前任者から引き継いだ Eight Android アプリ内部の改善
by
Kenichi Tatsuhama
Androidリリース作業の効率化(2)
by
Kenichi Kambara
テスト初心者Androiderのためのソフトウェアテスト入門
by
Satoshi Watanabe
はてなにおける Android アプリのソフトウェアテスト
by
Yu Nobuoka
smartphone test (know how & tools)
by
Yukio Andoh
Android4.2徹底解剖!
by
leverages_event
111008 silverlight square_datavalidation
by
Takayoshi Tanaka
テストがあればなんとかなる〜効率化までの道程〜
by
Takao Sumitomo
ScalaでAndroidアプリ開発
by
papamitra
Outsmarting Smartphone Apps 2
by
Takahiro Yoshimura
ABC
by
Yumi Miyata
ABC 2011 Summer
by
miyatay
More from Kenichi Tatsuhama
PDF
Firebase & BigQuery で Android アプリの成⻑を支える
by
Kenichi Tatsuhama
PPTX
インドのインターネット環境との戦い方
by
Kenichi Tatsuhama
PPTX
インドの低速なネットワーク環境の攻略法
by
Kenichi Tatsuhama
PDF
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
by
Kenichi Tatsuhama
PDF
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
by
Kenichi Tatsuhama
PPTX
DroidKaigi アプリの内部を見る
by
Kenichi Tatsuhama
PDF
Google Analytics のデータ分析ハンズオン
by
Kenichi Tatsuhama
PPTX
Cloud Firestore を使って、Polling をやめたい話
by
Kenichi Tatsuhama
PDF
Firebase Extensions はじめの一歩
by
Kenichi Tatsuhama
PDF
知っておきたいFirebase の色んな上限について
by
Kenichi Tatsuhama
PDF
Android 開発の昔と今
by
Kenichi Tatsuhama
PPTX
CFP(Call For Paper)を出す話
by
Kenichi Tatsuhama
PPTX
Firebase Summit 2019 Recap
by
Kenichi Tatsuhama
PPTX
Firebase hands on in Matsuyama
by
Kenichi Tatsuhama
PPTX
GDG DevFest Tokyo 2019 Day2 Special Hands-on
by
Kenichi Tatsuhama
PPTX
参加したセッションのピックアップ
by
Kenichi Tatsuhama
PPTX
DroidKaigi 2018 参加報告会
by
Kenichi Tatsuhama
PPTX
DroidKaigi 2018 参加報告会 Closing
by
Kenichi Tatsuhama
PDF
地方創生ワカモノ会合
by
Kenichi Tatsuhama
PPTX
企業スポンサー
by
Kenichi Tatsuhama
Firebase & BigQuery で Android アプリの成⻑を支える
by
Kenichi Tatsuhama
インドのインターネット環境との戦い方
by
Kenichi Tatsuhama
インドの低速なネットワーク環境の攻略法
by
Kenichi Tatsuhama
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
by
Kenichi Tatsuhama
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
by
Kenichi Tatsuhama
DroidKaigi アプリの内部を見る
by
Kenichi Tatsuhama
Google Analytics のデータ分析ハンズオン
by
Kenichi Tatsuhama
Cloud Firestore を使って、Polling をやめたい話
by
Kenichi Tatsuhama
Firebase Extensions はじめの一歩
by
Kenichi Tatsuhama
知っておきたいFirebase の色んな上限について
by
Kenichi Tatsuhama
Android 開発の昔と今
by
Kenichi Tatsuhama
CFP(Call For Paper)を出す話
by
Kenichi Tatsuhama
Firebase Summit 2019 Recap
by
Kenichi Tatsuhama
Firebase hands on in Matsuyama
by
Kenichi Tatsuhama
GDG DevFest Tokyo 2019 Day2 Special Hands-on
by
Kenichi Tatsuhama
参加したセッションのピックアップ
by
Kenichi Tatsuhama
DroidKaigi 2018 参加報告会
by
Kenichi Tatsuhama
DroidKaigi 2018 参加報告会 Closing
by
Kenichi Tatsuhama
地方創生ワカモノ会合
by
Kenichi Tatsuhama
企業スポンサー
by
Kenichi Tatsuhama
アプリの不具合を少なくするために
1.
アプリの不具合を少なくするために 2016/02/16 Sansan×SONYアプリ勉強会 Sansan株式会社 辰濱健一
2.
Copyright © 2014
Sansan, Inc. All rights reserved. > Agenda 1 • 自己紹介 • Sansanアプリについて • 不具合を少なくするために • 導入ツール • 手動でのテスト • 自動テスト • まとめ
3.
Copyright © 2014
Sansan, Inc. All rights reserved. 2 自己紹介
4.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自己紹介 3 • 辰濱健一 • https://www.facebook.com/kenichi.tatsuhama • http://www.slideshare.net/kenichitatsuhama • 徳島県生まれ、徳島県勤務 • Tokushima.app というスマホアプリ勉強会を主催 • 趣味は音楽&旅行
5.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自己紹介 4 • 業務経歴 • 1社目@徳島市 • Java, C++, MFC • UWSC を使った Windows アプリの UI 自動テストの導入 • 性能改善チームにて、自動性能計測ツールを作成 • 2社目@徳島市 • iOS(Objective-C), Android(Java), Windows(C#)の スマホ&タブレット向けアプリ開発 • 機能担当制、iOS で作った機能は作った人が他 OS に移植 • 3社目@徳島県神山町 • スマホアプリの自動テスト • リモートワーク 開発& 品質担保と自動テスト モバイル開発 モバイル開発での 品質担保と 自動テスト
6.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自己紹介 5 • Sansan神山ラボ(勤務先)
7.
Copyright © 2014
Sansan, Inc. All rights reserved. 6 Sansan アプリについて
8.
Copyright © 2014
Sansan, Inc. All rights reserved. > Sansan アプリについて 7 • 法人向け名刺管理サービスのクライアントアプリ • 社員の名刺を検索・閲覧でき、社内の人脈を共有
9.
Copyright © 2014
Sansan, Inc. All rights reserved. > Sansan アプリについて 8 • iOS / Android ほぼ同一仕様、ネイティブ実装 • 安価な機能制限版(海外向け)もワンバイナリで実現 • アプリ内でモードによる分岐多々… • 海外向けには色んな施策を試すべく、スピーディーに対 応する必要がある • 日本語/英語に対応 • 名刺データ(個人情報)を扱っているので、 アプリの品質が悪いと、サービスだけでなく 会社の信用失墜に繋がる
10.
Copyright © 2014
Sansan, Inc. All rights reserved. > Sansan Android アプリについて 9 • 辰濱の入社前までは外注していた • 辰濱の入社後も、早期リリースに迫られ外注さんの コードベースで不具合修正&機能追加を余儀なくされ る • 直近まで、事業部内で Android エンジニアが1人だっ たので事業要求に応えるだけで精一杯 (現在は2名体制) • スピード感と品質が求められる
11.
Copyright © 2014
Sansan, Inc. All rights reserved. 10 不具合を少なくするために
12.
Copyright © 2014
Sansan, Inc. All rights reserved. > 不具合を少なくするために 11 • 導入ツール • 手動でのテスト • 自動でのテスト
13.
Copyright © 2014
Sansan, Inc. All rights reserved. 12 不具合を少なくするために 〜 導入ツール 〜
14.
Copyright © 2014
Sansan, Inc. All rights reserved. > 導入ツール 13 • Lint • Android Studio Inspect Code • Support Annotations • Crashlytics • Infer(Facebook) • QARK(LinkedIn)
15.
Copyright © 2014
Sansan, Inc. All rights reserved. > Lint 14 • http://developer.android.com/intl/ja/tools/help/li nt.html • Android SDK tools に含まれている静的コード解析 ツール • ./gradlew lint で実行 • 指摘内容 • UnuserdResources(未使用リソース) • UselessParent(View の不要なネスト) • HardcodedText(国際化非対応) など…
16.
Copyright © 2014
Sansan, Inc. All rights reserved. > Lint 15 未使用文言 Notification icon の visual style
17.
Copyright © 2014
Sansan, Inc. All rights reserved. > Android Studio Inspect Code 16 • Android Studio から実行できる静的コード解析 • Analyze > Inspect Code で実行 • 指摘内容 • Deprecated API use (非推奨 API の利用) • Field can be local (変数のスコープの指摘) • Javadoc issues (Javadoc コメントと実体の乖離) • Declaration can have final modifier(final にできる) • Spelling (スペルミス) • Actual method parameter is the same constant (同じ値しか渡ってこない) など…
18.
Copyright © 2014
Sansan, Inc. All rights reserved. > Android Studio Inspect Code 17 Android Studio 上でレポートを確認できる 自動補正もサポート!
19.
Copyright © 2014
Sansan, Inc. All rights reserved. > Support Annotations 18 • http://tools.android.com/tech-docs/support- annotations • アノテーションを使って、パラメータの nonnull / nullable や値範囲を宣言できる • Android Studio 上で警告してくれる
20.
Copyright © 2014
Sansan, Inc. All rights reserved. > Crashlytics 19 • https://try.crashlytics.com/ • クラッシュレポート収集&分析ツール • ダッシュボードで、クラッシュの詳細を見ることがで きる • 時刻、端末情報、アプリバージョン、発生箇所、頻度… • ProGuard をかけた apk でも、元のクラス名・関数名・ 行数で確認できるのは嬉しい
21.
Copyright © 2014
Sansan, Inc. All rights reserved. > Crashlytics 20
22.
Copyright © 2014
Sansan, Inc. All rights reserved. > Infer 21 • http://fbinfer.com/ • Facebook 製、静的コード解析ツール • 指摘内容 • CONTEXT_LEAK • NULL_DEREFERENCE • RESOURCE_LEAK • 結果は CSV, Json で出力される • Android Studio Inspect Code での内容と重複するとこ ろもあるが、Inspect Code にない指摘もある
23.
Copyright © 2014
Sansan, Inc. All rights reserved. > QARK 22 • https://github.com/linkedin/qark • LinkedIn 製、セキュリティチェックツール • 指摘内容 • export されたコンポーネント • WebView の設定 • Intent のセキュリティ • 弱い暗号方式の利用 など… • 結果は html で出力される
24.
Copyright © 2014
Sansan, Inc. All rights reserved. 23 不具合を少なくするために 〜 手動でのテスト 〜
25.
Copyright © 2014
Sansan, Inc. All rights reserved. > 手動でのテストの観点 24 • アクティビティを保持しない • さまざまな通信環境 • iOS 版や Web 版との比較 • 社内β版の配布 • リグレッションテスト
26.
Copyright © 2014
Sansan, Inc. All rights reserved. > 手動でのテストの観点 25 • アクティビティを保持しない • さまざまな通信環境 • iOS 版や Web 版との比較 • 社内β版の配布 • リグレッションテスト
27.
Copyright © 2014
Sansan, Inc. All rights reserved. > アクティビティを保持しない 26 • 開発者向けオプションで設定 • この時に、 • 正しく画面遷移(行き来)できるか • 最小化 → 復帰後の状態は適切か • 各種変数の値 • 表示中のダイアログやメッセージが、 復帰後も正しく動作するか? • これにより以下の確認になる • on(Save/Restore)InstanceState 対応 • 適切な Fragment の扱い方
28.
Copyright © 2014
Sansan, Inc. All rights reserved. > 【コラム】適切な Fragment の扱い方 27 • デフォルトコンストラクタを使っているか? • 外から渡したい値は、Bundle で渡しているか?
29.
Copyright © 2014
Sansan, Inc. All rights reserved. > 【コラム】適切な Fragment の扱い方 28 • setListener などしていないか? • フラグメント再構築時に、setter は呼ばれない! • ※onCreate は呼ばれます • DialogFragment に setListener してると、再構築時に Listener が set されず、意図した Listener の呼び出し が行われない • 詳しくは「Master of Fragment」を! http://tatsu-zine.com/books/master-of-fragments
30.
Copyright © 2014
Sansan, Inc. All rights reserved. > 手動でのテストの観点 29 • アクティビティを保持しない • さまざまな通信環境 • iOS 版や Web 版との比較 • 社内β版の配布 • リグレッションテスト
31.
Copyright © 2014
Sansan, Inc. All rights reserved. > さまざまな通信環境 30 • 安定した通信環境 (当然なので解説省略) • 機内モードの時 • 通信が遅いとき • Wi-Fi に繋がっているが、インターネットに繋がって いない場合
32.
Copyright © 2014
Sansan, Inc. All rights reserved. > 機内モードの時 31 • 端末で予め判定できる (ConnectivityManager) • 事前のエラー表示ができているか? (そもそも画面遷移させないなど) • 通信処理を行った場合、エラーハンドリングできてい るか? • キャッシュで表示できるモノだけでも表示する? • 送信処理を受け付け、オンラインになったら送信? (Facebook などはオフライン投稿機能がある)
33.
Copyright © 2014
Sansan, Inc. All rights reserved. > 通信が遅いとき 32 • 再現方法は色々 • 通信ライブラリと interceptor で可能かも? • 低速 SIM • Android エミュレータの設定 など… • UX は適切か? (ぐるぐる表示、進捗表示) • 最小化や画面遷移後のコールバック処理は大丈夫か? • Fragment#isAdded() で Activity に attach されているかチェック • ViewPager 内の破棄された Fragment へのコールバックは忘れがち • 可能であれば、前画面用の通信はキャンセル or 優先度を下げたい
34.
Copyright © 2014
Sansan, Inc. All rights reserved. > Wi-Fi にはつながってるが、ネットにつながってない 33 • 基本的には、前項の項目と同じ • ※端末側での判定は難しい • ただ、サーバからのレスポンスが帰ってこないので、 タイムアウトのエラーハンドリングが必要 • タイムアウトまで通信スレッドを占有するので、通信 キューが山積みになったり、いくつものスレッドを走 らせすぎる懸念
35.
Copyright © 2014
Sansan, Inc. All rights reserved. > 手動でのテストの観点 34 • アクティビティを保持しない • さまざまな通信環境 • iOS 版や Web 版との比較 • 社内β版の配布 • リグレッションテスト
36.
Copyright © 2014
Sansan, Inc. All rights reserved. > iOS 版や Web 版との比較 35 • 同じ操作をしたり、同じデータを表示させて見比べる • よくある差違 • 数値や日付の表示形式 • データのソート順 • 長い文字列の対応(末尾…、折り返し、スクロール)
37.
Copyright © 2014
Sansan, Inc. All rights reserved. > iOS 版や Web 版との比較 36 桁区切りの有無 数値の違い
38.
Copyright © 2014
Sansan, Inc. All rights reserved. > 手動でのテストの観点 37 • アクティビティを保持しない • さまざまな通信環境 • iOS 版や Web 版との比較 • 社内β版の配布 • リグレッションテスト
39.
Copyright © 2014
Sansan, Inc. All rights reserved. > 社内β版の配布 38 • 社内ヘビーユーザにリリース前に配布 • 実データならではの問題が出る可能性がある • 開発中に使っていない端末でも問題なく動作するか? • なかなか気づかない操作の癖 • バックキー使い? ナビゲーションで戻る? • キーボードの虫眼鏡ボタンで検索? • 2点タップどっちから離すか • A+B:A押下 → B押下 → どっちから離す?? • ↑前々職でどっちから離すかで再現が別れる問題があった
40.
Copyright © 2014
Sansan, Inc. All rights reserved. > 手動でのテストの観点 39 • アクティビティを保持しない • さまざまな通信環境 • iOS 版や Web 版との比較 • 社内β版の配布 • リグレッションテスト
41.
Copyright © 2014
Sansan, Inc. All rights reserved. > リグレッションテスト 40 • リリース直前に必ず実施 • 主要機能のデグレードがないことを確認 • やる) • 主要機能のワンパス • ログイン、名刺登録、編集、削除、ログアウト など • 過去の重大な不具合が再現しないこと • やらない) • 100文字制限のところに101文字入れたときのエラー • アプリにサーバリリース前にも行っている
42.
Copyright © 2014
Sansan, Inc. All rights reserved. 41 不具合を少なくするために 〜 自動テスト 〜
43.
Copyright © 2014
Sansan, Inc. All rights reserved. > Robotium を使った自動テスト 42 • ユニットテストではカバーしきれない UI 操作を伴うテストを記述 • Robotium はアプリケーション内部オブジェクトを参 照できるため、柔軟なテストが記述できる • DB のデータを参照して、ListView に表示されているか • SharedPreference の値が意図通りかの確認 • ただし、デバッグ版でしか動作しない (リリースバイナリでのテストは Appium を使う)
44.
Copyright © 2014
Sansan, Inc. All rights reserved. > テストコードの例 43 - ログイン処理 - メールアドレス入力欄を取得 - パスワード入力欄を取得 - メールアドレスを入力 - パスワードを入力 - ログインボタンを押す テストライブラリをラッ プして可読性確保!
45.
Copyright © 2014
Sansan, Inc. All rights reserved. > デモ動画 44 • 2014/11 時点の動画です • http://youtu.be/scY_RPgfxeY • 4分ぐらいありますが、発表時間の都合上ちょっとだ け…
46.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自動テストの適用 45 • 前述のリグレッションテストには適用済み • 主要画面の詳細なテストも記述中 • エラーメッセージ • サインアップ時に送られるメールをパースして、サイン アップ処理を行う(MailCatcher API を利用) • Jacoco によるカバレッジ計測 • 2016/02時点で 59% をカバー • ※テストでコードが実行されているからといって、安心 ではない。
47.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自動テスト導入してみて 46 • デグレードがないことを容易に確認できる • メンテはそこまで大変じゃない • テストでしっかりカバーしていれば、大規模なリファ クタリングも安心! • これから、通信ライブラリ・カメラ API・デザインパーツの差し替 え・DB の置き換え?などが控えている • モックを使わないので、サーバの動作確認にもなる
48.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自動テストの詳細は 47 • DroidKaigi 2016 で! https://droidkaigi.github.io/2016/
49.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自動テストの詳細は 48 と、思ったのですが、 CFP 通らなかったので…
50.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自動テストの詳細は 49 • 2/20 DroidKaigi 2016 Reject Conf で! http://connpass.com/event/24264/
51.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自動テストの詳細は 50 • 3/23 Android Testing Bootcamp #1 でも!? http://connpass.com/event/26911/ ※抽選がまだ
52.
Copyright © 2014
Sansan, Inc. All rights reserved. > 調査中の Device Farm の内容ですが… 51 • 3/12 JAWS DAYS 2016 でも! http://jawsdays2016.jaws-ug.jp/speaker/409 http://jawsdays2016.jaws-ug.jp/
53.
Copyright © 2014
Sansan, Inc. All rights reserved. 52 効果
54.
Copyright © 2014
Sansan, Inc. All rights reserved. > 効果 53 • iOS / Android とも、前任者のコードベースの事情を 十分にカバーする品質担保ができている。 • 開発部内でサービスインシデントは 数十件/年 あるが、アプリ においては 0件/年 と部内トップレベル • 新しい OS や端末が出た場合のテストも容易 • テスト工数の削減 • コードレビュー時にこれらの観点でも見るので、チー ムメンバーの品質意識・対応の底上げになる
55.
Copyright © 2014
Sansan, Inc. All rights reserved. 54 まとめ
56.
Copyright © 2014
Sansan, Inc. All rights reserved. > まとめ 55 • 使えるツールは使おう! • 色んな環境でテストしよう! • テストの自動化に取り組もう!
57.
Copyright © 2014
Sansan, Inc. All rights reserved. 56 質疑応答
58.
Copyright © 2014
Sansan, Inc. All rights reserved. > こちらもどうぞ 57 • Android アプリ品質ガイドライン【 Google Developers Japan 】 • http://googledevjp.blogspot.jp/2013/01/core.html • Robotium を使った UI テストとレイアウト確認の効率化 • http://www.slideshare.net/kenichitatsuhama/robotium-ui • Appium を使って iOS / Android の UI テストを共通化 • http://www.slideshare.net/kenichitatsuhama/appium-ios-android-ui • UWSC を使った自動テスト(for Windows) • http://qiita.com/tatsuhama/items/d6595050a13c5ed2de48 • Robotium で書いた Android アプリのテストを AWS Device Farm で実行する • http://qiita.com/tatsuhama/items/27d5e3ef1056e740b085
Download