Orthogonal Defect Classification in Agile Development



Similar documents
Agile Scrum Workshop

Adopting Agile Testing

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Empirical study of Software Quality Evaluation in Agile Methodology Using Traditional Metrics

Testing in Agile methodologies easier or more difficult?

Agile Software Development

Agile Software Engineering Practice to Improve Project Success

Scrum Methodology in Product Testing : A Practical Approach

A Capability Maturity Model (CMM)

Agile QA Process. Anand Bagmar Version 1.

Software Project Management Matrics. Complied by Heng Sovannarith

Software Engineering. How does software fail? Terminology CS / COE 1530

"Bezpieczny Projekt"

Defect Management in Agile Software Development

Mariusz Chrapko. Before: Software Quality Engineer/ Agile Coach, Motorola, Poland. My Public Profile:

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Rapid Software Development

SmartBear Software Pragmatic Agile Development (PAD) Conceptual Framework

Measuring ROI of Agile Transformation

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Defect Analysis and Prevention for Software Process Quality Improvement

Creating Business Value with Mature QA Practices

Agile Methodologies and Its Processes

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Software Development Life Cycle (SDLC)

Agile in Financial Services A Framework in Focus

Agile Based Software Development Model : Benefits & Challenges

How Good Is the Software: A Review of Defect Prediction Techniques Brad Clark Dave Zubrow

Managing Agile Projects in TestTrack GUIDE

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

Driving Quality Improvement and Reducing Technical Debt with the Definition of Done

Certified ScrumMaster (CSM) Content Outline and Learning Objectives January 2012

The Importance of Continuous Integration for Quality Assurance Teams

Agile Testing. What Students Learn

Agile Development for Application Security Managers

D25-2. Agile and Scrum Introduction

Test Automation: A Project Management Perspective

User experience storyboards: Building better UIs with RUP, UML, and use cases

Certified ScrumMaster (CSM) Content Outline and Learning Objectives January 2012

Nova Software Quality Assurance Process

How To Understand The Limitations Of An Agile Software Development

Agile and Secure: Can We Be Both?

Agile So)ware Development

Comparing Agile Software Processes Based on the Software Development Project Requirements

How To Be Successful At An Agile Software Engineering

T14 "TIMELINES, ARTIFACTS AND OWNERS IN AGILE PROJECTS" Hubert Smits Rally Software Development BIO PRESENTATION 6/21/2007 1:30:00 PM

Agile Project Management and the Real World. Emily Lynema DLF Fall 2010 November 1, 2010

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

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

Business Solutions Manager Self and contribution to Team. Information Services

Introduction to Agile Software Development Process. Software Development Life Cycles

The Tester's Role in Continuous Integration

Software Quality and Agile Methods

Agile Development Overview

A Survey of Plan-Driven Development Methodologies

SWX: The Software Extension to the PMBOK Guide for Project Management

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;

Challenges in adopting Agile

EXIN Agile Scrum Foundation. Sample Exam

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Maintaining Quality in Agile Environment

Testing in Scrum Projects

Agile Processes and Methodologies: A Conceptual Study

VIII. Project Management Glossary

Assessing Quality Processes with ODC COQUALMO

LEAN AGILE POCKET GUIDE

The 7 Attributes of a Good Software Configuration Management System

How To Plan An Agile Project

How To Develop An Application

USING DEFECT ANALYSIS FEEDBACK FOR IMPROVING QUALITY AND PRODUCTIVITY IN ITERATIVE SOFTWARE DEVELOPMENT

Leveraging Agile and CMMI for better Business Benefits Presented at HYDSPIN Mid-year Conference Jun-2014

Agility via Software Engineering Practices

Issues in Internet Design and Development

Latest Trends in Testing. Ajay K Chhokra

Waterfall to Agile. DFI Case Study By Nick Van, PMP

ACP Exam Prep Plus Desk Reference including the Project Management Agile Body of Knowledge TM (PMABOK TM )

Roles: Scrum Master & Project Manager

Java course - IAG0040. Unit testing & Agile Software Development

Introduction to Agile and Scrum

Creating a High Maturity Agile Implementation

Agile Model-Based Systems Engineering (ambse)

A Framework for Enterprise IT Capacity Management

Shorten release cycles by bringing developers to application lifecycle management. Business white paper for application team professionals

CSSE 372 Software Project Management: More Agile Project Management

AGILE - QUICK GUIDE AGILE - PRIMER

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Tonight s Speaker. Life of a Tester at Microsoft Urvashi Tyagi Software Test Manager, Microsoft

An Agile Methodology Based Model for Change- Oriented Software Engineering

Achieving Rolling Updates & Continuous Deployment with Zero Downtime

Whitepaper: How to Add Security Requirements into Different Development Processes. Copyright 2013 SD Elements. All rights reserved.

