SlideShare a Scribd company logo
Robotium を使った UI テスト
とレイアウト確認の効率化
2015/02/28
最新事例から学ぶ!モバイル向けテスト手法勉強会
Sansan株式会社 辰濱健一
form 徳島サテライト会場(リモート発表)
Agenda
 自己紹介
 Robotium で UI 自動テスト
 デモ
 Robotium でレイアウト確認効率化
 【おまけ】 これからやりたいこと(実験中の内容)
自己紹介
 Sansan 株式会社 Sansan 開発部所属
 神山ラボ勤務 (徳島現地採用)
 アプリチームリーダー (メンバーは東京)
 Android 版 Sansan アプリ実装担当
 趣味
 音楽
 トランペット … 徳島の吹奏楽団で週末に吹いています
 エレクトーン … 3歳から始め今も現役
 旅行
 黒部立山アルペンルートがお気に入りスポット
 小笠原諸島が最近気になっている
テストの自動化との関わり
 前々職で、正確さとパフォーマンスが求められる表計算ソフトの
UIテストの自動化&高速化を担当
 高速化したは良いが、影響はないか?
 本当に速度は速くなったか?
 他者の修正でまた遅くなっていないか?
 表示結果は期待通りか?
 CPPUnit で見切れない UI の動作は OK か?
