SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
EVERNOTE: 
HOW WE BUILD FOR ANDROID 
Speaker: Reid Baker (@reidbaker)
WHAT DO I MEAN BY “BIG” 
More than a dozen android engineers 
Engineers in 3 timezones 
Releases go to multiple app stores, ex. 
Amazon, Samsung, Chromebook, etc. 
Million+ reviews and more than 50 
million downloads 
Android’s infamous 65k method limit
SUGGESTED TEAM BASELINE 
Use source control and have some method of code review 
Use a Modern build system 
Verify that code compiles before it interrupts the rest of the team 
Use a bug tracker so things are less likely to slip through the 
cracks 
Have a chat room where newer members can ask questions 
without interrupting another teammates.
USE A MODERN BUILD SYSTEM 
Choices include Gradle 
(recommended), Buck, and Maven 
Reduces friction when adding 
teammates 
Allows each teammate to build 
the same way 
Encourages automation where 
humans might make an error
HOW WE DO IT 
Make changes and test locally
HOW WE DO IT 
Code reviewed
HOW WE DO IT 
Jenkins Kicks off build, on 
successful completion 
Email QA with a link to apk 
Updates jira tickets found in the 
commit message with comment 
that includes build number 
Kicks off UI Automation build 
Kicks off chrome build to 
convert apk to crx
HOW WE DO IT 
Build Verification tests run every build 
on a pair of Genymotion instances 
Small set of test that run quickly 
Full Set of automation tests run on 9 
devices attached to the build server 
every night 
Reports include screen shots which 
can be helpful to the translations 
team 
UI tests are more fragile than unit 
tests
UI TESTS: LESSONS LEARNED 
When working with real devices you can’t assume they are ready 
We built tools that let us remove all packages, send adb commands to all devices, and 
restart each device 
Built an app that can verify devices are ready to run tests. ex. wake the screen or verify 
an internet connection 
Using 3rd party services like AppThwack can let you test on a broad range of devices 
Knowing the commit that broke the UI speeds up the time to fix issues 
Testing code in another process is not supported. 
A work around is to use keyboard inputs
UI TESTS: OTHER PERKS 
UI Automation has other advantages outside of testing 
We can easily take screen shots of our signup flow on many 
types of devices in every language we support and hand those 
screenshots to our translations team for feedback. 
We can test database migrations across a many old versions of 
Evernote. This process was time consuming for QA and 
involved a lot of waiting.
RELEASE TIMELINE 
Partnerships Team 
updates other stores 
Released to 
100% of users 
Released to 
10% of users 
QA Sends 
sign-off email 
Last change committed 
to release branch 
(normally translations) 
Release branch 
forked off master 
Unit tests and 
BVT pass 
Instrumentation 
tests pass 
Play Store 
updated 
Push Update to 
Beta community 
Press Release/ 
Blog post
QUESTIONS? 
@reidbaker

Contenu connexe

Tendances

Tendances (20)

An Introduction to Appium Desktop
An Introduction to Appium DesktopAn Introduction to Appium Desktop
An Introduction to Appium Desktop
 
Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015
 
10 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.510 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.5
 
Top Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test AutomationTop Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test Automation
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Getting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & AppiumGetting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & Appium
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 
React Native: Is It Worth It? UA Mobile 2017.
React Native: Is It Worth It? UA Mobile 2017.React Native: Is It Worth It? UA Mobile 2017.
React Native: Is It Worth It? UA Mobile 2017.
 
Automation Best Practices
Automation Best PracticesAutomation Best Practices
Automation Best Practices
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With Robotframework
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave Haeffner
 
See test
See testSee test
See test
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der CloudMobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
 
Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 

En vedette

Lifecycle Marketing in 2013
Lifecycle Marketing in 2013Lifecycle Marketing in 2013
Lifecycle Marketing in 2013
Desiree Colonna
 
Gensler Portfolio_AlexandraNason
Gensler Portfolio_AlexandraNasonGensler Portfolio_AlexandraNason
Gensler Portfolio_AlexandraNason
Alexandra Nason
 
