Continuous Integration

Similar documents
Delivering Quality Software with Continuous Integration

Software infrastructure for Java development projects

Java Software Quality Tools and techniques

Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911

Continuous Integration

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

Meister Going Beyond Maven

Software Continuous Integration & Delivery

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Continuous Integration Multi-Stage Builds for Quality Assurance

Software Development In the Cloud Cloud management and ALM

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Build management & Continuous integration. with Maven & Hudson

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

Global Software Change Management for PVCS Version Manager

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

HP ALM11 & MS VS/TFS2010

Software Construction

Continuous Delivery. Alejandro Ruiz

Accelerate Software Delivery

Enhancing The ALM Experience

IKAN ALM and Collabnet TeamForge

Software Configuration Management and Continuous Integration

Introduction to Programming Tools. Anjana & Shankar September,2010

Continuous Integration on System z

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

SOFTWARE DEVELOPMENT BASICS SED

Content. Development Tools 2(63)

Maven or how to automate java builds, tests and version management with open source tools

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

SA4 Software Developer Survey Survey Specification v2.2

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

CONTINUOUS INTEGRATION

Open Source Tools. The Magazine for Professional Testers. December 2010

Modulo II Qualidade de Software com Maven

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Upping the game. Improving your software development process

Jenkins: The Definitive Guide

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Service Governance and Virtualization For SOA

Continuous Integration: Put it at the heart of your development

TeamCity A Professional Solution for Delivering Quality Software, on Time

Taking the First Steps in. Web Load Testing. Telerik

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

"Build and Test in the Cloud "

Continuous Integration

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Continuous Integration Using Cruise Control

How To Write Unit Tests In A Continuous Integration

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira

Sonatype CLM for Maven. Sonatype CLM for Maven

CONTINUOUS INTEGRATION. Introduction

Chapter 13 Configuration Management

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Flexible Engineering Process Automation Process: Continuous Integration & Test

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC

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

White Paper. Challenges and Characteristics of Enterprise Continuous Integration

Continuous Delivery Maturity Model

Build Management. Context. Learning Objectives

Continuous Integration: Aspects in Automation and Configuration Management

Improving your Drupal Development workflow with Continuous Integration

Introduction to Agile Software Development Process. Software Development Life Cycles

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Software Configuration Management. Addendum zu Kapitel 13

Database Build and Release will get started soon

Continuous integration End of the big bang integration era

Configuration & Build Management

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

White Paper. Software Development Best Practices: Enterprise Code Portal

Kevin Lee Technical Consultant As part of a normal software build and release process

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.

Realizing Continuous Performance Management

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

How To Achieve Continuous Delivery

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

Maintaining Quality in Agile Environment

Mastering Continuous Integration with Jenkins

ESB Features Comparison

EXHIBIT L. Application Development Processes

Why HTML5 Tests the Limits of Automated Testing Solutions

Process Increments: An Agile Approach to Software Process Improvement

Reduce Medical Device Compliance Costs with Best Practices.

The Benefits of Utilizing a Repository Manager

Solving the Software Quality Challenges of Agile Development

Software configuration management

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

Transcription:

Continuous Integration Improving Software Quality with Continuous Integration Continuous Integration In a nutshell Continuous Integration (CI) is: Assembling software every time code changes CI is important because: Integrating software often decreases the life-span of a defect Build Better Code Faster 2007, Stelligent Incorporated 2

Continuous Integration in Practice Continuous Integration requirements: A reliable build process Ant, Maven, etc An SCM system Subversion, Perforce, CVS, etc A Continuous Integration server CruiseControl, Hudson, etc 2007, Stelligent Incorporated 3 Life with Continuous Integration 1. Developer checks out working copy of code a. Makes modifications & runs local build i. Does an update 2. If build was successful, checks in modifications 3. Moves on to next task 2007, Stelligent Incorporated 4

Life with Continuous Integration CI server is always listening 1. If SCM is modified a. CI server assembles software i. If assembly fails, CI server notifies interested parties b. CI server posts results and resumes listening 2007, Stelligent Incorporated 5 Continuous Integration Implemented 2007, Stelligent Incorporated 6

Successful CI Process Three prevailing principles: 1. Expand the definition of software defect 2. Ensure a short lifetime for defects introduced 3. Extend defect visibility for all stakeholders 2007, Stelligent Incorporated 7 What is a Defect? Is it just not meeting the specification? Yes, but specifications can be hard to nail down Can t validate them until later cycles Expand definition of defect Create specific gates Exercise gates earlier 2007, Stelligent Incorporated 8

Expanding Defect Definition Finer grained: Developer tests didn t pass Developer tests weren t written Code coverage dropped Code complexity increased Coverage dropped and complexity increased! 2007, Stelligent Incorporated 9 Ensuring Short Defect Lifecycle Broaden the value of a build No longer just a compilation process: 1. Compile 2. Test 3. Inspect 4. Deploy 2007, Stelligent Incorporated 10

Broad Software Builds Broad software builds act as quality gates Inexpensive Continuous Rapid 2007, Stelligent Incorporated 11 Broad Builds Increase Visibility Visibility is transparency What code changed? Who changed that code? How well was the code tested? How complex was the code? 2007, Stelligent Incorporated 12

Broadening the Build Process Testing is obvious, right? Does assume people author them! For every build, execute developer tests Test failure is a build failure Monitor test velocity as well 2007, Stelligent Incorporated 13 Software Inspections Code reviews are excellent, but Manual Error prone Disappear when schedules are tight Humans focus on high level details Machines focus on low level details 2007, Stelligent Incorporated 14

Software Inspections Machines make code reviews more effective Cheap to obtain and run Many open source tools available Need CPUs to parse files Output is objective Interpretation is subjective 2007, Stelligent Incorporated 15 Software Inspection Categories Five primary groups: Complexity Duplication Dependencies Coding standards Code coverage 2007, Stelligent Incorporated 16

Code Complexity Complexity correlates to errors Cyclomatic complexity Measures paths through code More paths increase cost to test Decrease comprehensibility 2007, Stelligent Incorporated 17 Java JavaNCSS PMD Code Complexity Tools 2007, Stelligent Incorporated 18

Code Duplication Duplicate code can replicate: Defects Poor design & coding Unknown duplication will haunt you 2007, Stelligent Incorporated 19 Java CDP Simian Code Duplication Tools 2007, Stelligent Incorporated 20

Dependencies Understanding code dependencies Facilitates understanding LOE to change Brittleness 2007, Stelligent Incorporated 21 Java JDepend Dependency Tools 2007, Stelligent Incorporated 22

Coding Standards Standards can Enforce consistency Increase comprehensibility Decrease defects via common defect patterns 2007, Stelligent Incorporated 23 Coding Standards Tools Java Check Style PMD 2007, Stelligent Incorporated 24

Code Coverage Measuring code coverage Facilitates understanding what s not tested Promotes collaboration between development and QA 2007, Stelligent Incorporated 25 Java Cobertura Clover Code Coverage Tools 2007, Stelligent Incorporated 26

Extending Visibility Run inspections often & publish results Cheap quality gates Foster accountability Cultivate collaboration You can t improve what you can t measure 2007, Stelligent Incorporated 27 Thank you! Check out www.testearly.com www.thediscoblog.com Continuous Integration: Improving Software Quality and Reducing Risk, June 2007 2007, Stelligent Incorporated 28

Andrew Glover aglover@stelligent.com Blogs: www.testearly.com www.integratebutton.com www.thediscoblog.com