SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS



Similar documents
SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Continuous Delivery Workshop

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Continuous Delivery. Alejandro Ruiz

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Urbancode Deploy Overview

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

Building, testing and deploying mobile apps with Jenkins & friends

Jenkins and Chef Infrastructure CI and Application Deployment

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Fundamentals of Continuous Integration

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

How to Optimize Automated Testing with Everyone's Favorite Butler

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

SMZ. SocialMedia. Z olutions

DevOps Course Content

Continuous Delivery: implementation considerations. Léon Hagenaars-Keus Edwin van Dillen

Continuous Integration

DevOps. Jesse Pai Robert Monical 8/14/2015

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Fast Feedback: Jenkins + Functional and Non-Functional Mobile App Testing Without Pulling Your Hair

How To Write Unit Tests In A Continuous Integration

HOW OPEN SOURCE IS DRIVING DEVOPS INNOVATION. Gordon William Cloud & DevOps Product Strategy, Red Hat 17 August 2015

Continuous Integration. CSC 440: Software Engineering Slide #1

DevOps for the Mainframe

DevOps: Development Challenges and New Approaches

GETTING STARTED WITH CONTINUOUS DELIVERY. Lana wcgp.co

DevOps Stack. Reid Holmes. Chris Parnin:

Continuous Integration: Put it at the heart of your development

Continuous Delivery. Ariel Alonso, IPC

Continuous Integration

Java Software Quality Tools and techniques

Jenkins: The Definitive Guide

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

The Role of Feedback in Continuous Integration, Continuous Delivery and Agile ALM

DevOps. Josh Preston Solutions Architect Stardate

Continuous Integration and Delivery at NSIDC

Continuous Integration Multi-Stage Builds for Quality Assurance

Web Developer Toolkit for IBM Digital Experience

Continuous Application Delivery From concept to reality. Carsten Lentz Sr. Solution strategist

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Continuous Integration: A case study

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

Building a Continuous Integration Pipeline with Docker

Distributed Agile Development in the Cloud

Git Branching for Continuous Delivery

Collaborative DevOps Learn the magic of Continuous Delivery. Saurabh Agarwal Product Engineering, DevOps Solutions

<Insert Picture Here> Considerations for Enterprise Cloud Computing

Establish a Continuous Delivery Pipeline: IBM UrbanCode Deploy

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg

Agility via Software Engineering Practices

APM & DEVOPS CHALLENGES & ENABLERS. M. Hanin, Hannover,

Continuous Integration using Docker & Jenkins

The Continuous Delivery Tool Chain: So Many Choices!

Data Center Automation with YADT

Software infrastructure for Java development projects

Massively! Continuous Integration! A case study for Jenkins at cloud-scale

@jenkinsconf. Maintaining huge Jenkins clusters - Have we reached the limit of Jenkins?

Continuous Delivery Software-Deployments ohne graue Haare. 3. April 2012 Corsin Decurtins

WHITE PAPER. Getting started with Continuous Integration in software development. - Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

Java PaaS Enabling CI, CD, and DevOps

OpenShift Enterprise PaaS by Red Hat. Andrey Markelov RHCA Red Hat, Presales Solution Architect

Configuration Management Evolution at CERN. Gavin

The Importance of Continuous Integration for Quality Assurance Teams

DevOps: Multiplatform Application Deployment

Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Achieving Continuous Integration with Drupal

Upping the game. Improving your software development process

"Build and Test in the Cloud "

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

White Paper Server. SUSE Linux Enterprise Server 12 Modules

Modern Web development and operations practices. Grig Gheorghiu VP Tech Operations Nasty Gal

Automation and Virtualization, the pillars of Continuous Testing

My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies

CARMEN DEARDO DEVOPS TECHNOLOGY LEADER, NATIONWIDE INSURANCE

Continuous Delivery for Force.com

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise

ANSIBLE TOWER IN THE SOFTWARE DEVELOPMENT LIFECYCLE

Continuous Integration & Automated Testing in a multisite.net/cloud Project

Continuous integration with Jenkins CI

27 th March 2015 Istanbul, Turkey. Performance Testing Best Practice

Transcription:

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS @huibschoots & @mieldonkers

INTRODUCTION Huib Schoots Tester @huibschoots Miel Donkers Developer @mieldonkers

TYPICAL 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?

BUILDING A RELEASE Prod Acc Local Build Integration server Release build Test Users DEV DEV DEV TEST

WHY CONTINUOUS DELIVERY

WHAT IS CONTINUOUS DELIVERY Continuous Delivery pipeline Automation Manual control Feedback

GOALS Predictability Quality Speed

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

CONTINUOUS IMPROVEMENT CYCLE Requires: Discipline & Responsibility

STOP THE LINE!

PUSH VS. PULL

ANATOMY IN DETAIL Source Code Env.&App Config Version Control Env.&App Config Developers See code metrics and test failures Testers Self-service deployments UAT Configure Environment Deploy Binaries Smoke Test Commit Stage Acceptance Stage Compile Commit Tests Assemble Code Analysis Configure Environment Deploy Binaries Smoke Test Acceptance Tests Capacity Stage Configure Environment Deploy Binaries Smoke Test Run Capacity Tests reports binaries metadata binaries reports metadata Operations Perform push Button releases binaries Production Configure Environment Deploy Binaries Smoke Test reports metadata Artifact Repository

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

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

EXAMPLE! Elke stage een slide.

WHAT ARE THE MAIN STEPS OF CONTINUOUS DELIVERY?

TOOLING THAT CAN HELP YOU

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)

OUR SETUP https://github.com/... Production Cluster Blue / Green CD Server User Acceptance Test Server CD Slave Test Server

EXAMPLE DELIVERY PIPELINE 1/2 Commit Provision-Deploy Acceptance Acceptance Test Push to Git Repo 1 Start EC2 Image 1 Start Selenium 1 2 Trigger CD Pipeline Provisioning 2 Run AATs 2 Build Source Code 3 DB Create Update 3 4 Run Unit Tests 5 Run Code Analyse 6 Version Git Repo Deploy WAR Start Tomcat 4 5 Release WAR 7

EXAMPLE DELIVERY PIPELINE 2/2 Performance Test Provision-Deploy UAT Provision-Deploy PRODBLUE/GREEN Run JMeter 1 Select Version 1 Select Version 1 Start EC2 Image 2 Start EC2 Image 2 Provisioning 3 Provisioning 3 DB Create Update 4 DB Update 4 Deploy WAR 5 Deploy WAR 5 Start Tomcat 6 Start Tomcat 6

ASK YOURSELF Which parts are tested how? What remains to be tested?

APPLICATION STACK Apps / Services / Components Application Configuration Middleware Operating System Middleware Configuration OS Configuration TESTING Hardware

WHAT DO WE TEST WHERE AND WHEN? Automation is key Do what we do best Team effort

MANUAL TESTING Still required: Show me Exploratory testing User acceptance testing

ANATOMY OF A DEPLOYMENT PIPELINE Fast Feedback Commit Automated Acceptance Test Automated Capacity Test Manual Testing Done Release Trust in Application Stability 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

EXAMPLE! Elke stage een slide.

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

THANK YOU FOR YOUR ATTENTION ANY QUESTIONS?

CONTACT INFORMATION 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/