SlideShare une entreprise Scribd logo
1  sur  30
codecentric Nederland BV
@huibschoots & @mieldonkers
SUCCESFUL TESTING
THE CONTINUOUS DELIVERY PROCESS
codecentric Nederland BV
INTRODUCTION
Miel Donkers
Developer
@mieldonkers
Huib Schoots
Tester
@huibschoots
codecentric Nederland BV
• Experience with Continuous Delivery?
• As a tester, do you need to wait for an
acceptable release from developers?
• Loose time doing all repetitive manual stuff?
• Maintain different environments and software versions manually,
over-and-over-and-over…
• Is this really release 1.6.5?
• All sounds familiar?
TYPICAL
codecentric Nederland BV
Prod
BUILDING A RELEASE
TEST
Local
Build
Integration
server
Release
build
DEV
Acc
Test
Users
DEVDEV
codecentric Nederland BV
WHY CONTINUOUS DELIVERY
codecentric Nederland BV
WHAT IS CONTINUOUS DELIVERY
•  Continuous Delivery pipeline
•  Automation
•  Manual control
•  Feedback
codecentric Nederland BV
GOALS
•  Predictability
•  Quality
•  Speed
codecentric Nederland BV
WHAT ARE THE KEY BENEFITS OF CONTINUOUS DELIVERY?
•  Low-risk releases
•  Faster return on investment in software projects
•  Improvement of competitiveness and responsiveness
•  Quality improvement of new software versions
codecentric Nederland BV
CONTINUOUS IMPROVEMENT CYCLE
Requires:
Discipline &
Responsibility
codecentric Nederland BV
STOP THE LINE!
codecentric Nederland BV
PUSH VS. PULL
codecentric Nederland BV
ANATOMY IN DETAIL
Source
Code
Commit Stage
Compile
Commit Tests
Assemble
Code Analysis
Artifact Repository
Acceptance Stage
Configure Environment
Deploy Binaries
Smoke Test
Acceptance Tests
UAT
Configure Environment
Deploy Binaries
Smoke Test
Capacity Stage
Configure Environment
Deploy Binaries
Smoke Test
Run Capacity Tests
Production
Configure Environment
Deploy Binaries
Smoke Test
Env.&App
Config
Env.&App
Config
Version Control
Testers
Self-service
deployments
Operations
Perform push
Button releases
Developers
See code metrics
and test failures
reports
binaries
metadata binaries
reports
metadata binaries
reports
metadata
codecentric Nederland BV
WHAT ARE THE MAIN STEPS OF CONTINUOUS DELIVERY?
•  Build – compile, unit test, version, package
•  Quality – metrics, documentation
•  Test – acceptance-, regression- and performance tests
•  Provision environments – deployment to test- and staging
environment
•  Production – green/blue deployment to production
codecentric Nederland BV
MAIN STEPS TO CREATE A CONTINUOUS DELIVERY PIPELINE?
•  Getting started with virtual environments, e.g. Amazon EC2
•  Configure your Continuous Integration Server
•  Provisioning your Test, Staging and Production environments
•  Configure your Continuous Delivery Pipeline
•  Create a Dashboard of your Systems
codecentric Nederland BV
EXAMPLE
§ Elke stage een slide.
codecentric Nederland BV
WHAT ARE THE MAIN STEPS OF CONTINUOUS DELIVERY?
codecentric Nederland BV
TOOLING THAT CAN HELP YOU
codecentric Nederland BV
EXAMPLE – TECHNOLOGY STACK
•  Amazon EC2 (Virtualization, Cloud)
•  Jenkins (CI Server)
•  Git/Github (Version Control)
•  Sonar (Code Quality)
•  jUnit (Unit Tests)
•  jBehave (Acceptancetests)
•  Selenium (UI Tests)
•  Puppet (Provisioning)
•  Tomcat (Application Server)
•  Artifactory (Artifact Repository)
•  Maven (Build Tool)
•  jMeter (Performance Tests)
•  AppDynamics (Performance Tests)
•  Liquibase (DB Versioning)
codecentric Nederland BV
OUR SETUP
https://github.com/...
CD Server
Test Server
User Acceptance
Test Server
Production Cluster
Blue / Green
CD Slave
codecentric Nederland BV
EXAMPLE – DELIVERY PIPELINE 1/2
Push to Git Repo
1
Provision-Deploy
Acceptance
Commit
Trigger CD Pipeline
2
Build Source Code
3
Run Unit Tests
4
Start EC2 Image
1
Provisioning
2
DB Create Update
3
Deploy WAR
4
Start Tomcat
5
Start Selenium
1
Acceptance Test
Run AATs
2
Version Git Repo
6
Release WAR
7
Run Code Analyse
5
codecentric Nederland BV
EXAMPLE – DELIVERY PIPELINE 2/2
Run JMeter
1
Provision-Deploy
UAT
Start EC2 Image
2
Provisioning
3
DB Create Update
4
Deploy WAR
5
Start Tomcat
6
Performance
Test
Select Version
1
Provision-Deploy
PRODBLUE/GREEN
Start EC2 Image
2
Provisioning
3
DB Update
4
Deploy WAR
5
Start Tomcat
6
Select Version
1
codecentric Nederland BV
ASK YOURSELF
•  Which parts are tested how?
•  What remains to be tested?
codecentric Nederland BV
APPLICATION STACK
Apps / Services
/ Components
Application
Configuration
Middleware
Middleware
Configuration
Operating
System
OS Configuration
Hardware
TESTING
codecentric Nederland BV
WHAT DO WE TEST WHERE AND WHEN?
•  Automation is key
•  Do what we do best
•  Team effort
codecentric Nederland BV
MANUAL TESTING
Still required:
•  “Show me”
•  Exploratory testing
•  User acceptance testing
codecentric Nederland BV
ANATOMY OF A DEPLOYMENT PIPELINE
Release
•  Every change results in a trigger of the deployment process
•  Software is build once and only once
•  The same deployment process for every environment
•  Deployment in production-like environments
Commit
Automated
Acceptance Test
Automated
Capacity Test
Manual
Testing
Fast Feedback
Trust in Application Stability
Done
codecentric Nederland BV
EXAMPLE
§ Elke stage een slide.
codecentric Nederland BV
SUMMARY
•  Continuous delivery is a way to create a stable release process
•  Automated testing makes continuous delivery possible
•  Manual testing is (still) necessary
•  Pull vs Push
•  Dashboard
codecentric Nederland BV
THANK YOU FOR YOUR ATTENTION – ANY QUESTIONS?
codecentric Nederland BV
huib.schoots@codecentric.nl
+31 (0) 6 24 64 10 33
@huibschoots
miel.donkers@codecentric.nl
+31 (0) 6 51 19 77 38
@mieldonkers
See our website for more information:
http://www.codecentric.nl/portfolio/continuous-delivery/
CONTACT INFORMATION