Generalizing Agile Software Development Life Cycle

International Journal of Information Technology & Computer Science ( IJITCS ) (ISSN No : ) Volume 5 : Issue on September / October, 2012

Use service virtualization to remove testing bottlenecks

Scrum: A disciplined approach to product quality and project success.

Smarter Balanced Assessment Consortium. Recommendation

Transcription:

Orthogonal Defect Classification in Agile Development Monika Jagia, IBM Software Group India, monika.jagia@in.ibm.com Seema Meena, IBM Software Group India, seemeena@in.ibm.com 2008 IBM Corporation Copyright ISSRE 2009

Orthogonal Defect Classification Orthogonal Defect Classification - A technology for software process measurement and analysis, providing a standard of unique, non-redundant attribute definitions for defect classification as well as analysis metrics and procedures for process evaluations Developed at IBM in the 1990s by Ram Chillarege. ODC is a way of classifying and analyzing defects and APARs to Uncover more defects during testing, Reduce the number of escapes to the field and Prevent defects from being injected in the code Methodology to characterize software defects and translate into process defects ODC shows teams how to ensure they are looking for the right defects at the right time. Benefits of ODC: Describe the stability of the design and of the product as a whole (by ODC analysis we get information about source of defects (design, code, )) Monitor test progress and effectiveness, in terms of how deeply they are able to get into the product, as opposed to how many tests have they run Improved communication and decision making ( gut feel ) 2

Agile Development Process for detecting and removing design defects at the early stage. Agile Defined (IBM) - Uses continuous stakeholder feedback to deliver high-quality, consumable code through user stories and a series of short, time-boxed iterations. Characteristics of Agile: Task-based Configuration Management Building traceability automatically Peer Reviews, Pair programming Task agility Regular builds, iterations & Releases Scrum: Regular meetings to identify status and progress Progressive and constant testing/verification/validation of the produced artifacts. Benefits of Agile : Increased quality Mapping to customer needs Faster time to market Responsiveness to change 3

Can ODC be used on agile projects? Absolutely! Agile teams still have to perform testing and have a way to measure quality. ODC concepts, attributes and tooling help in understanding the iteration, look at the data, and ask questions about it so you can improve. How does ODC work with agile? Both milestone-driven and agile projects have a few things in common. They both need ways to measure quality, need to perform unit testing, functional/component testing, and system testing. In Agile, the Activity within Phase chart may not provide value to the team since we d expect to see all forms of testing occurring in each iteration (i.e.. it s not a case of a defect escaping from one phase to another). It s important to remember that each iteration will be different. The ODC data will reflect what happened in that iteration so the data could differ from the data of previous or future iterations. 4

How often should we assess the data in agile projects? It depends on the length of the iterations. Assessments at the mid-point of an iteration probably won t yield ROI for projects with 2 week iterations. Shorter iterations will have fewer defects at the end of the iteration to assess. Research indicates you need about 30-35 defects before assessing the data and drawing conclusions. Teams will need to determine if there are sufficient defects at the end of the iteration to perform an assessment. If not, it may be best for the team to assess every couple of iterations. With longer iterations, consider doing mid-point and end of iteration assessments. In addition, there are pieces of data that should be watched weekly so that problems can be identified and attacked as soon as possible. jmystiq provides the ability to automate the chart creation which reduces the overhead of creating charts weekly. 5

Can other agile practices affect the ODC data? Most definitely. Adoption of various agile practices (ex. Inspections, pair programming, etc) will affect defect injection. The more of these preventative practices the team adopts, the fewer defects will be in the product waiting to be detected. How will the data differ for an agile project? Early discovery of defects including complex defects Higher percentage of simpler triggers (i.e. coverage and variation ) defects in new function being dropped into an iteration as well as missing. In follow-on iterations those areas should stabilize such that missing decreases and more complex defects emerge. By the end of the project, when looking at the total set of defects, we d expect to see all the triggers and a decline in the serious defects (basically no different from waterfall projects) 6

Is there anything extra we have to do? Teams need to understand the % hit to a component from iteration to iteration to help determine the anticipated defect trends for the current as well as future iterations (i.e. the longer the function is integrated into the system, the more stable it should be) What s the Minimum application of ODC? In agile process if the team decides not to classify defects, they can still derive value from ODC by taking the time to classify their test cases based on the ODC Trigger attribute. This is to ensure that: The test cases are looking for all the different types of defects that could be lurking in the product. The percentage of test cases aimed at the different triggers is appropriate 7

