SlideShare a Scribd company logo
1 of 9
Copyright © DeNA Co.,Ltd. All Rights Reserved.
iOS Test Night #3
2017/03/13(Mon)
平田敏之@DeNA
Bluepillを使った
iOS自動テストの並列化
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 平田 敏之@DeNA
⁃ SWET (Software Engineer in Test)
• 事業サポートチーム / テスト基盤チーム
• ミッション
⁃ DeNAサービス全般の品質向上
⁃ DeNAエンジニアの開発生産性向上
⁃ 私がやっていること(の一部)
• クライアントアプリ周りのテスト戦略、自動テストの開発
• CI/CD環境整備
• テスト基盤環境の開発
• iOS Test Night主催
⁃ iOS以外のTest Nightも開催したいと目論んでいる
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日の発表の流れ(5分)
 はじめに
⁃ iOSの自動テスト導入後のツラミ(一部)について
 解決策になりうるBluepillとは?
⁃ 簡単な説明
⁃ 利用方法
⁃ デモ
 終わりに
Copyright © DeNA Co.,Ltd. All Rights Reserved.
はじめに
 自動テストには苦労する点が色々あります
⁃ 導入するまでの苦労
⁃ 導入してからの苦労
 自動テストを導入して苦労する点(の一部)
⁃ テストの実行時間
• テストの終了が待てなくなってくる(特にUIテストが増えてくると…
⁃ iOSシミュレーターの不安定さ
そんな、解決策を色々と模索している最中に
 LinkedinがBluepillを公開
⁃ 参考記事
• https://www.infoq.com/jp/news/2017/01/linkedin-bluepill-ios-
testing
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Bluepillとは?
 一体なに?
⁃ LinkedInが公開した複数のiOSシミュレーターを使って自動テストを
実行可能にしてくれるもの
 何が嬉しいの?
⁃ iOSシミュレーターを複数実行しテストを並列実行できる
• テストケースを分割して実行してくれる
⁃ 許容リトライ数やタイムアウトなど色々と設定できる
• さらにヘッドレスまで可能!
 注意点「だった」ところ (3/10まで)
⁃ Xcode UI Tesingはサポート外!(だった)
• READMEには以下のように書かれていた
⁃ Unfortunately, we don't support Xcode UI Testing bundles yet and we are working on that [**help wanted**].
⁃ ※ただし現時点(3/11)ではreleaseはされていない※
⁃ Unit Testing Bundleは元々サポートしているのでKIFやEarlGreyが使える
Copyright © DeNA Co.,Ltd. All Rights Reserved.
利用方法(1/2)
 事前準備(BluepillはDL済みとします)
build for testingで対象となるテストコードをbuildする
⁃ Case 1) Xcodeから作成する
⁃ Case 2) xcodebuildを利用する
• 例) xcodebuild build-for-testing –workspace <path> -scheme <name> -destination <specifier>
• 成果物の一部) xxxx.app(このapp内部のPlugins dirにxxxx.xctestが含まれている)
⁃ Case 3) fastlaneを利用する
xcodebuild(
workspace: '対象のworkspace',
scheme: ‘テストのscheme',
destination: 'platform=iOS Simulator,name=iPhone 5s,OS=latest',
derivedDataPath: ‘保存先',
xcargs: "build-for-testing"
)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
利用方法(2/2)
 BluePillの実行方法
⁃ コマンドからオプション指定で動かす
• ./bluepill -a ./Sample.app -s ./SampleAppTestScheme.xcscheme -o ./output/
⁃ ここのSample.appは前提でビルドして生成されたappファイル
⁃ 事前に用意したConfigファイルを指定してコマンドから動かす
• ./bluepill -c config.json
 オプション (詳細はhttps://github.com/linkedin/bluepill/blob/master/README.md)
⁃ 必須
• 対象となるapp → app | -a
• 結果出力 → output-dir | -o
• 対象となるschemeのパス → scheme-path | -s
⁃ 任意
• シミュレーターの起動数 → num-sims | -n (4)
• テストのタイムアウト(sec) → test-timeout | -T (300s)
• ヘッドレス → headless | -H (off)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
デモ
シミュレーター起動数:2
テストケース数:4
起動方法
./bluepill –c config.json
実行の流れ
1) Create Simulator
2) Started Simulator
3) Install Appliication
4) Launch Application
5) Tests started
6) Tests Completed
7) Delete Simulator
Copyright © DeNA Co.,Ltd. All Rights Reserved.
最後に - 皆さんが思う(であろう)疑問と返答 -
 そんなに並列化する必要あるか?