などを日々計測・監視するツールを作成
 前職では、Android, iOS, Windows8(C#)のスマホ・タブレット向け
アプリ開発に従事
 前々職&前職のスキルを活かし、
スマホアプリでUIテストの自動化!
Sansan神山ラボ
 築70年の木造古民家(3棟)
 略歴
 2010年設置
 〜2013/11:合宿所
 2013/11〜:常駐メンバーのいる開発拠点に
 家具家電あり、畑付き、風呂トイレセパレート
 家賃:数万円 / 月
 インターネット接続:あり
 最寄り(道の)駅:「温泉の里神山」徒歩15分
 改装OK物件
神山での開発(良いこと)
 静かで広々していて、高いパフォーマンスの状態で仕事に
集中できる
 Github や Skype などのツールの利活用で、実務における
チーム内コミュニケーションは意外と何とかなっている
神山での開発(難点)
 ネットワーク状態にコミュニケーションが左右される
 開発チーム外の人に直接話しかけられない
 視察・取材など開発以外の業務も伴う
 自然環境との戦い(虫、カビ、寒さ、…)
端末操作を自動化するライブラリ
 Android専用
 Robotium
 monkeyrunner
 Espresso
 など…
 iOS専用
 KIF
 Kiwi
 など…
 ハイブリッド
 Appium
 Calabash
 MonkeyTALK
 など…
なぜ Robotium?
 メリット
 数年前に調査して慣れていた
 Android 実装と同じ Java 言語で記述
 アプリケーション内部のオブジェクトが参照できる
 細かいところまで手が届く
 テストケースや期待値の動的生成ができる
 デメリット
 リリースビルドでは使えない
→ 別途 Appium を調査中
http://www.slideshare.net/kenichitatsuhama/rubyui
UI自動テスト実装ポリシー
 浅く広くから!
 あきらめも大事
 ライブラリ関数を直接叩かず、ラップして抽象化する
 極力 SLEEP は使わない。wait* 関数で!
 ローカライズ対応
ポリシー:浅く広くから!
 主要画面に遷移し、基本機能1パスだけの確認
 いわゆる、リグレッションテスト
 主要機能のデグレードを早期検出することが目的
 1,000 文字制限の所に 1,001 文字入れたときにエラーが
出るかでないかは、ここではどうでもいい
(※これは、狭く深いフルテストでやろう)
 運用例
 テストレベルを設定して、このテストをスモークテストにする
 【スモークテスト】:最初の簡易テスト
 スモークテストはコミット毎に実行
 フルテストは深夜に実行
ポリシー:あきらめる
 メールに表示されている URL をクリックして…
 メールアプリ起動して操作??
 アプリを終了させて再起動したときに…
 どうやってアプリを起動する??
 通信が途中で切れたときの動作
 etc…
頑張ればできるかもしれない。。。
(Appiumなどのシステムテスト)
でも、調査に時間が掛かりそうであれば、手動で確認しよう!
ポリシー:ライブラリ関数のラップ
 テストコードの可読性を上げ、手順書代わりにしたい!
 将来テストライブラリを変更する(かもしれない)場合に備え、
ライブラリとテストコードの結合度を下げておく
 ライブラリにない拡張機能を仕込みやすい
 実行時ログ
 エラーログ
 テスト失敗時にスクリーンショットを残しておくのはオススメ!
ポリシー:極力SLEEPは使わない
 つい使ってしまいがち…
 でも、実行環境によって必要な SLEEP 時間は違う
 → wait* 関数を使おう (作ろう!)
 ライブラリ関数の例
 waitForActivity
 waitForFragmentByTag
 waitForLogMessage
 自作例
 waitHideProgress // ぐるぐるが消えるまで待つ
 自作関数や、ライブラリのラッパー関数内でSLEEPを使う
のはアリと考えます。
自作 waitHideProgress
 アプリ内の Activity基底クラス に「ぐるぐる」表示中かどうかの関数を追
加
 一定時間毎に↑の状態をチェックする
ポリシー:ローカライズ対応
 端末の言語設定によらず同じ結果になるように!
 ×:clickOnText(“送信”);
 ○:clickOnText(R.string.send);
 言語環境によって動作が違う場所はテストコードも切り分けよう
 If (isJapan) {
// 日本語のときの動作確認
}else {
//
}
 実機でも、エミュレータでも問題なく通るように
 エミュレータでカメラがなければ、カメラ系のテストはスキップする。
Sansan アプリ
リグレッションテスト項目(抜粋)
 Sansan アプリ とは…?
 「スマホで社内の名刺を一括管理」
 ざっくり言うと、Eight 法人版のイメージ
 同僚が持っている名刺も
閲覧・検索できる機能がある
 リグレッションテスト項目
 ログインできること
 同僚一覧で自分をタップすると、自分の名刺一覧が開くこと
 名刺一覧の名刺をタップすると、名刺詳細画面が開くこと
 など…
サンプルコード(Android)
 ログイン処理
 メールアドレス入力欄を取得
 パスワード入力欄を取得
 メールアドレスを入力
 パスワードを入力
 ログインボタンを押す
ラップしてるから読みやすい!
リグレッションテストのデモ
 2014/11 時点の動画です
 http://youtu.be/scY_RPgfxeY
 4分ぐらいありますが、発表時間の都合上ちょっとだけ…
UI自動テストを導入してみた効果
 デグレードの早期発見・防止につながった
 実際に開発中のミスを検出し、デグレードを未然に防いだ
 開発サーバの異常を検出した
 大規模な修正も行いやすくなった
 何度でもテストを簡単に実行できる
 作業効率UP
 離席中・昼食中・ミーティング中にでもテストができる
 テストに割く時間を開発に充てることができる
 新しい OS が出てもテスト工数を割かなくて良い
とはいっても…
 リリース前の本番バイナリは手作業でテストしています。
(機械を過信しない。目で確認すると安心)
 色んな施策で、画面遷移の動線が変わるとテストコードのメンテが大変
 前提条件(この画面にいること)の造り出しに工夫が必要
 setUp() でログイン、tearDown() でサインアウト など
 導入に当たっては、
 費用対効果の高いところから
 仕様変更がなさそうな基本機能
 直近リファクタリングしたい箇所
など、から着手するのが良いと感じています。
(後述のスクリーンショット収集は自動化テスト入門として最適かも…)
スクリーンショット
 テスト実行中に必要に応じて撮影している
 → レイアウト確認に利活用できる!
Robotium で
レイアウト確認効率化
スクリーンショットの活用
 Robotium でスクリーンショットを撮る
 画面遷移してスクショを撮るだけのテストケースを作成&実行
 このテストケースを言語設定を動的に切り替えて実行
 スクショを端末名フォルダに集める
 一覧View を作る(ツールを Ruby で作った)
 結果確認は目視!
 機械的には完全一致は容易だけど、正当な差分と意図しない
差分をプログラムで認識するのは至難の業
テストコード(抜粋)
スクリーンショットの活用の全体像
デザイン指示画像スクリーンショット
html 生成ツール
スクリーンショット
スクショ一覧のhtml
画面名→
画面名→
画面名→
Nexus4 Nexus5 デザイン指示画像(期待値)
各画像をクリックすると、
原寸大で表示される
※元サイズが違うけど、
今は同じサイズで
表示されている
目で比較する!
デザイナにはこの
html を含む zip を
提供するだけ。
スクショ一覧の効果
 デザイナーに apk 作って提供
↓
色んな動作確認端末にもインストール
↓
手で操作して、その画面に遷移して動作確認
↓
フィードバック&修正
 ↑を何度もする必要はなくなり、
開発者&デザイナー双方に効率化をもたらした!
(最終的には apk を渡して実機で見てもらいます)
 Robotium は画面遷移とスクショ撮影しかしていないので、
iOS や 他プロダクトでのこのツールの使い回しが可能!
これからやりたいこと
Robotium に限らず、アプリ開発テストで…
 テスト実行ごとにもっと色んなデータを収集・集積・分析していく
 処理時間の推移
 ClientAPI の呼び出し回数
 メモリ使用量のモニタリング
 ※計画段階で、まだまだ検証段階です
処理時間(推移)
 パフォーマンス改善の結果確認、性能デグレの検出ができ
るかも?
 通信状態やサーバ状態に大きく左右される気がする…
0
2
4
6
8
10
12
ログイン処理
初回同期
名刺画像送信
詳細データ取得
高画質画像データ取得
手動同期処理
ClientAPI の呼び出し分析(1回)
 呼び出し毎に API名と実行時間を csv ファイルに出力
 Excel のピボットテーブルで集計
 iOS / Android で同じ仕組みを入れれば、
同じ操作で API 呼び出しの違いがわかる!
そんなに呼び
出す必要ある
の…?
サーバ負荷削減のためのボトルネック分析が容易になる
Excelマクロ
ClientAPI の呼び出し分析(推移)
 さっきのデータを実行毎に集計する
呼び出し回数削減施策導入
メモリ使用量(1回)
 ユーザトラッキングイベント発生時にメモリ使用量を記録
→ どの操作以降メモリ使用量が急上昇するかわかる
0
10000
20000
30000
40000
50000
60000
[prelogin]Startup
apps
[prelogin]View
SplashtourSigninpage
[app]Startup
w
hile
Loggedin
[prelogin]Tap
Signin
bu
on
[prelogin]Com
plete
Signin
[app]StartSync
[app]Com
plete
Sync
[app]View
Rem
indFirstInvite
Dialog
[app]Tap
nexton
Rem
indFirstInvite
Dialog
[app]Open
InviteDialog
[app]View
Im
portContactDialog
[app]Tap
Send
on
InviteDialog
[app]View
InvitesuccessDialog
[app]Tap
Useascanneron
Scanm
enu
[app]Tap
M
yteam
on
Tabbar
[app]Tap
M
ycontacton
M
yteam
[app]Tap
Contacton
M
ycontact
[app]StartSync
[app]Com
plete
Sync
[app]Tap
Signouton
Accountse
ng
系列1
メモリ使用量(推移)
 GCがいつ起きるかまちまちで微妙かも…
アプリ開発チームの今期の取り組みに、
これらを盛り込んでいるので、
何ヶ月後かにはこれらが実現できてる見込みです。
アプリエンジニア募集中!
 対象:iOS or Android エンジニア
 勤務地:東京本社 or 神山ラボ

More Related Content

What's hot

Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
 
第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化
Koji Hasegawa
 
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendlyTatsuya Ishikawa
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
 
fastlane触ってみた
fastlane触ってみたfastlane触ってみた
fastlane触ってみた
Shingo Tamaki
 
ディープラーニングとAppiumでテストを自動化
ディープラーニングとAppiumでテストを自動化ディープラーニングとAppiumでテストを自動化
ディープラーニングとAppiumでテストを自動化
Nozomi Ito
 
もしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたらもしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたら
Nozomi Ito
 
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
Yahoo!デベロッパーネットワーク
 
VRの入力デバイス #JAGVR
VRの入力デバイス #JAGVRVRの入力デバイス #JAGVR
VRの入力デバイス #JAGVR
Koji Hasegawa
 
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
Kenji Fukumoto
 
.Netconf
.Netconf.Netconf
スマホアプリ自動テストサービス
スマホアプリ自動テストサービススマホアプリ自動テストサービス
スマホアプリ自動テストサービス
Koh Uehara
 
Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テストAppiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
yumi_chappy
 
Lt 20150711
Lt 20150711Lt 20150711
Lt 20150711
Tomoyuki Obi
 
Bindingからframework elementを見つける
Bindingからframework elementを見つけるBindingからframework elementを見つける
Bindingからframework elementを見つける
Tatsuya Ishikawa
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessary
Hiroshi Maekawa
 
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションJaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
mirer
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
 
20141018 selenium appium_cookpad
20141018 selenium appium_cookpad20141018 selenium appium_cookpad
20141018 selenium appium_cookpad
Kazuaki Matsuo
 

What's hot (20)

Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
 
第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化
 
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
fastlane触ってみた
fastlane触ってみたfastlane触ってみた
fastlane触ってみた
 
ディープラーニングとAppiumでテストを自動化
ディープラーニングとAppiumでテストを自動化ディープラーニングとAppiumでテストを自動化
ディープラーニングとAppiumでテストを自動化
 
もしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたらもしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたら
 
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
 
VRの入力デバイス #JAGVR
VRの入力デバイス #JAGVRVRの入力デバイス #JAGVR
VRの入力デバイス #JAGVR
 
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
 
.Netconf
.Netconf.Netconf
.Netconf
 
スマホアプリ自動テストサービス
スマホアプリ自動テストサービススマホアプリ自動テストサービス
スマホアプリ自動テストサービス
 
Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テストAppiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
 
Lt 20150711
Lt 20150711Lt 20150711
Lt 20150711
 
Bindingからframework elementを見つける
Bindingからframework elementを見つけるBindingからframework elementを見つける
Bindingからframework elementを見つける
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessary
 
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションJaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
 
XP祭り2013-LT-Codeer
XP祭り2013-LT-CodeerXP祭り2013-LT-Codeer
XP祭り2013-LT-Codeer
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
20141018 selenium appium_cookpad
20141018 selenium appium_cookpad20141018 selenium appium_cookpad
20141018 selenium appium_cookpad
 

Viewers also liked

テストの種類とBDD #33testing
テストの種類とBDD #33testingテストの種類とBDD #33testing
テストの種類とBDD #33testing
Koji Hasegawa
 
User Scenario based UI testing with KIF
User Scenario based UI testing with KIFUser Scenario based UI testing with KIF
User Scenario based UI testing with KIF
Yusuke Kita
 
Unity testtool
Unity testtoolUnity testtool
Unity testtool
大介 束田
 
Selenium, Appium, and Robots!
Selenium, Appium, and Robots!Selenium, Appium, and Robots!
Selenium, Appium, and Robots!
hugs
 
Java → Kotlin 変換 そのあとに。
Java → Kotlin 変換 そのあとに。Java → Kotlin 変換 そのあとに。
Java → Kotlin 変換 そのあとに。
健一 辰濱
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
 
『Incubate Camp 5th』のご案内
『Incubate Camp 5th』のご案内『Incubate Camp 5th』のご案内
『Incubate Camp 5th』のご案内Hiro Sasaki
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウKentarou Mukunasi
 
Androidで使えるモックフレームワーク
Androidで使えるモックフレームワークAndroidで使えるモックフレームワーク
Androidで使えるモックフレームワーク
Koji Hasegawa
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
Yoichiro Sakurai
 
iOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtipsiOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtips
今城 善矩
 
ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用
Fumiya Sakai
 
Fast deterministic screenshot tests for Android
Fast deterministic screenshot tests for AndroidFast deterministic screenshot tests for Android
Fast deterministic screenshot tests for Android
Arnold Noronha
 
Catchでお手軽にテストコード書いてみよう
Catchでお手軽にテストコード書いてみようCatchでお手軽にテストコード書いてみよう
Catchでお手軽にテストコード書いてみよう
You&I
 
Jenkins + Deploygateを使った簡単ベータ配信
Jenkins + Deploygateを使った簡単ベータ配信Jenkins + Deploygateを使った簡単ベータ配信
Jenkins + Deploygateを使った簡単ベータ配信
庸介 高橋
 
App extension for iOS
App extension for iOSApp extension for iOS
App extension for iOStoyship
 
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
Shinobu Okano
 
ローカル環境のテスト自動化【勉強会資料】
ローカル環境のテスト自動化【勉強会資料】ローカル環境のテスト自動化【勉強会資料】
ローカル環境のテスト自動化【勉強会資料】
株式会社キャッチアップ
 
BITRISEを使っています
BITRISEを使っていますBITRISEを使っています
BITRISEを使っています
Kazuaki KURIU
 
iOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotipsiOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotips
Yusuke Kita
 

Viewers also liked (20)

テストの種類とBDD #33testing
テストの種類とBDD #33testingテストの種類とBDD #33testing
テストの種類とBDD #33testing
 
User Scenario based UI testing with KIF
User Scenario based UI testing with KIFUser Scenario based UI testing with KIF
User Scenario based UI testing with KIF
 
Unity testtool
Unity testtoolUnity testtool
Unity testtool
 
Selenium, Appium, and Robots!
Selenium, Appium, and Robots!Selenium, Appium, and Robots!
Selenium, Appium, and Robots!
 
Java → Kotlin 変換 そのあとに。
Java → Kotlin 変換 そのあとに。Java → Kotlin 変換 そのあとに。
Java → Kotlin 変換 そのあとに。
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
 
『Incubate Camp 5th』のご案内
『Incubate Camp 5th』のご案内『Incubate Camp 5th』のご案内
『Incubate Camp 5th』のご案内
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 
Androidで使えるモックフレームワーク
Androidで使えるモックフレームワークAndroidで使えるモックフレームワーク
Androidで使えるモックフレームワーク
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
iOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtipsiOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtips
 
ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用
 
Fast deterministic screenshot tests for Android
Fast deterministic screenshot tests for AndroidFast deterministic screenshot tests for Android
Fast deterministic screenshot tests for Android
 
Catchでお手軽にテストコード書いてみよう
Catchでお手軽にテストコード書いてみようCatchでお手軽にテストコード書いてみよう
Catchでお手軽にテストコード書いてみよう
 
Jenkins + Deploygateを使った簡単ベータ配信
Jenkins + Deploygateを使った簡単ベータ配信Jenkins + Deploygateを使った簡単ベータ配信
Jenkins + Deploygateを使った簡単ベータ配信
 
App extension for iOS
App extension for iOSApp extension for iOS
App extension for iOS
 
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
 
ローカル環境のテスト自動化【勉強会資料】
ローカル環境のテスト自動化【勉強会資料】ローカル環境のテスト自動化【勉強会資料】
ローカル環境のテスト自動化【勉強会資料】
 
BITRISEを使っています
BITRISEを使っていますBITRISEを使っています
BITRISEを使っています
 
iOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotipsiOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotips
 

Similar to Robotium を使った UI テストとレイアウト確認の効率化

Android 開発を加速するオープンソースライブラリ
Android 開発を加速するオープンソースライブラリAndroid 開発を加速するオープンソースライブラリ
Android 開発を加速するオープンソースライブラリ
健一 辰濱
 
九州ソフトウェアテスト勉強会 Vol15
九州ソフトウェアテスト勉強会 Vol15九州ソフトウェアテスト勉強会 Vol15
九州ソフトウェアテスト勉強会 Vol15
Shinya Kinoshita
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
 
Archer
ArcherArcher
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Roy Kim
 
OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208学 松崎
 
ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治
Drecom Co., Ltd.
 
第4回瀬戸内ROS勉強会LT資料
第4回瀬戸内ROS勉強会LT資料第4回瀬戸内ROS勉強会LT資料
第4回瀬戸内ROS勉強会LT資料
NaotakaKawata
 
第0回徳島スマホアプリ開発勉強会
第0回徳島スマホアプリ開発勉強会第0回徳島スマホアプリ開発勉強会
第0回徳島スマホアプリ開発勉強会
健一 辰濱
 
JMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使うJMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使う
隆行 神戸
 
アプリの不具合を少なくするために
アプリの不具合を少なくするためにアプリの不具合を少なくするために
アプリの不具合を少なくするために
健一 辰濱
 
UXから考えるスマホアプリ〜レシピアプリ構築事例〜
UXから考えるスマホアプリ〜レシピアプリ構築事例〜UXから考えるスマホアプリ〜レシピアプリ構築事例〜
UXから考えるスマホアプリ〜レシピアプリ構築事例〜
Mari Takahashi
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Shuji Watanabe
 
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
Naruhiko Ogasawara
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Atsushi Harada
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03Daiki Maekawa
 
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
Takehito Tanabe
 
これからのOpenShiftの話をしよう
これからのOpenShiftの話をしようこれからのOpenShiftの話をしよう
これからのOpenShiftの話をしよう
Kazuto Kusama
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_pattern
yusuke shibui
 
【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場
【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場
【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場
Kotaro Ogino
 

Similar to Robotium を使った UI テストとレイアウト確認の効率化 (20)

Android 開発を加速するオープンソースライブラリ
Android 開発を加速するオープンソースライブラリAndroid 開発を加速するオープンソースライブラリ
Android 開発を加速するオープンソースライブラリ
 
九州ソフトウェアテスト勉強会 Vol15
九州ソフトウェアテスト勉強会 Vol15九州ソフトウェアテスト勉強会 Vol15
九州ソフトウェアテスト勉強会 Vol15
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
Archer
ArcherArcher
Archer
 
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
 
OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208OSC福岡2012 LT 20121208
OSC福岡2012 LT 20121208
 
ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治
 
第4回瀬戸内ROS勉強会LT資料
第4回瀬戸内ROS勉強会LT資料第4回瀬戸内ROS勉強会LT資料
第4回瀬戸内ROS勉強会LT資料
 
第0回徳島スマホアプリ開発勉強会
第0回徳島スマホアプリ開発勉強会第0回徳島スマホアプリ開発勉強会
第0回徳島スマホアプリ開発勉強会
 
JMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使うJMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使う
 
アプリの不具合を少なくするために
アプリの不具合を少なくするためにアプリの不具合を少なくするために
アプリの不具合を少なくするために
 
UXから考えるスマホアプリ〜レシピアプリ構築事例〜
UXから考えるスマホアプリ〜レシピアプリ構築事例〜UXから考えるスマホアプリ〜レシピアプリ構築事例〜
UXから考えるスマホアプリ〜レシピアプリ構築事例〜
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
 
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.2(Amazon Simple Workflow Service編)
 
これからのOpenShiftの話をしよう
これからのOpenShiftの話をしようこれからのOpenShiftの話をしよう
これからのOpenShiftの話をしよう
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_pattern
 
【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場
【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場
【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場
 

More from 健一 辰濱

地方創生ワカモノ会合
地方創生ワカモノ会合地方創生ワカモノ会合
地方創生ワカモノ会合
健一 辰濱
 
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオンGoogle Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン
健一 辰濱
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
健一 辰濱
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
健一 辰濱
 
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今
健一 辰濱
 
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
健一 辰濱
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
健一 辰濱
 
GDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-onGDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-on
健一 辰濱
 
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap
健一 辰濱
 
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
健一 辰濱
 
Firebase hands on in Matsuyama
Firebase hands on in MatsuyamaFirebase hands on in Matsuyama
Firebase hands on in Matsuyama
健一 辰濱
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
健一 辰濱
 
インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法
健一 辰濱
 
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 ClosingDroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing
健一 辰濱
 
企業スポンサー
企業スポンサー企業スポンサー
企業スポンサー
健一 辰濱
 
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ
健一 辰濱
 
CFP(Call For Paper) を出す話
CFP(Call For Paper)を出す話CFP(Call For Paper)を出す話
CFP(Call For Paper) を出す話
健一 辰濱
 
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会
健一 辰濱
 
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
健一 辰濱
 
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていくJava で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく
健一 辰濱
 

More from 健一 辰濱 (20)

地方創生ワカモノ会合
地方創生ワカモノ会合地方創生ワカモノ会合
地方創生ワカモノ会合
 
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオンGoogle Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
 
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今
 
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
 
GDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-onGDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-on
 
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap
 
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
 
Firebase hands on in Matsuyama
Firebase hands on in MatsuyamaFirebase hands on in Matsuyama
Firebase hands on in Matsuyama
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
 
インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法
 
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 ClosingDroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing
 
企業スポンサー
企業スポンサー企業スポンサー
企業スポンサー
 
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ
 
CFP(Call For Paper) を出す話
CFP(Call For Paper)を出す話CFP(Call For Paper)を出す話
CFP(Call For Paper) を出す話
 
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会
 
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
 
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていくJava で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく
 

Robotium を使った UI テストとレイアウト確認の効率化