The 3C Approach for Agile Quality Assurance Continuous Integration, Continuous Measurement, Continuous Improvement

Similar documents
The 3C Approach for Agile Scrum Software Methodology Jisha Johns, Akhil P Sivan, Prof. K Balachandran, Prof. B R Prathap

Continuous Integration in Kieker

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

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

Code Quality Assurance. Peter Kofler, Code Cop FH Technikum Wien, February 2010

Java Software Quality Tools and techniques

Continuous Integration

Software Construction

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

Continuous Delivery. Alejandro Ruiz

Software infrastructure for Java development projects

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

Accelerate Software Delivery

Keywords Continuous Integration, Engineering Pipeline, SonarQube, Test Orchestration.

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

Fail early, fail often, succeed sooner!

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Practical QA in a Nutshell

How To Do Continuous Integration

How the Open Source tools and spirit enable better projects July 09 th 2009

SMZ. SocialMedia. Z olutions

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

Effective feedback from quality tools during development

Integrate Testing into Continuous Delivery

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Automating the Nengo build process

Mining Metrics to Predict Component Failures

Benefits of Test Automation for Agile Testing

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich

Good Software. Lecture 6 GSL Peru 2014

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Continuous Integration Multi-Stage Builds for Quality Assurance

Build management & Continuous integration. with Maven & Hudson

Testing and Quality in Agile Development Speaker: Allan Watty Company: ABB Inc Website:

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

Introduction to Automated Testing

Continuous Integration

Agile Delivery Framework Automation & Deployment With Puppet

Software Qualimetry at Schneider Electric: a field background

NokiaSiemens and Agile Development by Petri Haapio JAOO 2008

Patterns to Introduce Continuous Integration to Organizations

How To Write Unit Tests In A Continuous Integration

Upping the game. Improving your software development process

Continuous Integration Processes and SCM To Support Test Automation

Teaching Agile Software Development at University Level 1

Advanced Test-Driven Development

A Practical Guide to implementing Agile QA process on Scrum Projects

Basic Trends of Modern Software Development

Java course - IAG0040. Unit testing & Agile Software Development

Delivering Quality Software with Continuous Integration

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

A Comparison of Issues and Advantages in Agile and Incremental Development between State of the Art and an Industrial Case

Integrating Security into the Application Development Process. Jerod Brennen, CISSP CTO & Principal Security Consultant, Jacadis

Software Measurement and Estimation

Crowdsourcing suggestions to programming problems for dynamic web development languages

RepoGuard Validation Framework for Version Control Systems

How Spotify Tests World Class Apps Alexander Andelkovic, Spotify

Test-Driven Development

Unit title: Software Development: Project (SCQF level 7)

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

Regression & Load Testing BI EE 11g

Quality Assurance Plan

Development Environment and Tools for Java. Brian Hughes IBM

Introducing Continuous Integration

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Continuous Inspection

Guide to Mobile Testing

How To Develop A System For A Car Dealership

SQMB '11 Automated Model Quality Rating of Embedded Systems

<Insert Picture Here> What's New in NetBeans IDE 7.2

Continuous Delivery Benefits, Best Practices and Practical Advice

Software Development Tools

Mobile Test Automation Framework

SOFTWARE DEVELOPMENT BASICS SED

Realizing Continuous Performance Management

Transcription:

The 3C Approach for Agile Quality Assurance Continuous Integration, Continuous Measurement, Continuous Improvement André Janus André Janus IT Consulting Karlsruhe; University of Magdeburg Reiner R. Dumke University of Magdeburg Andreas Schmietendorf Berlin School of Economics and Law (HWR Berlin) Jens Jäger Jens Jäger Consulting Sindelfingen ICSE 2012, Zürich 3rd International Workshop on Emerging Trends in Software Metrics (WETSoM 2012)

About me Jens Jäger Freelance IT Consultant Java, Ruby, Javascript, Web,... Agile methods 2

Agenda Motivation & Goal Project Context Traditional and Agile Measurement & Metrics Continous Integration Continous Measurement Continous Improvement Conclusion & Outlook 3

Motivation Independent from Process Model! Traditional Measurement Contradiction? Integration of Metrics in Agile Processes? 4

Goal looking for: Agile Quality Assurance Metrics-based Embedded in Agile Process Solution: 3C-Approach Agile Practice: Continous Integration Enhanced with Continous Measurement Enhanced with Continous Improvement 5

