Opening presentation from Solano Labs Co-Founder Jay Moorthi for Automated Testing San Francisco. This is an overview of Continuous Integration and Deployment best practices. Please let us know what you think!
Top 10 Most Downloaded Games on Play Store in 2024
Â
Automated testing san francisco oct 2013
1. Automated
 Tes,ng,
 Con,nuous
 Integra,on
 &
 Con,nuous
 Deployment
Â
Jay
 Moorthi
Â
Co-ÂâFounder,
 Solano
 Labs
Â
@SolanoLabs
Â
Â
Automated
 Tes,ng
 San
 Francisco
Â
2. Some Facts & Figures*
High performing organizations:
â˘âŻ Deploy code 30 times more frequently.
â⯠8000 times faster than their peers
â⯠Deploy multiple times a day, versus an average of once a month.
â˘âŻ Have 50 percent fewer failures.
â˘âŻ Restore service 12 times faster than their peers.
â⯠Fewer failures and faster recovery mean less risk to the business when
changes are deployed.
*Source:
 Puppet
 Labs
 2013
 State
 of
 DevOps
 Report
Â
3. How
 are
 they
 doing
 this?
Â
I
 donât
 have
 all
 the
 answersâŚ
Â
But
 hereâs
 one:
Â
 Automa,on
Â
4. Automated Testing Does More Than Find Bugs
Its Helps Teams Build a Better Product
Bug are Common, Difficult
to Eliminate & Very Costly
Automated Testing:
Using software to test software
â˘âŻ Reduces
 cost
 of
 bugs
 by
Â
reducing
 ,me
 between
Â
introduc,on
 and
 discovery
Â
â˘âŻ Frees
 engineers
 to
 make
Â
large
 changes
 fearlessly,
Â
reducing
 cycle
 ,me
Â
â˘âŻ Reduces
 complexity
 and
Â
risk
 at
 feature
 integra,on
Â
5. Automation: Reduces the Cognitive Feedback Loop
Automa,on
 shortens
 the
Â
cogni,ve
 loop
 for
 engineers
Â
Â
Â
Â
â˘âŻ Automa,on
 delivers
 results
 for
 a
 build
 quickly
Â
â˘âŻ Shorter
 turn-Ââaround
 ,mes
 change
 how
Â
engineers
 work
Â
â˘âŻ Test-ÂâDriven
 Development
 (TDD)
 is
 one
 logical
Â
extreme
Â
Waiting for tests to run
is no fun!
Incorporate
Â
Feedback
Â
Run
Â
Tests
Â
Write
Â
Code
Â
Get
 Results
Â
6. What Makes for a Good Automated Test?
â˘âŻ Eliminate repetitive manual tests
â˘âŻ Yield reproducible results
â˘âŻ Cover common and edge/error cases
â˘âŻ Ideally either pure unit or integration test
â˘âŻ Strive for clarity even when code is gnarly
â˘âŻ Test for business requirements
7. Why Not Automate Everything?
â˘âŻ Writing tests does have a cost
â⯠May not be appropriate for experimental code
â⯠May be fragile â UI/mobile automated testing is evolving
â⯠Difficult or impossible to express design and human factors
â˘âŻ Thorough testing requires commitment and discipline
â⯠Writing tests is a short-term pain for a specific individual
â⯠Test suite as a whole is valuable to the team over time
8. What
 do
 you
 do
 with
 all
 those
Â
Â
automated
 tests?
Â
9. Continuous Integration: A Discipline for Testing Every
Change
I
Â
Â
Â
Â
Â
Â
 Strong
Â
Â
Â
Â
Â
Â
Â
Â
 Isola,on
Â
Â
Â
Â
Â
Â
Â
 Detailed
Â
Â
Â
Â
Â
Â
Â
 Instrumenta,on
Â
Â
Â
Â
Â
Â
 Consistent
Â
Â
Â
Â
 Run,me
Â
Â
Â
 Environment
Â
Â
Â
Â
Â
Â
Â
Â
Â
Â
 Reproducible
Â
Â
Â
Â
Â
Â
Â
 Results
Â
Components that Make for Effective CI:
Typical CI Setup:
10. Continuous Deployment: Automatically Release Validated
Changes
â˘âŻ Goal: make release a non-event
â⯠Popularized by Web 2.0, but much more widely applicable
â⯠Final decision to deploy may still be manual
â˘âŻ Valuable to business and engineering sides of the house:
â⯠Selectively enabled features â feature flags
â⯠Consistent, widespread measurement
â˘âŻ Key Ingredients:
â⯠Small changes, continuously integrated
â⯠Automated infrastructure (DevOps)
â⯠Staging/test environment accurately models production