Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.

Slides:



Advertisements
Similar presentations
Information Technologies Page 1 Information Technologies Page 1 Information Technologies Page 1 Information Technologies Page 1Information Technologies.
Advertisements

Ch.21 Software Its Nature and Qualities. Ch.22 Outline Software engineering (SE) is an intellectual activity and thus human-intensive Software is built.
Demonstrators: Mudasir Nazir(08-CS-41).  I am highly addicted to this field.  Working with W3C in research program(building CSS for creating web site.
MIS 2000 Class 20 System Development Process Updated 2014.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 28 Slide 1 Process Improvement.
Software Configuration Management
Configuration Management CS 415, Software Engineering I Mark Ardis, Rose-Hulman Institute February 4, 2003.
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
SIM5102 Software Evaluation
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Design & Documentation Adrian Marshall.
Chapter 20: Defect Classification and Analysis  General Types of Defect Analyses.  ODC: Orthogonal Defect Classification.  Analysis of ODC Data.
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Testing and Cost / Benefit Tor Stålhane. Why cost / benefit – 1 For most “real” software systems, the number of possible inputs is large. Thus, we can.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Laurent Noel.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
ITEC 3220M Using and Designing Database Systems
Software Maintenance.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
Emerging Technologies Work Group Master Data Management (MDM) in the Public Sector Don Hoag Manager.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Process Improvement l Understanding, Modelling and Improving the Software Process.
Using error reports in SPI Tor Stålhane IDI / NTNU.
ISO 9001 – an overview Tor Stålhane IDI / NTNU. ISO 9001 and software development ISO 9001 is a general standard – equally applicable to software development.
Software Project Planning Part II. Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in.
About Quality Pre paired By: Muhammad Azhar. Scope What is Quality Quality Attributes Conclusion on software Quality Quality Concepts Quality Costs.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
The Role of Experience in Software Testing Practice Zahra Molaei Soheil Hedayatitezengi Comp 587 Prof. Lingard 1 of 21.
Chapter 1 Introduction to Software Engineering. Why Engineer Software? n Air traffic control case study –$2.3 Billion spent without any usable deliverable.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Chapter 3: Software Project Management Metrics
GQM – an example from Fjellanger - Widerøe Hans J. Lied Tor Stålhane IDI / NTNU.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Course summary TDT4235 Tor Stålhane IDI / NTNU. What we try to do QA – Create trust to a product or service SPI – Solve fuzzy problems by –Identifying.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Designing Classes. Software changes Software is not like a novel that is written once and then remains unchanged. Software is extended, corrected, maintained,
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Herriman High Computer Programming 1A Software Development Cycle Things to Know.
Objectives Understand Corrective, Perfective and Preventive maintenance Discuss the general concepts of software configuration management.
1 Software Quality Engineering. 2 Quality Management Models –Tools for helping to monitor and manage the quality of software when it is under development.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Engineering Lecture 8: Quality Assurance.
Observing the Current System Benefits Can see how the system actually works in practice Can ask people to explain what they are doing – to gain a clear.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
 System Requirement Specification and System Planning.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Configuration Management
Software Project Configuration Management
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Chapter 18 Maintaining Information Systems
Introduction SOFTWARE ENGINEERING.
Maintaining software solutions
LEVEL OF TESTING J.ALFRED DANIEL, AP/CSE.
Software Engineering (CSI 321)
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Test Cases, Test Suites and Test Case management systems
Presentation transcript:

Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU

Goals Business: How can we reduce the cost of corrective maintenance? Research: What are the main cost drivers for corrective maintenance

Company A – 1 Company A is a software line company with only one product. The product is deployed on more than 50 operating systems and hardware platforms. The company has 700 employees and of these 400 are developers and testers.

Company A – 2 Via the company’s DTS – Defect Tracking System – the company collected: Defect ID, priority, severity and report creation date Defect summary and detailed description Who found the defect and when Estimated correction time When was the defect corrected Detailed comments and work log of the person who corrected the defect

What we did in company A We improved the company’s DTS based on the IBM concept of orthogonal defect classification – ODC. Based on a study of earlier reported defects, the classification scheme was modified to fit the company’s needs.

DTS system enhancements at company A Added or revised attributes Value of the attributes Effort to fix Time-consuming: more than one person-day effort Easy: less than one person-day effort QualifierMissing; Incorrect; or Extraneous Fixing type Extended the ODC “type” attributes to reflect the actual defect correction activities of the company. Root cause Project entities, such as requirement, design, and documentation, which should be done better to prevent the defect from occurring earlier.

Company B – 1 Company B is a software house that develops business critical systems, primarily for the bank and finance sector. Most of their projects have a fixed price and a fixed delivery date. The company has 800 developers and testers.

Company B – 2 Via the company’s DTS the company collected among other things: Defect ID, priority, severity and report creation date Defect summary and detailed description Who found the defect and when Who tested the correction and how

What we did in company B Just as for company A, we improved the company’s DTS based on a study of earlier reported defects. In addition, the changes also enabled us to collect data that should later be used for software process improvement.

DTS system enhancements at company ¨B Added or revised attributes Value of the attributes Effort to fix Classify effort to reproduce and fix defects as “simple” – less than 20 minutes, “medium” – between 20 minutes and 4 hours, and “extensive” – more than 4 hours. Defect type Introduced a new set of attributes that were adapted to the way the developers and testers wanted to classify defects. Root cause The attributes here are project entities, such as requirement, design, development, and documentation, which can be done better to prevent the defect earlier.

Data collection In both companies, we collected defect data when the companies had used the new DTS for six months. Only defect reports that had all their fields filled in were used for later analysis. This gave us: Company A – 810 defects Company B – 688 defects

Data analysis – 1 Our goal was to identify cost drivers for the most expensive defects. Thus, we split the defects into categories depending on reported “time to fix”. Company A – two groups: “easy to fix” and “time consuming” Company B – three groups: “simple”, “medium” and “extensive”. “Simple” and “medium” defects was combined into one group – “simple” to be compatible with company A

Data analysis – 2 We identified the most important root causes for the costly fixes through qualitative analysis. For both companies we had “correction type” and “cause”. We also found important information in the –developer discussions (company A) –test descriptions (company B)

Root causes for high effort fixes - A Reasons for the costly debuggingNumbers of high effort defects in each business unit CoreB2CB2B Hard to determine the location of the defect Implemented functionality was new or needed a heavy rewrite Long clarification (discussion) of defect 1950 The original fix introduces new defects / multiple fixes 1390 Others (documentation is incorrect or communication is bad) 200 Reasons not clear3160

Root causes for company A Based on the collected data, we identified the most important root causes for costly defects: It was hard to determine the defect’s location Implemented functionality was new or needed a heavy rewrite Long, costly discussion on whether the defect report really was a defect or just misuse of the system.

Root causes for high effort fixes – B Root cause attribute Number of defects Simple MediumExtensive Sum Functional defect 9211 Wrong test data in build Bad specification Bad test environment 9110 Development problems Sum

Root causes for company B Bad specifications and development problems account for 91% of the high effort defects. If we consider the sub-categories defined for these two root causes, we find that 70% of all correction costs are due to: Errors in business logic Unclear requirements Problems in graphical interface

Important maintenance factors – 1 Several published studies have identified the following important maintenance cost factors: Maintainers’ experience with system and application domain System size and complexity The development activity where the defect is discovered Tool and process support

Important maintenance factors – 2 System size and complexity – large complex systems makes it difficult to –Analyze the system to decide where the defect stems from - A –Deiced how to fix the defect - A –Find the right solution to implement – A, B

Important maintenance factors – 3 Low maintainers’ experience with system and application domain cause –Need for heavy rewrite of functionality - A –Development problems, e.g. with business logic and user interface – B

Important maintenance factors – 3 ISO 9126 defines maintainability as: Analyzability Changeability Stability Testability The high maintenance cost factors size and complexity fit well into this model. However, the model focuses on software characteristics and ignore the influence of the developers’ knowledge and experience

Conclusions - 1 Important data sources when analyzing maintainability are: Resources needed for fixing Defect typology, e.g. ODC Qualitative data such as test description and developer discussions The effort model should be updated regularly, based on the defect profile and project environment.

Conclusions – 2 There is no “best estimator” for corrective maintenance. Important factors are Software characteristics – e.g. as defined in ISO 9126 Staff characteristics – e.g. knowledge and experience