Project Context Project IBIS (within project cluster I2) T-Systems, Systems Integration Agile Process Model I2 (based on XP) Industrial Context: Automotive Technology Context: Web-Technology Distributed Systems (EAI) Project-/Product-State Evolution (new features) Maintenance (bugfixing) so-called Brownfield-Project 6

Project Context Internal Software Quality? partly in need for improvement! Causes Missing Quality Rules Time & Budget Pressure Missing QA-KnowHow Missing QA-Tools out-dated Source Code (based on Java 1.3) Qualität Product quality Process quality Resourcequality ISO 25000 7

Traditonal and Agile Measurement & Metrics Traditional Metrics LOC CK-Metrics Comments Density Duplicated Code Code-Style-Violations Design-Rule-Violations Checkstyle PMD Agile Metrics Number of Broken Builds/Number-Of-Failed-Integrations Process-Metric/Quality-Constraint Broken Build = found bug Dysfunctional effects: use as KPI Problem: Infrastructur 8

Number-of-Broken-Builds 9

Agile Metrics Number of Tests Test Growth Ratio Better than number of Tests for Brownfield-Projects testgrowthratio = ΔsourceCode / Δ#Tests with (usually) ΔsourceCode 0 Cobertura Δ#tests 0 Test-Coverage C0-Line-Coverage C1-Branch-Coverage testcoverage = codecoveredbytests / completecode with 0 testcoverage 1 10

Test-Coverage 11

Cultural Break Germany's autobahn network has a total length of about 12,800 km (7,953 Miles) Which ranks as the fifth-longest in the world There is no speed limit on german autobahn 12

Stuttgart Boarder: 150Km - 1hour 13

Border Zürich: 50Km - 1hour 14

Continous Integration Continuous Integration of Source Code in Code-Base Continuous Integration Automatization CI Engines Code-Base VCS (Version Control System) Successfull Integration = No Compile Errors No Test Failures (Regression Tests) Procedure in case of Broken Build: Fixing is highest priority for the team Quality Aspects Tests external Quality (Metrics internal Quality) 15

Continous Integration Dynamic Code-Checks Testing Reviews Pair Programming QGate QGate IDE Version Control System Continous Integration QGate Coding Standards Refactorings 16

Continous Measurement Generation of Reports through CI-Engine Total Lines (Java) Effective Lines (Java) Total Lines (JSP) JUnit Tests Checkstyle error/warning/info Findbugs Prio 1/2/3 PMD Prio 1/2/3 17

Continous Measurement 18

Continous Measurement Dynamic Code-Checks Testing Static Code-Checks Reports Compile- and Build Results Findbugs Checkstyle PMD Reviews Pair Programming LOC and other Metrics QGate Reports QGate Test Coverage IDE QGate Version Control System Continous Integration Continous Measurement Coding Standards Refactorings 19

Continous Improvement Manual Interpretation of the Reports Deduction of Improvement Steps Changes to Coding Standards / Coding Style Guide Plan Refactorings Set new thresholds (Tools) Break-off criteria for CI Completion through Quality-Manager Plan under consideration of functional evolution and budget Use of the GQM (Goal-Question-Metric)-Approach 20

Continous Improvement CI-Engine (Cont. Improvement) CI-Engine (Cont. Measurement) Reduction of Bugs in Production Bugs found by Findbugs Findbugs Priority 1 Bugs Which bugs may be dectetec before going to Production? 21

Continous Improvement Static Code-Checks Dynamic Code-Checks Reports Compile- and Build Results Testing Findbugs Checkstyle PMD Reviews automated manual Pair Programming LOC and other Metrics QGate Reports QGate QGate Test Coverage IDE QGate Version Control System Continous Integration Continous Measurement Coding Standards Refactorings Continous Improvement Quality Manager 22

Conclusion Advantages of the Measurement Process Changes to the Metrics / Code Quality over time Advantages of the Improvement Process Not only selective improvements......but preservation through automated Q-Gates Combination of agile and (traditional) Metrics Agile Practice Continous Integration as Base Infrastructur for Continous Measurement Starting Point for Continous Improvement 23

Outlook Challenges Analyzation of Metrics Deduction of Improvement Steps Setting of thresholds Further consideration of context Evolution and Maintenance in Agile Processes in Measurement Process New Agile Practices? New Agile Metrics? Adjustment of existing Agile Practices? 24

Extreme Feedback Device Shows off if Continous Integration is broken Quality-Manager: Batman-Shirt! 25

Questions/Feedback? Contact me Email: mail@jensjaeger.com Blog: jensjaeger.com Build our own Batman lamp: http://www.jensjaeger.com/2010/04/extreme-feedback-device-the-batman-lamp/ 26