Contenu connexe

Tendances

QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
Rodrigo Russo
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Bamdad Dashtban
 

Tendances (20)

Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containers
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDN
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cd
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous Delivery
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Continuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL ServerContinuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL Server
 
Modern devOps with Docker
Modern devOps with DockerModern devOps with Docker
Modern devOps with Docker
 
Automate your build on Android with Jenkins
Automate your build on Android with JenkinsAutomate your build on Android with Jenkins
Automate your build on Android with Jenkins
 
Continuous Integration - Mobile Practice
Continuous Integration - Mobile PracticeContinuous Integration - Mobile Practice
Continuous Integration - Mobile Practice
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101
 
Jenkins pipeline as code
Jenkins pipeline as codeJenkins pipeline as code
Jenkins pipeline as code
 
CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2
 
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
 
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
Analyze This! CloudBees Jenkins Cluster Operations and AnalyticsAnalyze This! CloudBees Jenkins Cluster Operations and Analytics
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
 
How we git - commit policy and code review
How we git - commit policy and code reviewHow we git - commit policy and code review
How we git - commit policy and code review
 

En vedette

A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
 

En vedette (12)

Introducing language technology in the editing process: How to do things righ...
Introducing language technology in the editing process: How to do things righ...Introducing language technology in the editing process: How to do things righ...
Introducing language technology in the editing process: How to do things righ...
 
Experiences in Software Testing (lecture slides)
Experiences in Software Testing (lecture slides)Experiences in Software Testing (lecture slides)
Experiences in Software Testing (lecture slides)
 
Growing Your Business Through Experimentation
Growing Your Business Through ExperimentationGrowing Your Business Through Experimentation
Growing Your Business Through Experimentation
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similaire à Succesful Testing The Continuous Delivery Process

Infrastructure under the magnifying glass
Infrastructure under the magnifying glassInfrastructure under the magnifying glass
Infrastructure under the magnifying glass
kreuzwerker GmbH
 

Similaire à Succesful Testing The Continuous Delivery Process (20)

Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)
 
Testing the continuous delivery process @dev opsdays ams 2013
Testing the continuous delivery process   @dev opsdays ams 2013Testing the continuous delivery process   @dev opsdays ams 2013
Testing the continuous delivery process @dev opsdays ams 2013
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a PlatformLinux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
 
How to Add Perfecto to Your CI
How to Add Perfecto to Your CIHow to Add Perfecto to Your CI
How to Add Perfecto to Your CI
 
Gocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentGocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous Deployment
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
CI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOUCI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOU
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environment
 
TMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael PalotasTMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael Palotas
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
Infrastructure under the magnifying glass
Infrastructure under the magnifying glassInfrastructure under the magnifying glass
Infrastructure under the magnifying glass
 

Plus de Huib Schoots

Telling the testing story - Storytelling voor testers (DUTCH)
Telling the testing story - Storytelling voor testers (DUTCH)Telling the testing story - Storytelling voor testers (DUTCH)
Telling the testing story - Storytelling voor testers (DUTCH)
Huib Schoots
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
Huib Schoots
 
Thinking and working visually for software testers - Nordic Testing Days
Thinking and working visually for software testers - Nordic Testing DaysThinking and working visually for software testers - Nordic Testing Days
Thinking and working visually for software testers - Nordic Testing Days
Huib Schoots
 
Changing the context
Changing the contextChanging the context
Changing the context
Huib Schoots
 
Boost your testing power with Exploration
Boost your testing power with ExplorationBoost your testing power with Exploration
Boost your testing power with Exploration
Huib Schoots
 

Plus de Huib Schoots (13)

Testing in modern times a story about quality and value - agile testing dev ...
Testing in modern times  a story about quality and value - agile testing dev ...Testing in modern times  a story about quality and value - agile testing dev ...
Testing in modern times a story about quality and value - agile testing dev ...
 
A road to awesomeness
A road to awesomenessA road to awesomeness
A road to awesomeness
 
Telling the testing story - Storytelling voor testers (DUTCH)
Telling the testing story - Storytelling voor testers (DUTCH)Telling the testing story - Storytelling voor testers (DUTCH)
Telling the testing story - Storytelling voor testers (DUTCH)
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
 
Thinking and working visually for software testers - Nordic Testing Days
Thinking and working visually for software testers - Nordic Testing DaysThinking and working visually for software testers - Nordic Testing Days
Thinking and working visually for software testers - Nordic Testing Days
 
Where words fail music speaks
Where words fail music speaksWhere words fail music speaks
Where words fail music speaks
 
Set your course
Set your courseSet your course
Set your course
 
Thinking and working visually for software testers
Thinking and working visually for software testersThinking and working visually for software testers
Thinking and working visually for software testers
 
Mind maps tutorial Agile Testing Days
Mind maps tutorial Agile Testing DaysMind maps tutorial Agile Testing Days
Mind maps tutorial Agile Testing Days
 
Changing the context
Changing the contextChanging the context
Changing the context
 
Testnet JuBoCo boek introductie
Testnet JuBoCo boek introductieTestnet JuBoCo boek introductie
Testnet JuBoCo boek introductie
 
Boost your testing power with Exploration
Boost your testing power with ExplorationBoost your testing power with Exploration
Boost your testing power with Exploration
 
