Submit Search
Upload
UIテストの実行時間の短縮の方法
•
2 likes
•
4,739 views
Toshiyuki Hirata
Follow
iOS Test Night #4(2017/5/22)で発表した資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 16
Download now
Download to read offline
Recommended
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築
Toshiyuki Hirata
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
Toshiyuki Hirata
Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
Shunsuke Maeda
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
fastlane x iOSアプリのCI
fastlane x iOSアプリのCI
Toshiyuki Hirata
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
Toshiyuki Hirata
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
バージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフ
Toshiyuki Hirata
Recommended
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築
Toshiyuki Hirata
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
Toshiyuki Hirata
Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
Shunsuke Maeda
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
fastlane x iOSアプリのCI
fastlane x iOSアプリのCI
Toshiyuki Hirata
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
Toshiyuki Hirata
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
バージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフ
Toshiyuki Hirata
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
Toshiyuki Hirata
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
Android e2e testing at mercari
Android e2e testing at mercari
Vishal Banthia
DroidKaigi_devicefarm
DroidKaigi_devicefarm
Shunsuke Maeda
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
Kazuaki KURIU
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
Toshiyuki Hirata
iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介
Shunsuke Maeda
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
Shunsuke Maeda
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
Toshiyuki Hirata
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話
司 知花
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
Masaki Nakagawa
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
gree_tech
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
mirer
Androidのテストを効率的にするために考えたこと
Androidのテストを効率的にするために考えたこと
Ataru Osaka
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Carol Smith
More Related Content
What's hot
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
Toshiyuki Hirata
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
Android e2e testing at mercari
Android e2e testing at mercari
Vishal Banthia
DroidKaigi_devicefarm
DroidKaigi_devicefarm
Shunsuke Maeda
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
Kazuaki KURIU
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
Toshiyuki Hirata
iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介
Shunsuke Maeda
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
Shunsuke Maeda
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
Toshiyuki Hirata
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話
司 知花
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
Masaki Nakagawa
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
gree_tech
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
mirer
What's hot
(20)
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
Android e2e testing at mercari
Android e2e testing at mercari
DroidKaigi_devicefarm
DroidKaigi_devicefarm
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
Viewers also liked
Androidのテストを効率的にするために考えたこと
Androidのテストを効率的にするために考えたこと
Ataru Osaka
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Carol Smith
テストコードをアプリケーションコードと同じ階層に置きたい
テストコードをアプリケーションコードと同じ階層に置きたい
Hiroshi Kikuchi
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Kenji Tanaka
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
Teppei Sato
20160913 cookpad ios_jp
20160913 cookpad ios_jp
Kazuaki Matsuo
Viewers also liked
(6)
Androidのテストを効率的にするために考えたこと
Androidのテストを効率的にするために考えたこと
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
テストコードをアプリケーションコードと同じ階層に置きたい
テストコードをアプリケーションコードと同じ階層に置きたい
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
Stubる - Mockingjayを使ったHTTPクライアントのテスト -
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
20160913 cookpad ios_jp
20160913 cookpad ios_jp
Similar to UIテストの実行時間の短縮の方法
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
智治 長沢
5minQues - SWET近況報告
5minQues - SWET近況報告
Masaki Nakagawa
Trac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
Takahisa Wada
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
Hinemos
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
Rakuten Group, Inc.
Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編
株式会社 NTTテクノクロス
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編
株式会社 NTTテクノクロス
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
日本ヒューレット・パッカード株式会社
July techfesta2014 f30
July techfesta2014 f30
Motoki Kakinuma
Gamedevenvstudy1
Gamedevenvstudy1
Takashi Kokawa
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
de:code 2017
Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
hakoika-itwg
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
shinyatsukasaki
BDD Frameworkで回帰テストの自動実行を実現する方法
BDD Frameworkで回帰テストの自動実行を実現する方法
潤司 渡部
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
Similar to UIテストの実行時間の短縮の方法
(20)
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
5minQues - SWET近況報告
5minQues - SWET近況報告
Trac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
July techfesta2014 f30
July techfesta2014 f30
Gamedevenvstudy1
Gamedevenvstudy1
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
BDD Frameworkで回帰テストの自動実行を実現する方法
BDD Frameworkで回帰テストの自動実行を実現する方法
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
More from Toshiyuki Hirata
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
Toshiyuki Hirata
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
Toshiyuki Hirata
iOSにおける自動テストの並列化
iOSにおける自動テストの並列化
Toshiyuki Hirata
UIテスト(Espresso)の高速化をさらにすすめる
UIテスト(Espresso)の高速化をさらにすすめる
Toshiyuki Hirata
UIテストの実行時間を短縮させる方法
UIテストの実行時間を短縮させる方法
Toshiyuki Hirata
我が家のLINEを中心とした情報共有
我が家のLINEを中心とした情報共有
Toshiyuki Hirata
レビューのコストを削減するための施策
レビューのコストを削減するための施策
Toshiyuki Hirata
More from Toshiyuki Hirata
(7)
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
iOSにおける自動テストの並列化
iOSにおける自動テストの並列化
UIテスト(Espresso)の高速化をさらにすすめる
UIテスト(Espresso)の高速化をさらにすすめる
UIテストの実行時間を短縮させる方法
UIテストの実行時間を短縮させる方法
我が家のLINEを中心とした情報共有
我が家のLINEを中心とした情報共有
レビューのコストを削減するための施策
レビューのコストを削減するための施策
Recently uploaded
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
Recently uploaded
(7)
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
UIテストの実行時間の短縮の方法
1.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. iOS Test Night #4 2017/05/22(Mon) 平田敏之@DeNA UIテストの実行時間の短縮の方法 - test-without-building / bluepill / pxctest / Pomeranian -
2.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自己紹介 平田 敏之@DeNA ⁃ SWET (Software Engineer in Test) • 事業サポートチーム / テスト基盤チーム • ミッション ⁃ DeNAサービス全般の品質向上 ⁃ DeNAエンジニアの開発生産性向上 ⁃ 私がやっていること(の一部) • クライアントアプリ周りのテスト戦略、自動テストの開発 • CI/CD環境整備 • テスト基盤環境の開発 • iOS Test Nightの主催
3.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 今日の発表の流れ はじめに UIテストの実行時間の短縮のための方法 ⁃ [1] テスト実行の並列化 • テストの実行時間の比較 ⁃ [2] テスト実行計画の最適化 まとめ
4.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. はじめに iOSアプリのUIテストの課題(の1つ) ⁃ → テストの実行時間 解決方法の手段(の1つ) ⁃ [1] ビルドとテストの実行を分割して並列化 • 1) テストのためにビルド ⁃ build-for-testingコマンドで実行 • 2) テストを実行 ⁃ test-without-buildingコマンドで実行 ⁃ bluepillを利用 ⁃ pxctestを利用 ⁃ [2] テストの実行時間を元にした並列実行計画
5.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. [1] 実際に実行時間を比較してみる 実行時間を比較する対象一覧 ⁃ (1) fastlane scan (xcodebuild test) • 素のまま ⁃ (2) build-for-testing / test-without-building • ビルドと実行をわける ⁃ (3) bluepill • ツールを利用(1) ⁃ (4) pxctest • ツールを利用(2)
6.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. それぞれの(簡単な)説明 基本機能 ⁃ (1) fastlane scan (xcodebuild test) ⁃ (2) build-for-testing / test-without-building • ビルドとテストの実行を分割 複数iOSシミュレーターを起動させることが出来るツール ※注意※ build-for-testingでビルドしたものがある前提 ⁃ (3) bluepill / inspired by FBSimulatorControl • https://github.com/linkedin/bluepill • 指定したシミュレーター数に応じてテストケースを分割して実行 ⁃ (4) pxctest / using FBSimulatorControl • https://github.com/plu/pxctest • 複数のシミュレーターで同じテストケースを全て実行
7.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 今回の実行条件 UIテストについて ⁃ 利用したフレームワーク:XCTest / UI Testing ⁃ クラス数:6 ⁃ テストケース数:15 • 5 + 1 + 2 + 2 + 2 + 3 = 15 実行環境(Jenkins) ⁃ Mac Pro (Late 2013) • 3.5GHz 6コア / 16GB • OS: 10.12.4 • Xcode 8.3.2
8.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. (1) fastlane scan (xcodebuild test) の結果 / ベースとなる数値 試行数:10 平均:392.3 最大:405 最小:388 中央値:390 当然ながら一番実行時間がかかっています。 Fastfileでの記述例 scan( sdk: “iphonesimulator”, configuration: "Release", output_directory: “test-report/”, buildlog_path: “test-report/”, output_types: “html,junit”, )
9.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. (2) build-for-testing / test-without-buildingの結果 試行数:10 / ビルド時間:54 平均:284.9 最大:287 最小:284 中央値:285 テストを実行するマシンの数を増やせばもっと早くなる。 Fastfileでの記述例 / test-without-building scan( xctestrun: “path/to/xxx.xctestrun” #このkeyがあるとtest-without-buildingと判断される device: “iPhone 7” output_directory: 'test-report/', buildlog_path: 'test-report/', output_types: 'html,junit', )
10.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. build-for-testing / test-without-buildingの利用例 ビルドマシン ⁃ build-for-testing テスト実行マシン #1 ⁃ test-without-building • テストクラスAを指定 テスト実行マシン#2 ⁃ test-without-building • テストクラスBを指定 このテスト実行マシンを増やすことにより並列化が進み実行時間が短縮する。 ビルド成果物 テスト実行#1 テスト実行#2
11.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. (3) bluepill(v 1.1.0)の結果 試行数:10 / シミュレーター数:3 / ビルド時間:54 平均:165.9 最大:183 最小:162 中央値:164.5 Fastfileでの記述例 / pluginがあります(2つ) ※独自actionを作成しました bluepill( app: “path/to/xxxx.app” scheme: “path/to/xxxx.xcscheme” output_dir: 'test-report/', device: “iPhone 7”, number_of_simulators: 3, ) bluepillのplugin 1) https://github.com/tbrand/fastlane-plugin-bluepill 2) https://github.com/Shashikant86/fastlane-plugin-bluepillar シミュレーター数が4の場合:[平均:165.5] シミュレーター数が5の場合:[平均:134.4]
12.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. (4) pxctest(v 0.3.2)の結果 試行数:10 / シミュレーター数:1 / ビルド時間:54 平均:222.3 最大:224 最小:219 中央値:222.5 Fastfileでの記述例 ※独自actionを作成しました pxctest( testrun: “path/to/xxxx.xctestrun”, output: “test-report”, destinations: destinations ) シミュレーター数が3(テスト数:45)の場合:[平均:285.4]
13.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. テストの実行時間の比較 対象 テストケース数 平均(sec) fastlane scan ( xcodebuild test ) 15 392.3 build-for-testing test-without-building (テスト実行マシン:1) 15 284.9 bluepill (シミュレーター数:3) 15 165.9 bluepill (シミュレーター数:5) 15 134.4 pxctest (シミュレーター数:1) 15 222.3 pxctest (シミュレーター数:3) 45 285.4
14.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. [2] テストの実行時間を元にした並列実行計画 テストの実行時間にはばらつきがあるので最適化する 実行マシンが3つある場合 (1) 113 (2) 10 + 19 + 19 + 31 = 79 (3) 57 実行マシンが2つある場合 (1): 113 + 10 = 123 (2): 19 + 19 + 31 + 57 = 126 113 手動での設定も出来るけどテストは追加・削除されるので自動化したい
15.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ポメラニアン(SWET製):自動テストをサポートするサービス 機能(の一部) ⁃ 不安定なテストの検出 ⁃ 並列実行の計画の最適化 利用フロー 1. テストの実行結果を送る • 実行時間などの結果が履歴に保存されていく 2. テスト計画を依頼する • 何台のマシンで実行するか 3. 今までの履歴を元に計画を教えてくれる 4. 得た情報を元にテストを実行する • test-without-buildingとテスト実行マシンがあれば出来る ⁃ ※あとはポメラニアンクライアント
16.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. おわりに UIテストの実行時間を短縮させる方法 ⁃ 並列化をおこなってしまおう • 1つのシミュレーターのみでOKなら → bluepill • カバレッジとりたいなら → pxctest ⁃ テストの実行時間のばらつきを最適化する • クラス単位における実行時間に基づきグルーピング 他にも方法はあるはずなので試した内容の発表をお待ちしています!
Download now