Sustainability And Communication
Sustainability And CommunicationSustainability And Communication
Sustainability And Communication
Bob Maninger
 
Brand By Design: Walter Landor
Brand By Design:  Walter LandorBrand By Design:  Walter Landor
Brand By Design: Walter Landor
Bernie Gallagher
 

En vedette (20)

Food Safety Webcast: Allergen Management
Food Safety Webcast: Allergen ManagementFood Safety Webcast: Allergen Management
Food Safety Webcast: Allergen Management
 
Lifecycle Marketing in 2013
Lifecycle Marketing in 2013Lifecycle Marketing in 2013
Lifecycle Marketing in 2013
 
Gensler Portfolio_AlexandraNason
Gensler Portfolio_AlexandraNasonGensler Portfolio_AlexandraNason
Gensler Portfolio_AlexandraNason
 
Sustainability And Communication
Sustainability And CommunicationSustainability And Communication
Sustainability And Communication
 
Personal Branding for Developers
Personal Branding for DevelopersPersonal Branding for Developers
Personal Branding for Developers
 
Architecture firms around the world
Architecture firms around the world Architecture firms around the world
Architecture firms around the world
 
Getting Started With Developing For Apple Watch
Getting Started With Developing For Apple WatchGetting Started With Developing For Apple Watch
Getting Started With Developing For Apple Watch
 
Parker Hannifin Decades History Brochure
Parker Hannifin Decades History BrochureParker Hannifin Decades History Brochure
Parker Hannifin Decades History Brochure
 
Parker Hannifin 2016 Sustainability Report
Parker Hannifin 2016 Sustainability Report Parker Hannifin 2016 Sustainability Report
Parker Hannifin 2016 Sustainability Report
 
Gensler NAIOP Office Building of the Future 2012
Gensler NAIOP Office Building of the Future 2012Gensler NAIOP Office Building of the Future 2012
Gensler NAIOP Office Building of the Future 2012
 
Gensler: Academic Incubators
Gensler: Academic IncubatorsGensler: Academic Incubators
Gensler: Academic Incubators
 
Leadership Through Innovation in Facial Aesthetics: Botox, Juvederm, Latisse...
Leadership Through Innovation in Facial Aesthetics: Botox, Juvederm, Latisse...Leadership Through Innovation in Facial Aesthetics: Botox, Juvederm, Latisse...
Leadership Through Innovation in Facial Aesthetics: Botox, Juvederm, Latisse...
 
Ibm connections 5.0 installation step-by-step (windows and tds)
Ibm connections 5.0   installation step-by-step (windows and tds)Ibm connections 5.0   installation step-by-step (windows and tds)
Ibm connections 5.0 installation step-by-step (windows and tds)
 
Brand By Design: Walter Landor
Brand By Design:  Walter LandorBrand By Design:  Walter Landor
Brand By Design: Walter Landor
 
IBM & Panasonic: The Internet of Mobility & Cognitive Personalization of Spac...
IBM & Panasonic: The Internet of Mobility & Cognitive Personalization of Spac...IBM & Panasonic: The Internet of Mobility & Cognitive Personalization of Spac...
IBM & Panasonic: The Internet of Mobility & Cognitive Personalization of Spac...
 
Boeing company
Boeing company Boeing company
Boeing company
 
IBM Connections 4.5 Integration - From Zero To Social Hero - 2.0 - with Domin...
IBM Connections 4.5 Integration - From Zero To Social Hero - 2.0 - with Domin...IBM Connections 4.5 Integration - From Zero To Social Hero - 2.0 - with Domin...
IBM Connections 4.5 Integration - From Zero To Social Hero - 2.0 - with Domin...
 
Ford pinto full details and analysis report with references
Ford pinto full details and analysis report with referencesFord pinto full details and analysis report with references
Ford pinto full details and analysis report with references
 
Disruptive perception
Disruptive perceptionDisruptive perception
Disruptive perception
 
Sangath
SangathSangath
Sangath
 

