スマートフォンアプリの色々自動化をはじめよう - at sonydna meisters salon...
DESCRIPTION
http://meisters.doorkeeper.jp/events/11134TRANSCRIPT
![Page 1: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/1.jpg)
スマートフォンアプリの テスト自動化をはじめよう
Meisters Salon 特別編 2014.05.23
@nowsprinting/Koji Hasegawa
色々
![Page 2: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/2.jpg)
自己紹介• @nowsprinting/Koji Hasegawa
• フリーランス (iOS/Androidアプリ受託開発)
• テスト自動化研究会、Androidテスト部
• 著書『iOSアプリ テスト自動化入門』
『Androidアプリテスト技法』(共著)
![Page 3: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/3.jpg)
著書
![Page 4: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/4.jpg)
アジェンダ• テストレベルと自動化 • システムテスト自動化のROI
• システムテスト自動化フレームワークの紹介 • ビルド・静的解析の自動化 • まとめ
![Page 5: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/5.jpg)
テストレベルと自動化
![Page 6: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/6.jpg)
テストレベル
![Page 7: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/7.jpg)
テストレベル
• テストフェーズ(工程)とは必ずしも一致しない
• プロダクト(アプリ)の結合度 • 担当者の変わり目
![Page 8: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/8.jpg)
ユニットテスト
• MVCのM(モデル、ビジネスロジック)を中心に行なう
• XCTest, GHUnit, Kiwi, OCMock, …
• JUnit, Robolectric, Mockito, EasyMock, …
![Page 9: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/9.jpg)
ユニットテスト
• MVCのM(モデル、ビジネスロジック)を中心に行なう
• XCTest, GHUnit, Kiwi, OCMock, …
• JUnit, Robolectric, Mockito, EasyMock, …
小さな単位でテスト、検証を厳密に行なうことができ、自動化の恩恵が大きい
![Page 10: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/10.jpg)
統合(結合)テスト• 個々のクラス間の統合(結合) • iOS/Android SDKとの統合
• UI(StoryBoard, nib, Layout XML)との統合
• サーバAPIとの統合
![Page 11: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/11.jpg)
統合(結合)テスト• 個々のクラス間の統合(結合) • iOS/Android SDKとの統合
• UI(StoryBoard, nib, Layout XML)との統合
• サーバAPIとの統合
網羅的に、結合箇所に着眼。この観点でUT/STにテスト項目があれば良いはず
![Page 12: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/12.jpg)
システムテスト• QA担当者が実施する、エンド・ツー・エンドのテスト
• アプリを実機にインストールして実施 • サーバAPIはステージング以上
• 機能テスト、非機能テストなど色々
![Page 13: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/13.jpg)
システムテスト• QA担当者が実施する、エンド・ツー・エンドのテスト
• アプリを実機にインストールして実施 • サーバAPIはステージング以上
• 機能テスト、非機能テストなど色々機能テストは自動化できるが、ユーザビリティや厳密な検証を欲張らないこと
![Page 14: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/14.jpg)
システムレベルの 機能テスト
• 近年のテスト自動化ツールは、Selenium
のようにViewのツリー構造を利用してオブジェクト指定が可能
• レイアウトや座標に左右されないテストが可能。(ただし機能テストに限る)
![Page 15: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/15.jpg)
システムテスト自動化のROI(投資利益率)
![Page 16: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/16.jpg)
理想の高い利益• テスト実行時間の短縮 • “正しい”画面表示のテスト(Judge/Assert)
• 複数のOSバージョン/機種で実行できる
• OS/機種依存問題を検出できる(表示崩れなども)
Return
![Page 17: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/17.jpg)
投資• 自動化ツールの選定/習得
• 自動化スクリプトの作成(高度なJudge/
Assertを求められる)
• 自動化スクリプトの保守(同上) • テストデータ、スタブサーバの準備
理想の高い利益を 得るための
Investment
![Page 18: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/18.jpg)
投資理想の高い利益を
得るためのInvestment
コストの増大、工程遅延、保守の放棄
• 自動化ツールの選定/習得
• 自動化スクリプトの作成(高度なJudge/
Assertを求められる)
• 自動化スクリプトの保守(同上) • テストデータ、スタブサーバの準備
![Page 19: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/19.jpg)
理想の高い利益Return
• テスト実行時間の短縮 • “正しい”画面表示のテスト(Judge/Assert)
• 複数のOSバージョン/機種で実行できる
• OS/機種依存問題を検出できる(表示崩れなども)
![Page 20: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/20.jpg)
現実的な利益に絞るReturn
• テスト実行時間の短縮 • “正しい”画面表示のテスト(Judge/Assert)
• 複数のOSバージョン/機種で実行できる
• OS/機種依存問題を検出できる(表示崩れなども)
![Page 21: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/21.jpg)
“テストの目的”に立ち返る
• 欠陥を摘出する • 対象ソフトウェアの品質レベルが十分であることを確認する
• 意思決定のための情報を示す • 欠陥の作り込みを防ぐ
※JSTQBシラバスより引用
![Page 22: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/22.jpg)
• 欠陥を摘出する • 対象ソフトウェアの品質レベルが十分であることを確認する
• 意思決定のための情報を示す • 欠陥の作り込みを防ぐ
※JSTQBシラバスより引用
スコープを“回帰テスト”に絞っても満たせるもの“テストの目的”に立ち返る
![Page 23: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/23.jpg)
• 欠陥を摘出する • 対象ソフトウェアの品質レベルが十分であることを確認する
• 意思決定のための情報を示す • 欠陥の作り込みを防ぐ
※JSTQBシラバスより引用
対象OS/機種で”とりあえず”動くことが確認できれば“テストの目的”に立ち返る
![Page 24: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/24.jpg)
欲張らないROI• 利益 • テスト実行時間の短縮 • 複数OSバージョン/機種で実行できる
• 投資 • 自動化ツールの選定/習得 • 自動化スクリプトの作成/保守(高度な頑張らないテストスクリプト)
• テストデータ、スタブサーバの準備
![Page 25: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/25.jpg)
頑張らないテストスクリプト
• 日時、天気、株価、為替、乱数などに
起因するJudgeを無理にはしない
• レイアウト崩れまでJudgeしようとしない
• 機種依存の問題を狙ってテストしようとしない(OS/解像度のフラグメンテーションと、機種依存問題は分けて考える)
![Page 26: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/26.jpg)
頑張らないテストスクリプト
• 日時、天気、株価、為替、乱数などに
起因するJudgeを無理にはしない
• レイアウト崩れまでJudgeしようとしない
• 機種依存の問題を狙ってテストしようとしない(OS/解像度のフラグメンテーションと、機種依存問題は分けて考える)
ユニットテストでモックを使って実施
![Page 27: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/27.jpg)
頑張らないテストスクリプト
• 日時、天気、株価、為替、乱数などに
起因するJudgeを無理にはしない
• レイアウト崩れまでJudgeしようとしない
• 機種依存の問題を狙ってテストしようとしない(OS/解像度のフラグメンテーションと、機種依存問題は分けて考える)
ユニットテストでモックを使って実施
スクリーンショットを目視確認
![Page 28: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/28.jpg)
頑張らないテストスクリプト
• 日時、天気、株価、為替、乱数などに
起因するJudgeを無理にはしない
• レイアウト崩れまでJudgeしようとしない
• 機種依存の問題を狙ってテストしようとしない(OS/解像度のフラグメンテーションと、機種依存問題は分けて考える)
スクリーンショットを目視確認
ユニットテストでモックを使って実施
内容次第で手動で確認
![Page 29: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/29.jpg)
頑張らなくても ここまでできる事例
![Page 30: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/30.jpg)
iOSのUIAlertView
iOS6
iOS7
![Page 31: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/31.jpg)
iOSのUIAlertView
iOS6
iOS7 CLASH!!!
![Page 32: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/32.jpg)
iOSのUIPickerView
iOS6
iOS7
![Page 33: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/33.jpg)
iOSのUIPickerView
iOS6
iOS7 CLASH!!!
![Page 34: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/34.jpg)
AndroidのdrawRect()
Android 4.1
Canvas#drawRect(100,100,10,10);
(10,10)
(100,100)
Android 4.2
![Page 35: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/35.jpg)
AndroidのdrawRect()
Android 4.1
Canvas#drawRect(100,100,10,10);
(10,10)
(100,100)
描画されない!Android 4.2
※left<=right, top<=bottomでないと描画されない仕様
![Page 36: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/36.jpg)
Android機種依存の例 1一定量のViewヒエラルキーの上でソフトウェアキーボードが出現するときにStackOverflowErrorが発生(某メーカーのAndroid 2.3
搭載端末のみ)
![Page 37: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/37.jpg)
普通の端末
奇妙な端末
Android機種依存の例 2
![Page 38: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/38.jpg)
普通の端末
奇妙な端末
Android機種依存の例 2
![Page 39: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/39.jpg)
利益を拡大するReturn
![Page 40: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/40.jpg)
欲張らないROI
• テスト実行時間の短縮 ➡時間と集中力を高度なテストに割り振る ➡リリース頻度の向上(4~6週間ごとが理想)
• 複数OSバージョン/機種で実行できる ➡さらにテスト実行環境を増やす。端末の回転、ロケール、タイムゾーン、12h/24h表記、IME(Android)、文字サイズ(Android 4.0)
![Page 41: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/41.jpg)
利益を拡大する• テスト実行時間の短縮 ➡時間と集中力を高度なテストに割り振る ➡リリース頻度の向上(4~6週間ごとが理想)
• 複数OSバージョン/機種で実行できる ➡さらにテスト実行環境を増やす。端末の回転、ロケール、タイムゾーン、12h/24h表記、IME(Android)、文字サイズ(Android 4.0)
Return
![Page 42: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/42.jpg)
利益を拡大する• テスト実行時間の短縮 ➡時間と集中力を高度なテストに割り振る ➡リリース頻度の向上(4~6週間ごとが理想)
• 複数OSバージョン/機種で実行できる ➡さらにテスト実行環境を増やす。端末の回転、ロケール、タイムゾーン、12h/24h表記、IME(Android)、文字サイズ(Android 4.0)
Return
ROIにとどまらず、製品の価値を上げられる!
![Page 43: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/43.jpg)
手動ではできないことができる• ロードテスト(ヒートラン) • メモリリークの調査 • 低メモリ状態での動作
• コンカレンシーテスト • 再現率の低い(タイミングがシビアな)問題の確認テスト
![Page 44: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/44.jpg)
システムテスト自動化 フレームワークの紹介
![Page 45: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/45.jpg)
monkeyrunner
• Android SDK同梱の自動テストツール。スクリプトはPythonで記述。キャプチャツール有り
• 座標を指定してタップ、ドラッグ • スクリーンショット、画像比較でのJudge
• http://developer.android.com/tools/help/monkeyrunner_concepts.html
• サンプル https://github.com/nowsprinting/nameko-harvest
![Page 46: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/46.jpg)
Robotium• Android Testing Frameworkのヘルパーで、
Seleniumライクなテスト記述が可能(JUnitの知識が必要)
• 端末回転、スクリーンショットなど必要機能は揃っている
• https://code.google.com/p/robotium/
• サンプル https://github.com/mike-neck/AllowLog
![Page 47: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/47.jpg)
uiautomator• Android 4.1で利用できるSDK同梱の自動テストツール。端末の回転とスクリーンショットは4.2から利用可能。JUnitベース
• SeleniumのようにViewのヒエラルキーを辿って画面要素を指定可能
• Viewのdescriptionでも要素を指定可能
• http://developer.android.com/tools/help/uiautomator/index.html
• サンプル https://gist.github.com/nowsprinting/4131415
![Page 48: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/48.jpg)
Espresso
• 10月に公開された、Google謹製のAndroid
向けテスティングフレームワーク
• Android 2.2以上で利用可能
• テスト記述は JUnitベース
• https://code.google.com/p/android-test-kit/
![Page 49: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/49.jpg)
UIAutomation
• Xcodeに同梱のInstrumentツールで自動実行を行なうフレームワーク
• スクリプトはJavaScriptで記述
• 標準でassert機能が無いのでJSのライブラリを使う( tuneup_js等)
![Page 50: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/50.jpg)
Appium• iOS/Androidで利用できるオープンソースのテストツール
• 複数のスクリプト言語で記述可能 • テスト対象にAgentを組み込む必要がない
• AndroidはAPI Level 17 (JellyBean)以上が必要
• http://appium.io/
![Page 51: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/51.jpg)
Calabash
• Cucumberのテスト(feature)を、iOS/
Androidデバイスで実行できる
• iOS版はテスト対象にAgentを組み込む必要あり
• https://github.com/calabash/calabash-android
• https://github.com/calabash/calabash-ios
![Page 52: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/52.jpg)
MonkeyTalk
• Gorilla Logic社が開発/公開しているOSSでiOS/Androidで利用可。旧”FoneMonkey”
• 専用の表形式IDEでテストを記述可能
• テスト対象にAgentを組み込む必要あり
• ATI 2012 Awards iOS/Android部門winner
• https://www.gorillalogic.com/monkeytalk
![Page 53: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/53.jpg)
その他 iOS向けフレームワーク• Frank • Cucumber系、 ATI 2012 Awards iOS部門
finalists • http://www.testingwithfrank.com/
• Zucchini • DSL系、ATI 2012 Awards iOS部門finalists
• http://www.zucchiniframework.org/
• KIF • https://github.com/kif-framework/KIF
![Page 54: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/54.jpg)
ツール選定のポイント• スクリプトを書けるチームかどうか (将来も保守していけるのか)
• iOS/Androidでテストを共有したいのか(但しUIが異なるので期待しすぎない)
• 「何が実行できるか」は余り重視しない(ツールの実行機能の差は縮まる)
• 仕様化、BDD
![Page 55: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/55.jpg)
ビルド・静的解析の自動化
![Page 56: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/56.jpg)
テスト用ビルドを作る
• 複数のTarget/Configurationを持つiOSプロジェクトの構成Tips http://nowsprinting.hatenablog.com/entry/2012/11/
18/031511
• Gradle+Androidプラグインでプロダクトフレーバーを試してみた http://nowsprinting.hatenablog.com/entry/
2013/05/23/153941
Agentの組み込みの他、接続先サーバ別など自動生成できると便利です
![Page 57: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/57.jpg)
UAT/ベータテスト
• iOS/Android
• TestFlight https://testflightapp.com/
• Android
• deploy gate https://deploygate.com/
• Google Play Storeのベータ版配布機能
On The Airでビルドを配布できるサービス
![Page 58: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/58.jpg)
継続的インテグレーション• OS X Server/Bots
• Xcodeとの統合。自由度は低め
• Jenkins
• 豊富なプラグイン、コードカバレジ、静的解析
• Travis CI
• クラウドサービス、Immutable
![Page 59: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/59.jpg)
OS X Server/Bots
![Page 60: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/60.jpg)
OS X Server/Bots
![Page 61: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/61.jpg)
Jenkins
![Page 62: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/62.jpg)
Jenkins
![Page 63: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/63.jpg)
Jenkins
![Page 64: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/64.jpg)
ビルド・静的解析を 自動化するメリット
• 手作業によるオペミスを減らす • 内部品質の低いプロダクトを改善する 足がかり
• ひとりでも寂しくない!
![Page 65: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/65.jpg)
まとめ
![Page 66: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/66.jpg)
まとめ
•欲張らない •頑張らない
![Page 67: スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編](https://reader034.vdocuments.site/reader034/viewer/2022052523/5566148bd8b42a06318b4e8c/html5/thumbnails/67.jpg)
まとめ
•欲張らないROI
•頑張らないテストスクリプト