Keqiu Hu
Speed Up iOS Releases
2
whoami
Software Engineer @ LinkedIn
Flagship infrastructure team
3
Agenda
Background
Challenges
Q & A
4
Background
Old days
One centralized mobile team
~15 iOS engineers
1 mobile release per month
Past:
One centralized mobile team
~15 iOS engineers
< 1 mobile release per month
5
Background
6
Background
Now
Decentralized mobile team
150 iOS engineers
2000 commits/month
3x3
7
3x3?
Release 3 times a day
Commit to publish time < 3 hours
8
3x3?
Release 3 times a day
Commit to publish time < 3 hours
9
3x3 Challenges
Reliability
Speed
Stability
Reliability
11
Test Coverage
Layout Tests
Stress test views with different strings
12
Test Coverage
Scenario Tests
Replace manual testing
13
Test Coverage
Scenario Tests
Replace manual testing
14
Test Coverage
Push beta build to company
employees for internal testing
15
Dogfood
Speed
17
Test Automation
7 days to 19 hours (5 hour compilation + 14 hours testing)
Speed up Swift compiling
(19 hours -> 15 hours)
18
Compiler
Speed up Swift compiling
19
Compiler
Speed up iOS testing framework
(15 hours -> 4 hours)
20
Test Framework
Distributed building and testing
(4 hours to 1 hour)
21
Distributed build!
Stability
Precommit -> Code base -> Post
commit
23
Stability
Pre-commit
Code
base
Post-
commit
24
Stability
Testing infrastructure stability
Tooling stability
Hermetic testing environment
25
Environment Stability
26
Test Stability
99.9%1000 = ?
99% 95% 90% 80% 50%
27
Test Stability
99.9%1000 = 36.7%
99% 95% 90% 80% 50%
28
Trunk Guardian
Flaky tests are worse than no tests
Disable all flaky tests
Synchronization between steps
29
Test Framework Stability
Synchronization between steps
30
Test Framework Stability
31
Distributed Testing Stability
Running tests on 10 machines
Each node has a reliability of 95% and 95%^10 = 60%
32
Distributed Testing Stability
Running tests on 10 machines
Each node has a reliability of 95% and 95%^10 = 60%
Capacity requirement
33
Distributed Testing Stability
Running tests on 10 machines
Each node has a reliability of 95% and 95%^10 = 60%
Capacity requirement
Based on facebook’s xctool
Python wrapper
34
Project Hydra
Facebook’s xctool was declared EOL
No access to simulator APIs
35
Project Hydra
The project name is inspired by the
Matrix’s Bluepill
36
Project Bluepill
Objective-c code base on top of
CoreSimulator and other Apple
frameworks
Running tests in paralle via multiple
simulators
Automatically packing tests into groups
with similar running time
Retrying when simulator hangs or
crashes.
37
Project Bluepill
Open sourced!
github.com/linkedin/bluepill
38
Project Bluepill
Write a config:
{
"app": "./Sample.app", # Relative path or abs path
"scheme-path": "./SampleAppTestScheme.xcscheme", #
Relative path or abs path
"output-dir": "./build/" # Relative path or abs path
}
Run!
./bluepill –c config.json
39
Project Bluepill
Question?

More Related Content

PPTX
Software development terminology
PDF
Performance Testing | Instamojo
PDF
CICD by Teerapat
PDF
Test Driven Development with OSGi - Balázs Zsoldos
PPTX
Continuous delivery applied
PDF
Setup Build & Deploy with Jenkins CI
PPTX
Load Testing with k6 framework
PPTX
Building the Test Automation Framework - Jenkins for Testers
Software development terminology
Performance Testing | Instamojo
CICD by Teerapat
Test Driven Development with OSGi - Balázs Zsoldos
Continuous delivery applied
Setup Build & Deploy with Jenkins CI
Load Testing with k6 framework
Building the Test Automation Framework - Jenkins for Testers

What's hot (19)