So you think you can test?
So you think you can test?So you think you can test?
So you think you can test?
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Succesful Testing The Continuous Delivery Process

  • 1. codecentric Nederland BV @huibschoots & @mieldonkers SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS
  • 2. codecentric Nederland BV INTRODUCTION Miel Donkers Developer @mieldonkers Huib Schoots Tester @huibschoots
  • 3. codecentric Nederland BV • Experience with Continuous Delivery? • As a tester, do you need to wait for an acceptable release from developers? • Loose time doing all repetitive manual stuff? • Maintain different environments and software versions manually, over-and-over-and-over… • Is this really release 1.6.5? • All sounds familiar? TYPICAL
  • 4. codecentric Nederland BV Prod BUILDING A RELEASE TEST Local Build Integration server Release build DEV Acc Test Users DEVDEV
  • 5. codecentric Nederland BV WHY CONTINUOUS DELIVERY
  • 6. codecentric Nederland BV WHAT IS CONTINUOUS DELIVERY •  Continuous Delivery pipeline •  Automation •  Manual control •  Feedback
  • 7. codecentric Nederland BV GOALS •  Predictability •  Quality •  Speed
  • 8. codecentric Nederland BV WHAT ARE THE KEY BENEFITS OF CONTINUOUS DELIVERY? •  Low-risk releases •  Faster return on investment in software projects •  Improvement of competitiveness and responsiveness •  Quality improvement of new software versions
  • 9. codecentric Nederland BV CONTINUOUS IMPROVEMENT CYCLE Requires: Discipline & Responsibility
  • 12. codecentric Nederland BV ANATOMY IN DETAIL Source Code Commit Stage Compile Commit Tests Assemble Code Analysis Artifact Repository Acceptance Stage Configure Environment Deploy Binaries Smoke Test Acceptance Tests UAT Configure Environment Deploy Binaries Smoke Test Capacity Stage Configure Environment Deploy Binaries Smoke Test Run Capacity Tests Production Configure Environment Deploy Binaries Smoke Test Env.&App Config Env.&App Config Version Control Testers Self-service deployments Operations Perform push Button releases Developers See code metrics and test failures reports binaries metadata binaries reports metadata binaries reports metadata
  • 13. codecentric Nederland BV WHAT ARE THE MAIN STEPS OF CONTINUOUS DELIVERY? •  Build – compile, unit test, version, package •  Quality – metrics, documentation •  Test – acceptance-, regression- and performance tests •  Provision environments – deployment to test- and staging environment •  Production – green/blue deployment to production
  • 14. codecentric Nederland BV MAIN STEPS TO CREATE A CONTINUOUS DELIVERY PIPELINE? •  Getting started with virtual environments, e.g. Amazon EC2 •  Configure your Continuous Integration Server •  Provisioning your Test, Staging and Production environments •  Configure your Continuous Delivery Pipeline •  Create a Dashboard of your Systems
  • 16. codecentric Nederland BV WHAT ARE THE MAIN STEPS OF CONTINUOUS DELIVERY?
  • 17. codecentric Nederland BV TOOLING THAT CAN HELP YOU
  • 18. codecentric Nederland BV EXAMPLE – TECHNOLOGY STACK •  Amazon EC2 (Virtualization, Cloud) •  Jenkins (CI Server) •  Git/Github (Version Control) •  Sonar (Code Quality) •  jUnit (Unit Tests) •  jBehave (Acceptancetests) •  Selenium (UI Tests) •  Puppet (Provisioning) •  Tomcat (Application Server) •  Artifactory (Artifact Repository) •  Maven (Build Tool) •  jMeter (Performance Tests) •  AppDynamics (Performance Tests) •  Liquibase (DB Versioning)
  • 19. codecentric Nederland BV OUR SETUP https://github.com/... CD Server Test Server User Acceptance Test Server Production Cluster Blue / Green CD Slave
  • 20. codecentric Nederland BV EXAMPLE – DELIVERY PIPELINE 1/2 Push to Git Repo 1 Provision-Deploy Acceptance Commit Trigger CD Pipeline 2 Build Source Code 3 Run Unit Tests 4 Start EC2 Image 1 Provisioning 2 DB Create Update 3 Deploy WAR 4 Start Tomcat 5 Start Selenium 1 Acceptance Test Run AATs 2 Version Git Repo 6 Release WAR 7 Run Code Analyse 5
  • 21. codecentric Nederland BV EXAMPLE – DELIVERY PIPELINE 2/2 Run JMeter 1 Provision-Deploy UAT Start EC2 Image 2 Provisioning 3 DB Create Update 4 Deploy WAR 5 Start Tomcat 6 Performance Test Select Version 1 Provision-Deploy PRODBLUE/GREEN Start EC2 Image 2 Provisioning 3 DB Update 4 Deploy WAR 5 Start Tomcat 6 Select Version 1
  • 22. codecentric Nederland BV ASK YOURSELF •  Which parts are tested how? •  What remains to be tested?
  • 23. codecentric Nederland BV APPLICATION STACK Apps / Services / Components Application Configuration Middleware Middleware Configuration Operating System OS Configuration Hardware TESTING
  • 24. codecentric Nederland BV WHAT DO WE TEST WHERE AND WHEN? •  Automation is key •  Do what we do best •  Team effort
  • 25. codecentric Nederland BV MANUAL TESTING Still required: •  “Show me” •  Exploratory testing •  User acceptance testing
  • 26. codecentric Nederland BV ANATOMY OF A DEPLOYMENT PIPELINE Release •  Every change results in a trigger of the deployment process •  Software is build once and only once •  The same deployment process for every environment •  Deployment in production-like environments Commit Automated Acceptance Test Automated Capacity Test Manual Testing Fast Feedback Trust in Application Stability Done
  • 28. codecentric Nederland BV SUMMARY •  Continuous delivery is a way to create a stable release process •  Automated testing makes continuous delivery possible •  Manual testing is (still) necessary •  Pull vs Push •  Dashboard
  • 29. codecentric Nederland BV THANK YOU FOR YOUR ATTENTION – ANY QUESTIONS?
  • 30. codecentric Nederland BV huib.schoots@codecentric.nl +31 (0) 6 24 64 10 33 @huibschoots miel.donkers@codecentric.nl +31 (0) 6 51 19 77 38 @mieldonkers See our website for more information: http://www.codecentric.nl/portfolio/continuous-delivery/ CONTACT INFORMATION