⁃ 自動テストが増えてくると実行時間は悩みのタネになります
• 実行時間が問題となり自動テストが放置されるというケースもあります
 テストの数が少ないうちから使う必要があるか?
⁃ テストの待機時間や、リトライ数などを設定できるだけでなく
Junit形式でテスト結果を出せるので最初から使っても効果はある
※利用方法の詳細などはQiitaに掲載しました※
http://qiita.com/tarappo/items/f2ff7f2e72a2663f0525

More Related Content

What's hot

What's hot (20)

マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスマスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
 
DroidKaigi_devicefarm
DroidKaigi_devicefarmDroidKaigi_devicefarm
DroidKaigi_devicefarm
 
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみたfastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
 
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていることスマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
 
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進めるiOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
 
iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介
 
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえるXcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
 
Android e2e testing at mercari
Android e2e testing at mercariAndroid e2e testing at mercari
Android e2e testing at mercari
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
Androidのテストを効率的にするために考えたこと
Androidのテストを効率的にするために考えたことAndroidのテストを効率的にするために考えたこと
Androidのテストを効率的にするために考えたこと
 
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションJaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
 
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバックSEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
 

Similar to Bluepillを使ったiOS自動テストの並列化

Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconMobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
DeNA
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
 
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
智治 長沢
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
満徳 関
 

Similar to Bluepillを使ったiOS自動テストの並列化 (19)

5minQues - SWET近況報告
5minQues - SWET近況報告5minQues - SWET近況報告
5minQues - SWET近況報告
 
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
 
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconMobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況
 
Open STF Plugin 作ってみた
Open STF Plugin 作ってみたOpen STF Plugin 作ってみた
Open STF Plugin 作ってみた
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo 【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
 
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
 
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
20221017_QiitaNight_ver2.pdf
20221017_QiitaNight_ver2.pdf20221017_QiitaNight_ver2.pdf
20221017_QiitaNight_ver2.pdf
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
 
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
 

More from Toshiyuki Hirata (7)

iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
 
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
 
iOSにおける自動テストの並列化
iOSにおける自動テストの並列化iOSにおける自動テストの並列化
iOSにおける自動テストの並列化
 
UIテスト(Espresso)の高速化をさらにすすめる
UIテスト(Espresso)の高速化をさらにすすめるUIテスト(Espresso)の高速化をさらにすすめる
UIテスト(Espresso)の高速化をさらにすすめる
 
UIテストの実行時間を短縮させる方法
UIテストの実行時間を短縮させる方法UIテストの実行時間を短縮させる方法
UIテストの実行時間を短縮させる方法
 
我が家のLINEを中心とした情報共有
我が家のLINEを中心とした情報共有我が家のLINEを中心とした情報共有
我が家のLINEを中心とした情報共有
 
レビューのコストを削減するための施策
レビューのコストを削減するための施策レビューのコストを削減するための施策
レビューのコストを削減するための施策
 

Recently uploaded

