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

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

Continuous Delivery. Alejandro Ruiz

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

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

ACCELERATE DEVOPS USING OPENSHIFT PAAS

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

DevOps: Development Challenges and New Approaches

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

Urbancode Deploy Overview

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

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

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

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

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

Fundamentals of Continuous Integration

Building, testing and deploying mobile apps with Jenkins & friends

DevOps. Josh Preston Solutions Architect Stardate

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

Jenkins and Chef Infrastructure CI and Application Deployment

Continuous Integration

Continuous Delivery. Ariel Alonso, IPC

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

DevOps. Jesse Pai Robert Monical 8/14/2015

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

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

How to Optimize Automated Testing with Everyone's Favorite Butler

SMZ. SocialMedia. Z olutions

DevOps Course Content

DevOps for the Mainframe

GETTING STARTED WITH CONTINUOUS DELIVERY. Lana wcgp.co

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

DevOps Stack. Reid Holmes. Chris Parnin:

Agility via Software Engineering Practices

Continuous Integration: Put it at the heart of your development

Configuration Management Evolution at CERN. Gavin

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

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

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Enabling Continuous Delivery for Java Projects with Oracle Cloud Services (Oracle PaaS) Siva Rama Krishna Oracle India

Continuous Integration: A case study

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Distributed Agile Development in the Cloud

Building a Continuous Integration Pipeline with Docker

Continuous Integration

Git Branching for Continuous Delivery

Java Software Quality Tools and techniques

Jenkins: The Definitive Guide

Establish a Continuous Delivery Pipeline: IBM UrbanCode Deploy

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

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

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

The Continuous Delivery Tool Chain: So Many Choices!

Continuous Integration and Delivery at NSIDC

Continuous Integration Multi-Stage Builds for Quality Assurance

Web Developer Toolkit for IBM Digital Experience

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

Software infrastructure for Java development projects

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

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

Java PaaS Enabling CI, CD, and DevOps

Agile ALM. Lightweight tools and Agile strategies MANNING MICHAEL HUTTERMANN. Shelter Island

The Importance of Continuous Integration for Quality Assurance Teams

<Insert Picture Here> Considerations for Enterprise Cloud Computing

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

Organising Massive Test bol.com. Jeroen Ruijgers and Viktor Clerc

Continuous Integration using Docker & Jenkins

CARMEN DEARDO DEVOPS TECHNOLOGY LEADER, NATIONWIDE INSURANCE

White Paper Server. SUSE Linux Enterprise Server 12 Modules

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Data Center Automation with YADT

"Build and Test in the Cloud "

Continuous Delivery for Force.com

DevOps to Enterprise Agile

Automation and Virtualization, the pillars of Continuous Testing

Best Overall Use of Technology. Jaspersoft

Continuous Delivery by example.net

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

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

What Is the Cloud?

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

Service Orchestration

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

IT Home 2015 DevOps 研 討 會

Continuous integration with Jenkins CI

You ll need to have: It d be great if you have:

Transcription:

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS @pascal_dufour & @hrietman

INTRODUCTION Pascal Dufour Agile Tester @Pascal_Dufour Harald Rietman Developer Scrum Master @hrietman

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

GOALS Predictability Quality Speed

CONTINUOUS IMPROVEMENT CYCLE Requires: Discipline & Responsibility

PUSH VS. PULL

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

STOP THE LINE!

WHAT IS CONTINUOUS DELIVERY Continuous Delivery pipeline Automation Manual control Feedback

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

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

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

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?

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

MANUAL TESTING Still required: Smoke testing 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 Manual testing is (still) necessary Pull vs Push Dashboard

THANK YOU FOR YOUR ATTENTION ANY QUESTIONS?

CONTACT INFORMATION Pascal.Dufour@codecentric.nl +31 (0) 6 819 288 98 @pascal_dufour Harald.Rietman@codecentric.nl +31 (0) 6 549 633 47 @hrietman See our website for more information: http://www.codecentric.nl/portfolio/continuous-delivery/