SlideShare a Scribd company logo
Szczepan Faber 
I’m obsessed with quality 
I coached teams 
I preached at conferences 
I’m test driven 
Every test is neat and fast 
Coverage is 90%+ 
and I release every 2 years… WTF?
Evolution 
Continuous Delivery 
is a black belt in Continuous Integration 
C.D. is like C.I. evolved
Mindset not a tool 
C.I: keeps software ready 
for development and validation 
gives quick feedback about the correctness 
C.D: keeps software ready 
for the release 
gives quick feedback about the business value
Principles 
Every build is a release candidate 
Automate 
Have quality automated tests 
More info: 
read the book :) 
see Jez Humble’s videos on the web
Menu 
How Mockito does it 
How Gradle does it 
How big and famous do it
2007/2008 
beautiful tests 
less brittleness 
easy to write
test code is code 
proud of the code
Recipe 
+
Mockito popularity 
9th java library or maybe 4th?
Problem 
I’m obsessed with quality 
I coached teams 
I preached at conferences 
I’m test driven 
Every test is neat and fast 
Coverage is 90%+ 
and I release every 2 years… WTF?
Deliver! 
Quality is irrelevant 
What matters is “quality delivered”
Mockito 1.9.* 
time consuming release notes creation 
rare releases 
release fear 
demotivating growing backlog 
concerned community
Mockito 1.10.* 
● time consuming release notes creation 
● rare releases 
● release fear 
● demotivating growing backlog 
● concerned community 
Challenges: 
● automation 
● quality assurance
Mockito’s model 
push == new version (not snapshot) 
release notes and docs 
release notes automated 
can release from a phone 
~10 minutes 
new energy
Tools
Integration
Travis CI and GitHub (via Gradle) 
Travis CI can read and write to GitHub 
OAuth2 protocol 
Travis CI environment variables encryption 
GitHub REST API
Travis CI and Bintray 
Bintray and jcenter 
Gradle Bintray plugin 
Bintray REST API
http://blog.bintray.com
Continuous Delivery 
Releasing is fun instead of a chore 
Working on a feature or a bug is exciting 
Releasing is part of regular routine 
“Make releasing boring. No more adrenaline.” 
~Jezz Humble
Mockito’s continuous 
delivery model 
wound’t be possible 
without...
Gradle’s release model 
Release every ~2 months 
Major version release every 1-2 years 
Nightly builds 
Lots of automated validation 
Very credible tests
Challenges 
Fast full feedback cycle from automated checks 
Huge amounts of automated tests 
Cross-platform testing 
Automated performance tests 
Flaky tests 
Culprit detection
Patterns
Flaky tests 
What can we do about flaky tests? 
Flaky tests are a part the world 
Understand them. Model them. Automate them. 
Eliminate the the expensive flaky tests regularly.
Test selection 
Do I need to invoke all available tests to 
validate my change?
Dry-running a change 
How can I ensure that my change 
does not break the build?
Culprit detection 
How to track down a test failure to a commit?
Good version 
What is the “last known good” version?
Enterprise dependencies 
Does my change breaks components that 
depend on me?
Perceptual diffs 
“The Secret to Safe Continuous Deployment” 
~Google developers
Thanks! 
Continous Delivery is a mindset 
Start slowly and incrementally 
Automate more 
Code is worth zero until released 
Szczepan Faber 
Engineer, coach, consultant 
@szczepiq

More Related Content

What's hot

Five steps towards your testing dream
Five steps towards your testing dreamFive steps towards your testing dream
Five steps towards your testing dream
Lisa Gagarina
 
Strategie di testing: Spring Boot loves Kotlin
Strategie di testing: Spring Boot loves KotlinStrategie di testing: Spring Boot loves Kotlin
Strategie di testing: Spring Boot loves Kotlin
Marco Fracassi
 
Unit testing in swift 2 - The before & after story
Unit testing in swift 2 - The before & after storyUnit testing in swift 2 - The before & after story
Unit testing in swift 2 - The before & after story
Jorge Ortiz
 
Unit tests 101
Unit tests 101Unit tests 101
Unit tests 101
Guy Yogev
 
TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018
Paulo Clavijo
 
Driving development in PHP
Driving development in PHPDriving development in PHP
Driving development in PHP
Eduardo Gulias Davis
 
Reversed Tests Pyramid - Agile Prague 2014
Reversed Tests Pyramid - Agile Prague 2014Reversed Tests Pyramid - Agile Prague 2014
Reversed Tests Pyramid - Agile Prague 2014
Wiktor Żołnowski
 