Similaire à Evernote release process

Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presented
Vijayan Reddy
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
John Lewis
 

Similaire à Evernote release process (20)

Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presented
 
Agile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopAgile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loop
 
Continues Integration for Android
Continues Integration for AndroidContinues Integration for Android
Continues Integration for Android
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
 
Let's banish "it works on my machine"
Let's banish "it works on my machine"Let's banish "it works on my machine"
Let's banish "it works on my machine"
 
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
 
Getting Started With QA Automation
Getting Started With QA AutomationGetting Started With QA Automation
Getting Started With QA Automation
 
The Best Automation Testing Tools To Use In 2022 | BMN Infotech
The Best Automation Testing Tools To Use In 2022 | BMN InfotechThe Best Automation Testing Tools To Use In 2022 | BMN Infotech
The Best Automation Testing Tools To Use In 2022 | BMN Infotech
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
 
Why test with flex unit
Why test with flex unitWhy test with flex unit
Why test with flex unit
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
 
"Software Quality in the Service of Innovation in the Insurance Industry"
"Software Quality in the Service of Innovation in the Insurance Industry""Software Quality in the Service of Innovation in the Insurance Industry"
"Software Quality in the Service of Innovation in the Insurance Industry"
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Developers Border Line: Unit Testing
Developers Border Line: Unit TestingDevelopers Border Line: Unit Testing
Developers Border Line: Unit Testing
 

Dernier

Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 

Dernier (20)

Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 

Evernote release process

  • 1. EVERNOTE: HOW WE BUILD FOR ANDROID Speaker: Reid Baker (@reidbaker)
  • 2. WHAT DO I MEAN BY “BIG” More than a dozen android engineers Engineers in 3 timezones Releases go to multiple app stores, ex. Amazon, Samsung, Chromebook, etc. Million+ reviews and more than 50 million downloads Android’s infamous 65k method limit
  • 3. SUGGESTED TEAM BASELINE Use source control and have some method of code review Use a Modern build system Verify that code compiles before it interrupts the rest of the team Use a bug tracker so things are less likely to slip through the cracks Have a chat room where newer members can ask questions without interrupting another teammates.
  • 4. USE A MODERN BUILD SYSTEM Choices include Gradle (recommended), Buck, and Maven Reduces friction when adding teammates Allows each teammate to build the same way Encourages automation where humans might make an error
  • 5. HOW WE DO IT Make changes and test locally
  • 6. HOW WE DO IT Code reviewed
  • 7. HOW WE DO IT Jenkins Kicks off build, on successful completion Email QA with a link to apk Updates jira tickets found in the commit message with comment that includes build number Kicks off UI Automation build Kicks off chrome build to convert apk to crx
  • 8. HOW WE DO IT Build Verification tests run every build on a pair of Genymotion instances Small set of test that run quickly Full Set of automation tests run on 9 devices attached to the build server every night Reports include screen shots which can be helpful to the translations team UI tests are more fragile than unit tests
  • 9.
  • 10.
  • 11. UI TESTS: LESSONS LEARNED When working with real devices you can’t assume they are ready We built tools that let us remove all packages, send adb commands to all devices, and restart each device Built an app that can verify devices are ready to run tests. ex. wake the screen or verify an internet connection Using 3rd party services like AppThwack can let you test on a broad range of devices Knowing the commit that broke the UI speeds up the time to fix issues Testing code in another process is not supported. A work around is to use keyboard inputs
  • 12. UI TESTS: OTHER PERKS UI Automation has other advantages outside of testing We can easily take screen shots of our signup flow on many types of devices in every language we support and hand those screenshots to our translations team for feedback. We can test database migrations across a many old versions of Evernote. This process was time consuming for QA and involved a lot of waiting.
  • 13. RELEASE TIMELINE Partnerships Team updates other stores Released to 100% of users Released to 10% of users QA Sends sign-off email Last change committed to release branch (normally translations) Release branch forked off master Unit tests and BVT pass Instrumentation tests pass Play Store updated Push Update to Beta community Press Release/ Blog post