Enviar pesquisa
Carregar
アプリの不具合を少なくするために
•
Transferir como PPTX, PDF
•
2 gostaram
•
9,830 visualizações
健一 辰濱
Seguir
Sansan×SONYアプリ勉強会 http://connpass.com/event/25411/
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 58
Baixar agora
Recomendados
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
yuki0211s
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
スマホアプリ自動テストサービス
スマホアプリ自動テストサービス
Koh Uehara
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化
健一 辰濱
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
Shingo Tamaki
Win7 * appium * androidで実機自動テストやってみた。
Win7 * appium * androidで実機自動テストやってみた。
Naoto Kishino
Recomendados
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
yuki0211s
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
スマホアプリ自動テストサービス
スマホアプリ自動テストサービス
Koh Uehara
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化
健一 辰濱
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
Shingo Tamaki
Win7 * appium * androidで実機自動テストやってみた。
Win7 * appium * androidで実機自動テストやってみた。
Naoto Kishino
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Koji Hasegawa
Rubyを使ったスマホアプリのUIテスト
Rubyを使ったスマホアプリのUIテスト
健一 辰濱
fastlane触ってみた
fastlane触ってみた
Shingo Tamaki
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
mirer
VRの入力デバイス #JAGVR
VRの入力デバイス #JAGVR
Koji Hasegawa
Appiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみる
Nozomi Ito
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
Koji Hasegawa
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Nozomi Ito
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
yumi_chappy
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Takeshi HASEGAWA
Selenium boot campの紹介
Selenium boot campの紹介
Nozomi Ito
Lt 20150711
Lt 20150711
Tomoyuki Obi
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
Yahoo!デベロッパーネットワーク
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
Koji Hasegawa
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
Nozomi Ito
Firebase Test Lab 無料枠を使ってみました。
Firebase Test Lab 無料枠を使ってみました。
cch-robo
ディープラーニングとAppiumでモバイルテスト自動化
ディープラーニングとAppiumでモバイルテスト自動化
Nozomi Ito
iOSアプリ開発でコンフリクトした話
iOSアプリ開発でコンフリクトした話
裕 四方
in in der 響應式編程
in in der 響應式編程
景隆 張
Mais conteúdo relacionado
Mais procurados
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Koji Hasegawa
Rubyを使ったスマホアプリのUIテスト
Rubyを使ったスマホアプリのUIテスト
健一 辰濱
fastlane触ってみた
fastlane触ってみた
Shingo Tamaki
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
mirer
VRの入力デバイス #JAGVR
VRの入力デバイス #JAGVR
Koji Hasegawa
Appiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみる
Nozomi Ito
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
Koji Hasegawa
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Nozomi Ito
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
yumi_chappy
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Takeshi HASEGAWA
Selenium boot campの紹介
Selenium boot campの紹介
Nozomi Ito
Lt 20150711
Lt 20150711
Tomoyuki Obi
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
Yahoo!デベロッパーネットワーク
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
Koji Hasegawa
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
Nozomi Ito
Firebase Test Lab 無料枠を使ってみました。
Firebase Test Lab 無料枠を使ってみました。
cch-robo
ディープラーニングとAppiumでモバイルテスト自動化
ディープラーニングとAppiumでモバイルテスト自動化
Nozomi Ito
Mais procurados
(20)
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Rubyを使ったスマホアプリのUIテスト
Rubyを使ったスマホアプリのUIテスト
fastlane触ってみた
fastlane触ってみた
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
VRの入力デバイス #JAGVR
VRの入力デバイス #JAGVR
Appiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみる
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Selenium boot campの紹介
Selenium boot campの紹介
Lt 20150711
Lt 20150711
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
Firebase Test Lab 無料枠を使ってみました。
Firebase Test Lab 無料枠を使ってみました。
ディープラーニングとAppiumでモバイルテスト自動化
ディープラーニングとAppiumでモバイルテスト自動化
Destaque
iOSアプリ開発でコンフリクトした話
iOSアプリ開発でコンフリクトした話
裕 四方
in in der 響應式編程
in in der 響應式編程
景隆 張
Interfacing BLE with android based device
Interfacing BLE with android based device
IEI GSC
Ble android
Ble android
kudo1048
Android & the Web of Things: Bluetooth Low Energy, Bluetooth 4.0, iBeacons, B...
Android & the Web of Things: Bluetooth Low Energy, Bluetooth 4.0, iBeacons, B...
EVRYTHNG
Connect your Android to the real world with Bluetooth Low Energy
Connect your Android to the real world with Bluetooth Low Energy
Gabor Paller
BTLE (Bluetooth Low Energy) and CoreBluetooth
BTLE (Bluetooth Low Energy) and CoreBluetooth
Zach Dennis
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Yukari Sakurai
Android Bluetooth Introduction
Android Bluetooth Introduction
Erin Yueh
Introduction to Bluetooth Low Energy
Introduction to Bluetooth Low Energy
yeokm1
RxSwiftのデータバインディングだけ
RxSwiftのデータバインディングだけ
Hironytic
Destaque
(11)
iOSアプリ開発でコンフリクトした話
iOSアプリ開発でコンフリクトした話
in in der 響應式編程
in in der 響應式編程
Interfacing BLE with android based device
Interfacing BLE with android based device
Ble android
Ble android
Android & the Web of Things: Bluetooth Low Energy, Bluetooth 4.0, iBeacons, B...
Android & the Web of Things: Bluetooth Low Energy, Bluetooth 4.0, iBeacons, B...
Connect your Android to the real world with Bluetooth Low Energy
Connect your Android to the real world with Bluetooth Low Energy
BTLE (Bluetooth Low Energy) and CoreBluetooth
BTLE (Bluetooth Low Energy) and CoreBluetooth
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Android Bluetooth Introduction
Android Bluetooth Introduction
Introduction to Bluetooth Low Energy
Introduction to Bluetooth Low Energy
RxSwiftのデータバインディングだけ
RxSwiftのデータバインディングだけ
Semelhante a アプリの不具合を少なくするために
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Android 開発, 運用時に使いたいライブラリやサービスの紹介
健一 辰濱
アプリ開発作業の効率改善
アプリ開発作業の効率改善
健一 辰濱
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
健一 辰濱
DroidKaigi_devicefarm
DroidKaigi_devicefarm
Shunsuke Maeda
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
デブサミ2014【13-E-3】クラウド時代の環境構築・デプロイ自動化戦略
デブサミ2014【13-E-3】クラウド時代の環境構築・デプロイ自動化戦略
Developers Summit
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Manabu Shimobe
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
NTT Resonant Technology Inc.
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
Kaz Aiso
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
OSC福岡 20111203
OSC福岡 20111203
Hiroshi Bunya
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
Study Group by SciencePark Corp.
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
Akihiro Kuwano
Session2:「グローバル化する情報処理」/伊藤敬彦
Session2:「グローバル化する情報処理」/伊藤敬彦
Preferred Networks
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Yoshihito Kuranuki
前任者から引き継いだ Eight Android アプリ内部の改善
前任者から引き継いだ Eight Android アプリ内部の改善
健一 辰濱
Semelhante a アプリの不具合を少なくするために
(20)
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Android 開発, 運用時に使いたいライブラリやサービスの紹介
アプリ開発作業の効率改善
アプリ開発作業の効率改善
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
DroidKaigi_devicefarm
DroidKaigi_devicefarm
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
デブサミ2014【13-E-3】クラウド時代の環境構築・デプロイ自動化戦略
デブサミ2014【13-E-3】クラウド時代の環境構築・デプロイ自動化戦略
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
OSC福岡 20111203
OSC福岡 20111203
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
Session2:「グローバル化する情報処理」/伊藤敬彦
Session2:「グローバル化する情報処理」/伊藤敬彦
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
前任者から引き継いだ Eight Android アプリ内部の改善
前任者から引き継いだ Eight Android アプリ内部の改善
Mais de 健一 辰濱
地方創生ワカモノ会合
地方創生ワカモノ会合
健一 辰濱
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 を適用させていく
健一 辰濱
Mais de 健一 辰濱
(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 を適用させていく
アプリの不具合を少なくするために
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
Baixar agora