PPTX
DevQAOps - Surviving in a DevOps World
PDF
Speed up your Titanium app development with automated tests - TiConf EU 2014
PPTX
Zalenium - How to run Selenium Script using Docker and Selenium Grid
PDF
Introduction cypress
PDF
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
PPTX
Addressing Security Regression Through Unit Testing
PDF
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
PPT
Continuous integration
PPTX
TDD on OSGi, in practice.
PDF
Cypress e2e automation testing - day1 intor by: Hassan Hameed
PPTX
How do you implement Continuous Delivery? Part 3: All about Pipelines
PDF
Test Driven Development for PLSQL with utPLSQL v3
PDF
Test driven development_continuous_integration
PPTX
JavaScript Metaprogramming with ES 2015 Proxy
PDF
EFL QA: Where Are We and Where Should We Go?
PPTX
The Amazing Bug Story
PPTX
FISL 2010: CruiseControl: the open source that changed the way we develop sof...
PDF
Continuous Integration, Continuous Quality, Continuous Delivery
PPTX
SKILLWISE_SELENIUM
DevQAOps - Surviving in a DevOps World
Speed up your Titanium app development with automated tests - TiConf EU 2014
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Introduction cypress
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
Addressing Security Regression Through Unit Testing
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Continuous integration
TDD on OSGi, in practice.
Cypress e2e automation testing - day1 intor by: Hassan Hameed
How do you implement Continuous Delivery? Part 3: All about Pipelines
Test Driven Development for PLSQL with utPLSQL v3
Test driven development_continuous_integration
JavaScript Metaprogramming with ES 2015 Proxy
EFL QA: Where Are We and Where Should We Go?
The Amazing Bug Story
FISL 2010: CruiseControl: the open source that changed the way we develop sof...
Continuous Integration, Continuous Quality, Continuous Delivery
SKILLWISE_SELENIUM
Ad

Viewers also liked (10)

DOCX
Proyecto quiosco daniel rodriguez C.I.: V-24.355.649
PDF
Silabo por competencia
PPTX
La importancia de la lectura
PPTX
DOCX
Amplificadores Operacionales
PPTX
Результаты независимой оценки за 2016 год
PPTX
Komponen utama sistem kerajaan Malaysia
PDF
แนวข้อสอบเทศบาล
PDF
แนวข้อสอบนักวิเคราะห์นโยบายและแผน และตำแหน่งอื่นๆ
PDF
Il ruolo di HR nella Digital Organization
Proyecto quiosco daniel rodriguez C.I.: V-24.355.649
Silabo por competencia
La importancia de la lectura
Amplificadores Operacionales
Результаты независимой оценки за 2016 год
Komponen utama sistem kerajaan Malaysia
แนวข้อสอบเทศบาล
แนวข้อสอบนักวิเคราะห์นโยบายและแผน และตำแหน่งอื่นๆ
Il ruolo di HR nella Digital Organization
Ad

Similar to Speedup ios release (20)

PDF
Expedia 3x3 presentation
PDF
Fashionable XCUITest for iOS Apps by Shashikant Jagtap
PDF
SauceCon19: Fashionable XCUITest for iOS App
PDF
Agile Tools for Mobile
PDF
3x3 Speeding Up Mobile Releases
PDF
3x3: Speeding Up Mobile Releases
PDF
Setting up Continuous Delivery Culture for a Large Scale Mobile App
PDF
Release & Iterate Faster: Stop Manual Testing
PDF
Release iOS apps at scale
PDF
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
PDF
App testing and publishing
PPTX
CI/CD for mobile at HERE
PDF
iOSDevUK Conference- DevOps for iOS Apps
PDF
iOS Automation Frameworks evaluation
PDF
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
PDF
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
PPTX
When & How to Successfully use Test Automation for Mobile Applications
PPTX
Uber Mobility Meetup: Mobile Testing
PPTX
Suparna - XCUITest
KEY
Continuous integration & deployment
Expedia 3x3 presentation
Fashionable XCUITest for iOS Apps by Shashikant Jagtap
SauceCon19: Fashionable XCUITest for iOS App
Agile Tools for Mobile
3x3 Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Release & Iterate Faster: Stop Manual Testing
Release iOS apps at scale
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
App testing and publishing
CI/CD for mobile at HERE
iOSDevUK Conference- DevOps for iOS Apps
iOS Automation Frameworks evaluation
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
When & How to Successfully use Test Automation for Mobile Applications
Uber Mobility Meetup: Mobile Testing
Suparna - XCUITest
Continuous integration & deployment

Recently uploaded (20)