Value ODC Assessments Provide Independent of the process, ODC will help teams assess three specific areas: Defect Removal Effectiveness This shows how well we re doing at uncovering the defects Product Stability This shows if the product is showing signs of increased or decreased stability Defect Injection This shows where the defects are getting injected so we can take action not to have the same mistakes happen again ODC Metrics ODC Triggers Environment or conditions necessary to uncover the defect - Coverage, Variation (parameters), Sequencing (order), Interaction ODC Defect Type What was fixed in the code - Assignment/Initialization, Checking, Algorithm/Method, Timing/Serialization, Interface, Function/Class/Object ODC Qualifier Refers to defect types - Incorrect, Missing, Extraneous 8

Background IBM Software Group Information Management software Product and Team Description Teams working on different components Integrating components with the main product Teams comprising of 6 developers and 3 testers Teams were new to agile methodologies Each iteration of 3 weeks Agile Implementation Details Agile Practices followed includes Paired programming, Test Driven Development, Continuous Integration. Small Releases every 3-4 months Daily Scrums Mini Jam sessions 9

Defect Removal Effectiveness Measure Results: Defect rate Decrease through development (tdd, pp, and ci) Increase through development (late arriving requirements) Triggers Elevated coverage and interaction early, variation and sequencing later (tdd and ci) Elevated coverage as requirements arrive late Defect Type Low number assignment/initialization (pp) High number Interface (ci) High number Function/Class/Object (tdd, late requirements) ci continuous integration tdd test driven development pp paired programming 10

Defect Removal Effectiveness Defect Rate Defect Type Found defects early, less expensive, decreased costs as compared to waterfall models Too much assignment/init, No interface, no timing/serialization 11

Defect Removal Effectiveness - Trigger within Opendate Too little variation, interaction, and no sequencing at all 12

Product Stability Measure Results: Severity: Percentage of high severity defects decreases Qualifier: Percentage of missing is fairly small Expectations: May decrease throughout development as requirements arrive late Should increase through development with Test driven development Continuous integration Simple design Design improvement High stability is defined as Low # Sev 1 s and 2 s; Low missing code 13

Product Stability IBM Software Group Information Management software Severity within Opendate Qualifier within Opendate Percentage of severity 2 increasing through Feb. but there are no sev 1 or 2 s in June Percentage of missing is fairly small compared to most waterfall projects 14

Defect Injection IBM Software Group Information Management software Defects can be injected during requirements, high level design, low level design, or coding Expectations: Paired programming will help decrease injection of defects in coding Accommodating late arriving requirements will show increase injection of defects during requirements and high level design 15

Defect Injection Qualifier within Defect Type A high frequency of incorrect code with Assignment type, Checking and Algorithm type indicates that the code is poorly written. 16

Conclusion Agile teams still have to perform testing and they still have to have a way to measure quality. The ODC concepts, attributes, and tooling are the same. Your project's assessments will differ. The key is to understand what s going on in the iteration, look at the data, and ask questions about it. By understanding the different ODC attributes your team will make sure they are both effective and efficient in their testing and product development. ODC is able to evaluate implementation of certain agile methodologies and practices. Several agile practices appear to provide a clear win over waterfall particularly with finding defects early where it is less costly. Continue collection of metrics to monitor progress. 17

Conclusion (Contd) The team found defects early, maintained a fairly stable product, and mitigated risk due to accommodating late arriving requirements which resulted in their ability to deliver on time and within their budget. Effective defect removal need to improve test cases to include variations, interaction, sequencing scenarios. Persist with paired programming throughout entire project and get developers more fully engaged in coding, focusing on finding incorrect assignment/initialization defects. Practices contributing to this positive result were: > Test driven development > Continuous integration > Paired programming > Simple design 18

Challenges IBM Software Group Information Management software Define valid defect and work-in-progress development behavior Handle ODC assessments that may seem to be less Agile Integrating with product which has a waterfall process Maintaining stability and mitigating risk while accommodating late arriving requirements Collective ownership resulting in higher defect injection during coding Limiting the number of triggers and avoiding the activity field. Writing a bunch of code that wasn t planned - because of defects that are discovered. Maintaining effectiveness of paired programming over long periods 19

References IBM Software Group Information Management software R. Chillarege, I.S. Bhandari, J.K. Chaar, M.J. Halliday, D. Moebus, B. Ray and M.Y. Wong, Orthogonal defect Classification - A Concept for In-process Measurement, IEEE Transactions on Software Engineering, pp. 943-956, November 1992. M. Butcher, H. Munro, and T. Kratschmer, "Improving software testing via ODC: Three case studies". IBM Systems Journal, vol. 41 No. 1 pp. 31-44, 2002 Theresa Kratschmer, and Adrian Dick, Evaluating The Effectiveness of an Agile Development Effort, IBM Corporation, theresak@us.ibm.com ODC forum http://ibmforums.ibm.com/forums/forum.jspa?forumid=3240 Center for Software Engineering http://www.research.ibm.com/softeng/odc/odc.htm 20