Developer Testing
Developer TestingDeveloper Testing
Developer Testing
Chris Wallace
 
Buildbot
BuildbotBuildbot
Buildbot
williewu
 
The perfect PR
The perfect PR  The perfect PR
The perfect PR
Patricia Gao
 
Tdd
TddTdd
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
TDC2016POA | Trilha DevOps - DevOps Anti-PatternsTDC2016POA | Trilha DevOps - DevOps Anti-Patterns
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
tdc-globalcode
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
Christopher Cundill
 
Hablemos de CI
Hablemos de CIHablemos de CI
Hablemos de CI
Edson Chávez Montaño
 
QA 4 python
QA 4 pythonQA 4 python
QA 4 python
BeDjango
 
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone beforeJAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
jazoon13
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
OutSystems
 
Tdd
TddTdd
PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with Magento
Tu Hoang
 
Java Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDDJava Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDD
Patrick Kostjens
 

What's hot (20)

Five steps towards your testing dream
Five steps towards your testing dreamFive steps towards your testing dream
Five steps towards your testing dream
 
Strategie di testing: Spring Boot loves Kotlin
Strategie di testing: Spring Boot loves KotlinStrategie di testing: Spring Boot loves Kotlin
Strategie di testing: Spring Boot loves Kotlin
 
Unit testing in swift 2 - The before & after story
Unit testing in swift 2 - The before & after storyUnit testing in swift 2 - The before & after story
Unit testing in swift 2 - The before & after story
 
Unit tests 101
Unit tests 101Unit tests 101
Unit tests 101
 
TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018
 
Driving development in PHP
Driving development in PHPDriving development in PHP
Driving development in PHP
 
Reversed Tests Pyramid - Agile Prague 2014
Reversed Tests Pyramid - Agile Prague 2014Reversed Tests Pyramid - Agile Prague 2014
Reversed Tests Pyramid - Agile Prague 2014
 
Developer Testing
Developer TestingDeveloper Testing
Developer Testing
 
Buildbot
BuildbotBuildbot
Buildbot
 
The perfect PR
The perfect PR  The perfect PR
The perfect PR
 
Tdd
TddTdd
Tdd
 
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
TDC2016POA | Trilha DevOps - DevOps Anti-PatternsTDC2016POA | Trilha DevOps - DevOps Anti-Patterns
TDC2016POA | Trilha DevOps - DevOps Anti-Patterns
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
Hablemos de CI
Hablemos de CIHablemos de CI
Hablemos de CI
 
QA 4 python
QA 4 pythonQA 4 python
QA 4 python
 
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone beforeJAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
 
Tdd
TddTdd
Tdd
 
PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with Magento
 
Java Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDDJava Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDD
 

Similar to JDD2014: Continuous delivery: capitalizing high quality automated tests - Szczepan Faber

Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
jaredrrichardson
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
Agile Montréal
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
Michele Orselli
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010
Klocwork
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
Tomas Riha
 
A Test Manifesto 2014.03.26
A Test Manifesto 2014.03.26A Test Manifesto 2014.03.26
A Test Manifesto 2014.03.26
Julio Ramirez
 
Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)
Paul Boocock
 
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatDominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
mdevtalk
 
Beyond Agile Software
Beyond Agile SoftwareBeyond Agile Software
Beyond Agile Software
Gabriel Hamilton
 
5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development
Arin Sime
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
Nitin Bhide
 
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
Agile đây Vietnam
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
Boris Dominic
 
Let's review it: What designers can learn from (code) review
Let's review it: What designers can learn from (code) reviewLet's review it: What designers can learn from (code) review
Let's review it: What designers can learn from (code) review
Ida Aalen
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
Sunil Dalal
 
Practical Devops and Continous Delivery
Practical Devops and Continous DeliveryPractical Devops and Continous Delivery
Practical Devops and Continous Delivery
Anuraj S.L
 
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Hugo Messer
 
Continuous delivery @ hi q
Continuous delivery @ hi qContinuous delivery @ hi q
Continuous delivery @ hi q
Tomas Riha
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
Mohamed Samy
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
Andrea Tino
 

Similar to JDD2014: Continuous delivery: capitalizing high quality automated tests - Szczepan Faber (20)

Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
A Test Manifesto 2014.03.26
A Test Manifesto 2014.03.26A Test Manifesto 2014.03.26
A Test Manifesto 2014.03.26
 
Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)Continuously delivering software to big brands (fullscreen edition)
Continuously delivering software to big brands (fullscreen edition)
 
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatDominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
 