PDF
Exploratory_Data_Analysis_Fundamentals.pdf
PDF
August -2025_Top10 Read_Articles_ijait.pdf
PPTX
Management Information system : MIS-e-Business Systems.pptx
PDF
MLpara ingenieira CIVIL, meca Y AMBIENTAL
PPTX
"Array and Linked List in Data Structures with Types, Operations, Implementat...
PDF
20250617 - IR - Global Guide for HR - 51 pages.pdf
PPTX
CyberSecurity Mobile and Wireless Devices
PDF
Implantable Drug Delivery System_NDDS_BPHARMACY__SEM VII_PCI .pdf
PDF
LOW POWER CLASS AB SI POWER AMPLIFIER FOR WIRELESS MEDICAL SENSOR NETWORK
PPTX
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
PDF
distributed database system" (DDBS) is often used to refer to both the distri...
PPTX
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
PPTX
Software Engineering and software moduleing
PDF
Accra-Kumasi Expressway - Prefeasibility Report Volume 1 of 7.11.2018.pdf
PPT
Chapter 1 - Introduction to Manufacturing Technology_2.ppt
PPTX
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
PPTX
Chapter 2 -Technology and Enginerring Materials + Composites.pptx
PDF
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
PDF
First part_B-Image Processing - 1 of 2).pdf
PPTX
Principal presentation for NAAC (1).pptx
Exploratory_Data_Analysis_Fundamentals.pdf
August -2025_Top10 Read_Articles_ijait.pdf
Management Information system : MIS-e-Business Systems.pptx
MLpara ingenieira CIVIL, meca Y AMBIENTAL
"Array and Linked List in Data Structures with Types, Operations, Implementat...
20250617 - IR - Global Guide for HR - 51 pages.pdf
CyberSecurity Mobile and Wireless Devices
Implantable Drug Delivery System_NDDS_BPHARMACY__SEM VII_PCI .pdf
LOW POWER CLASS AB SI POWER AMPLIFIER FOR WIRELESS MEDICAL SENSOR NETWORK
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
distributed database system" (DDBS) is often used to refer to both the distri...
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
Software Engineering and software moduleing
Accra-Kumasi Expressway - Prefeasibility Report Volume 1 of 7.11.2018.pdf
Chapter 1 - Introduction to Manufacturing Technology_2.ppt
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
Chapter 2 -Technology and Enginerring Materials + Composites.pptx
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
First part_B-Image Processing - 1 of 2).pdf
Principal presentation for NAAC (1).pptx

Speedup ios release

Editor's Notes

  • #2: Revolutionized How many of you release your app once per month/week/day?
  • #4: ----- Meeting Notes (3/1/17 09:56) ----- background -> scale of the team -> continuous delivery in the past and now
  • #6: However, we release IFF all regression tests pass. But in reality that is not the case. Same as in school xxx. Errors in homework As we approach the release day (cut-off date). It is exponential. Bad quality -> open RC PM have to carefully plan their features (miss one -> screw up) brainstorm.
  • #7: Mobilize Vertical teams Consistent UI and same vision for the all platforms
  • #8: Production quality app to internal -> Code compilation, testing, ipa validation -> 3 hours Get rid of manual testing
  • #11: Make sure the app produced by the continuous delivery has a high quality -> higher crash-free rate, high production quality
  • #12: Past -> unit test Now -> test pyramid
  • #13: All views are rendered based on the models, layout test framework helps exhaust all input strings to make sure xxx
  • #14: Man -> manual, machine -> automation Why chose KIF -> no others and kif is fast and no ruby Talk more about this in stability section
  • #15: KIF is not enough Slow / Verbose and most importantly stable
  • #16: Monitor crash rate in background Without provisioning files With enough test coverage and dogfooding, we achieved a super reliable continuous delivery pipeline.
  • #17: How many of you are using Swift in your company?! Intrepid bold But we were brave Longer, crashes, no incremental build Latest Swift and Xcode is troublesome and most big companies refuse to onboard Swift as their primary language INCLUDING APPLE
  • #19: By end of this exercise, we ended up with 1h release build time and 20 minutes local dev time
  • #20: 20 minutes is not fast enough for local dev! What can we do next?? Hardware!
  • #22: The savior is distributed build & test