Recently uploaded (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Bluepillを使ったiOS自動テストの並列化

  • 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. iOS Test Night #3 2017/03/13(Mon) 平田敏之@DeNA Bluepillを使った iOS自動テストの並列化
  • 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自己紹介  平田 敏之@DeNA ⁃ SWET (Software Engineer in Test) • 事業サポートチーム / テスト基盤チーム • ミッション ⁃ DeNAサービス全般の品質向上 ⁃ DeNAエンジニアの開発生産性向上 ⁃ 私がやっていること(の一部) • クライアントアプリ周りのテスト戦略、自動テストの開発 • CI/CD環境整備 • テスト基盤環境の開発 • iOS Test Night主催 ⁃ iOS以外のTest Nightも開催したいと目論んでいる
  • 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. 今日の発表の流れ(5分)  はじめに ⁃ iOSの自動テスト導入後のツラミ(一部)について  解決策になりうるBluepillとは? ⁃ 簡単な説明 ⁃ 利用方法 ⁃ デモ  終わりに
  • 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. はじめに  自動テストには苦労する点が色々あります ⁃ 導入するまでの苦労 ⁃ 導入してからの苦労  自動テストを導入して苦労する点(の一部) ⁃ テストの実行時間 • テストの終了が待てなくなってくる(特にUIテストが増えてくると… ⁃ iOSシミュレーターの不安定さ そんな、解決策を色々と模索している最中に  LinkedinがBluepillを公開 ⁃ 参考記事 • https://www.infoq.com/jp/news/2017/01/linkedin-bluepill-ios- testing
  • 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. Bluepillとは?  一体なに? ⁃ LinkedInが公開した複数のiOSシミュレーターを使って自動テストを 実行可能にしてくれるもの  何が嬉しいの? ⁃ iOSシミュレーターを複数実行しテストを並列実行できる • テストケースを分割して実行してくれる ⁃ 許容リトライ数やタイムアウトなど色々と設定できる • さらにヘッドレスまで可能!  注意点「だった」ところ (3/10まで) ⁃ Xcode UI Tesingはサポート外!(だった) • READMEには以下のように書かれていた ⁃ Unfortunately, we don't support Xcode UI Testing bundles yet and we are working on that [**help wanted**]. ⁃ ※ただし現時点(3/11)ではreleaseはされていない※ ⁃ Unit Testing Bundleは元々サポートしているのでKIFやEarlGreyが使える
  • 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. 利用方法(1/2)  事前準備(BluepillはDL済みとします) build for testingで対象となるテストコードをbuildする ⁃ Case 1) Xcodeから作成する ⁃ Case 2) xcodebuildを利用する • 例) xcodebuild build-for-testing –workspace <path> -scheme <name> -destination <specifier> • 成果物の一部) xxxx.app(このapp内部のPlugins dirにxxxx.xctestが含まれている) ⁃ Case 3) fastlaneを利用する xcodebuild( workspace: '対象のworkspace', scheme: ‘テストのscheme', destination: 'platform=iOS Simulator,name=iPhone 5s,OS=latest', derivedDataPath: ‘保存先', xcargs: "build-for-testing" )
  • 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. 利用方法(2/2)  BluePillの実行方法 ⁃ コマンドからオプション指定で動かす • ./bluepill -a ./Sample.app -s ./SampleAppTestScheme.xcscheme -o ./output/ ⁃ ここのSample.appは前提でビルドして生成されたappファイル ⁃ 事前に用意したConfigファイルを指定してコマンドから動かす • ./bluepill -c config.json  オプション (詳細はhttps://github.com/linkedin/bluepill/blob/master/README.md) ⁃ 必須 • 対象となるapp → app | -a • 結果出力 → output-dir | -o • 対象となるschemeのパス → scheme-path | -s ⁃ 任意 • シミュレーターの起動数 → num-sims | -n (4) • テストのタイムアウト(sec) → test-timeout | -T (300s) • ヘッドレス → headless | -H (off)
  • 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. デモ シミュレーター起動数:2 テストケース数:4 起動方法 ./bluepill –c config.json 実行の流れ 1) Create Simulator 2) Started Simulator 3) Install Appliication 4) Launch Application 5) Tests started 6) Tests Completed 7) Delete Simulator
  • 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. 最後に - 皆さんが思う(であろう)疑問と返答 -  そんなに並列化する必要あるか? ⁃ 自動テストが増えてくると実行時間は悩みのタネになります • 実行時間が問題となり自動テストが放置されるというケースもあります  テストの数が少ないうちから使う必要があるか? ⁃ テストの待機時間や、リトライ数などを設定できるだけでなく Junit形式でテスト結果を出せるので最初から使っても効果はある ※利用方法の詳細などはQiitaに掲載しました※ http://qiita.com/tarappo/items/f2ff7f2e72a2663f0525