Beyond Agile Software
Beyond Agile SoftwareBeyond Agile Software
Beyond Agile Software
 
5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Let's review it: What designers can learn from (code) review
Let's review it: What designers can learn from (code) reviewLet's review it: What designers can learn from (code) review
Let's review it: What designers can learn from (code) review
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
 
Practical Devops and Continous Delivery
Practical Devops and Continous DeliveryPractical Devops and Continous Delivery
Practical Devops and Continous Delivery
 
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
 
Continuous delivery @ hi q
Continuous delivery @ hi qContinuous delivery @ hi q
Continuous delivery @ hi q
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 

Recently uploaded

The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
alowpalsadig
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
DevOps Consulting Company | Hire DevOps Services
DevOps Consulting Company | Hire DevOps ServicesDevOps Consulting Company | Hire DevOps Services
DevOps Consulting Company | Hire DevOps Services
seospiralmantra
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 

Recently uploaded (20)

The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
DevOps Consulting Company | Hire DevOps Services
DevOps Consulting Company | Hire DevOps ServicesDevOps Consulting Company | Hire DevOps Services
DevOps Consulting Company | Hire DevOps Services
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 

JDD2014: Continuous delivery: capitalizing high quality automated tests - Szczepan Faber

  • 1. Szczepan Faber I’m obsessed with quality I coached teams I preached at conferences I’m test driven Every test is neat and fast Coverage is 90%+ and I release every 2 years… WTF?
  • 2.
  • 3. Evolution Continuous Delivery is a black belt in Continuous Integration C.D. is like C.I. evolved
  • 4. Mindset not a tool C.I: keeps software ready for development and validation gives quick feedback about the correctness C.D: keeps software ready for the release gives quick feedback about the business value
  • 5. Principles Every build is a release candidate Automate Have quality automated tests More info: read the book :) see Jez Humble’s videos on the web
  • 6.
  • 7. Menu How Mockito does it How Gradle does it How big and famous do it
  • 8. 2007/2008 beautiful tests less brittleness easy to write
  • 9. test code is code proud of the code
  • 11. Mockito popularity 9th java library or maybe 4th?
  • 12. Problem I’m obsessed with quality I coached teams I preached at conferences I’m test driven Every test is neat and fast Coverage is 90%+ and I release every 2 years… WTF?
  • 13. Deliver! Quality is irrelevant What matters is “quality delivered”
  • 14. Mockito 1.9.* time consuming release notes creation rare releases release fear demotivating growing backlog concerned community
  • 15. Mockito 1.10.* ● time consuming release notes creation ● rare releases ● release fear ● demotivating growing backlog ● concerned community Challenges: ● automation ● quality assurance
  • 16. Mockito’s model push == new version (not snapshot) release notes and docs release notes automated can release from a phone ~10 minutes new energy
  • 17. Tools
  • 19. Travis CI and GitHub (via Gradle) Travis CI can read and write to GitHub OAuth2 protocol Travis CI environment variables encryption GitHub REST API
  • 20. Travis CI and Bintray Bintray and jcenter Gradle Bintray plugin Bintray REST API
  • 22. Continuous Delivery Releasing is fun instead of a chore Working on a feature or a bug is exciting Releasing is part of regular routine “Make releasing boring. No more adrenaline.” ~Jezz Humble
  • 23. Mockito’s continuous delivery model wound’t be possible without...
  • 24. Gradle’s release model Release every ~2 months Major version release every 1-2 years Nightly builds Lots of automated validation Very credible tests
  • 25.
  • 26. Challenges Fast full feedback cycle from automated checks Huge amounts of automated tests Cross-platform testing Automated performance tests Flaky tests Culprit detection
  • 28. Flaky tests What can we do about flaky tests? Flaky tests are a part the world Understand them. Model them. Automate them. Eliminate the the expensive flaky tests regularly.
  • 29. Test selection Do I need to invoke all available tests to validate my change?
  • 30. Dry-running a change How can I ensure that my change does not break the build?
  • 31. Culprit detection How to track down a test failure to a commit?
  • 32. Good version What is the “last known good” version?
  • 33. Enterprise dependencies Does my change breaks components that depend on me?
  • 34. Perceptual diffs “The Secret to Safe Continuous Deployment” ~Google developers
  • 35. Thanks! Continous Delivery is a mindset Start slowly and incrementally Automate more Code is worth zero until released Szczepan Faber Engineer, coach, consultant @szczepiq