1 Experience-Driven Process Improvement Boosts Software Quality © Software Quality Week 1996 Experience-Driven Process Improvement Boosts Software Quality.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Test process essentials Riitta Viitamäki,
Web Development Engineering Processes Introduction to Web Development Outsourcing Processes.
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Manufacturing Productivity Solutions Management Metrics for Lean Manufacturing Companies Total Productive Maintenance (T.P.M.) Overall Equipment Effectivity.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
© Copyright Richard W. Selby and Northrop Grumman Corporation. All rights reserved. 0 Process Synchronization and Stabilization February 2007 Rick.
Software engineering for real-time systems
Software Quality Metrics
Soft. Eng. II, Spr. 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Quality Reading: I. Sommerville, Chap: 24.
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Management Adrian Marshall.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Testing Test Design and Implementation. Agenda Test Design Test Implementation Test Design Sources Automated Testing 2.
Introduction to Quality, Cost & Delivery
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
© Mahindra Satyam 2009 Project Metrics QMS Training.
1 Experience-Based Approaches to Process Improvement © Otto Vinter / Quality Week 2000 Experience-Based Approaches to Process Improvement - Otto Vinter.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CPIS 357 Software Quality & Testing
Testing – A Methodology of Science and Art. Agenda To show, A global Test Process which work Like a solution Black Box for an Software Implementation.
1 How to Apply Static and Dynamic Analysis in Practice © Software Quality Week ‘97 How to Apply Static and Dynamic Analysis in Practice - Otto Vinter Manager.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Chapter 6 : Software Metrics
Software Testing Course Shmuel Ur

Software Measurement & Metrics
This chapter is extracted from Sommerville’s slides. Text book chapter
Ontology Evolution and Regression Analysis Insights into Ontology Regression Testing Maria Copeland Rafael Goncalvez Robert Stevens Bijan Parsia Uli Sattler.
Lecture 4 Software Metrics
TOKYO ELECTRON SOFTWARE TECHNOLOGIES 1/5 IWFST Testing & Quality – Issues on implementation quality in our project Nov 8, 2005 Tokyo Electron Software.
Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet,
Joint European Commission – IMPEL Seminar on Environmental Inspections Wednesday 17 November 2010 Hotel Le Meredien, Brussels 1.
Software Metrics Cmpe 550 Fall Software Metrics.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Chapter 3: Software Project Management Metrics
THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRELERO© What we currently know about software fault prediction: A systematic review of the fault prediction.
Project quality management. Introduction Project quality management includes the process required to ensure that the project satisfies the needs for which.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Testing Maturity Model (TMM). Introduction For the past decade, the software industry has put substantial effort in improving the quality of its products.
Carnegie Mellon Software Engineering Institute © 2006 by Carnegie Mellon University Software Process Performance Measures James Over Software Engineering.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Software Quality Assurance and Testing Fazal Rehman Shamil.
EMI INFSO-RI Software Metric Definitions, Reports and Analysis in EMI Authors: Eamonn Kenny (TCD), Gianni Pucciani (CERN) Date: Tuesday 12 th April.
Metrics "A science is as mature as its measurement tools."
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
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.
Project Planning Goal 1 - Estimates are documented for use in tracking and planning project. Goal 2 - Project Activities and commitments planned and documented.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
BSBPMG501A Manage Project Integrative Processes Manage Project Integrative Processes Project Integration Processes – Part 2 Diploma of Project Management.
Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.
6/6/ SOFTWARE LIFE CYCLE OVERVIEW Professor Ron Kenett Tel Aviv University School of Engineering.
Tool Support for Testing
Configuration Management
Software Dependability
Assessment of Geant4 Software Quality
Chapter 10 Software Quality Assurance& Test Plan Software Testing
DEFECT PREDICTION : USING MACHINE LEARNING
Chapter 13 Quality Management
Software metrics.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

1 Experience-Driven Process Improvement Boosts Software Quality © Software Quality Week 1996 Experience-Driven Process Improvement Boosts Software Quality - Otto Vinter Manager Software Technology and Process Improvement

2 Experience-Driven Process Improvement Boosts Software Quality © Brüel & Kjaer Skodsborgvej 307, DK-2850 Naerum, Denmark Tel: , Fax: High-Precision Electronic Instrumentation for Sound Vibration Condition Monitoring Gas Measurements

3 Experience-Driven Process Improvement Boosts Software Quality © European System and Software Initiative (ESSI) An Accompanying Measure to ESPRIT The European Strategic Programme for Research and Development in Information Technologies ESSI Objectives Promote Improvements in the Software Development Process in Industry Improve Current Practice by Applying State-of-the-art in Software Engineering Evaluate State-of-the-art Supports Disseminate Experience across Borders and Industrial Sectors ESSI Lines of Actions Assessments Process Improvement Experiments Dissemination

4 Experience-Driven Process Improvement Boosts Software Quality © The PET Process Improvement Experiment The Prevention of Defects through Experience-Driven Test Efforts (PET) PET Objectives Extract knowledge on frequently occurring problems in the development process for embedded software Change the development process by defining the optimum set of methods and tools available to prevent these problems reappearing Measure the impact of the changes in a real-life development project Partner in the Consortium: DANFOSS a leading manufacturer of mechatronic products performing a similar experiment

5 Experience-Driven Process Improvement Boosts Software Quality © Defect Analysis from Error Logs Error Logs Analysed Embedded software development projects Project sizes app. 7 manyears 1100 bugs analyzed from the error logs Bugs are anything between serious defects and suggestions for improvements Bug reporting starts in the integration phase Bug reports covered a period until 18 months after first release

6 Experience-Driven Process Improvement Boosts Software Quality © Defect Analysis from Error Logs Bug Categorisation Based on a bug classification scheme by Boris Beizer: -Boris Beizer: Software Testing Techniques, Second Edition, Van Nostrand Reinhold comprehensive set of bug categories contains statistics from many projects categorization performed in teams -1-2 developers and 1-2 process consultants -app. 5 minutes / bug

7 Experience-Driven Process Improvement Boosts Software Quality © The Beizer Bug Classification Scheme 1. Requirements and Features 2. Functionality as Implemented 3. Structural Bugs 4. Data 5. Implementation (standards violation, and documentation) 6. Integration 7. System and Software Architecture 8. Test Definition or Execution Bugs 9. Other Bugs, Unspecified Each category detailed to a depth of up to 4 levels

8 Experience-Driven Process Improvement Boosts Software Quality © Defect Analysis from Error Logs Category Our AnalysisBeizer Statistics 1.Requirements 23,5 % 8,1 % 2. Functionality 24,3 % 16,2 % 3. Structural 20,9 % 25,2 % 4. Data 9,6 % 22,4 % 5. Implementation 4,3 % 9,9 % (5,9 %) 6. Integration 5,2 % 9,0 % 7.Architecture 0,9 % 1,7 % 8. Test 6,9 % 2,8 % 9.Unspecified 4,3 % 4,7 % TOTAL 100,0 % 100,0 %

9 Experience-Driven Process Improvement Boosts Software Quality © Defect Analysis from Error Logs Other Questions to Capture Subjective Information on the Bugs when was the bug found in the development life-cycle frequency of bugs found over time in which part (module) of the product who found the bug what could prevent the bug

10 Experience-Driven Process Improvement Boosts Software Quality © Defect Analysis from Error Logs

11 Experience-Driven Process Improvement Boosts Software Quality © Defect Analysis from Error Logs Results of the Analysis no special bug class dominates embedded software development requirements problems, and requirements related problems, are the prime bug cause (36%) problems due to lack of systematic unit testing is the second largest bug cause (22%) management attention to software process issues Actions to Improve Unit Testing introduction of static and dynamic analysis host/target tools basic set of metrics

12 Experience-Driven Process Improvement Boosts Software Quality © The PET Experiment Original Objective: to implement changes to the testing process in the development of the next version of a product and measure the results Revised Objective: to assess a trial-release of a product to increase test coverage to industry best practice (branch coverage > 85%) to measure the effect after production release and determine the effectiveness of static/dynamic analysis

13 Experience-Driven Process Improvement Boosts Software Quality © Static / Dynamic Analysis Results 108 Bugs Found before Trial Release 73 Bugs found by regression testsuite -66% branch coverage achieved 105 Person days used 60 Bugs Found by Static / Dynamic Analysis 33 Bugs found by static analysis 27 Bugs found by dynamic analysis -93% branch coverage achieved 40 Person days used 46% Improvement in testing efficiency

14 Experience-Driven Process Improvement Boosts Software Quality © Results of Static Analysis Type of Bug Distribution Use of uninitialised variable: 15 % Variable defined but not used in scope:24 % Variable redefined with no use in between:36 % Parameter mismatch: 6 % Unreferenced procedure:18 % Declared but not used variable: 0 % Other types of static bugs: 0 % Complexity Metrics 88 % correlation between procedures with McCabe > 10 and XLOC > 100 Neither McCabe’s Metric nor Code Size correlated with bugs per line of code

15 Experience-Driven Process Improvement Boosts Software Quality © McCabe’s Cyclomatic Complexity Metric

16 Experience-Driven Process Improvement Boosts Software Quality © Static Flowgraph (McCabe = 10)

17 Experience-Driven Process Improvement Boosts Software Quality © Static Flowgraph (McCabe = 20)

18 Experience-Driven Process Improvement Boosts Software Quality © Trial-release Error Density

19 Experience-Driven Process Improvement Boosts Software Quality © Trial-release Error Average

20 Experience-Driven Process Improvement Boosts Software Quality © Dynamic Analysis Results Test System for Dynamic Analysis

21 Experience-Driven Process Improvement Boosts Software Quality © Dynamic Analysis Results

22 Experience-Driven Process Improvement Boosts Software Quality © Dynamic Analysis Results # Tested Branches + # Inspected Branches >= 85% # Total Branches - # Dead Branches Final Coverage 93% Tested Branches 75% Dead Branches 9.5% Inspected Branches 9.5% Instrumented Code Expansion approximately 40% Massive Data Output During Execution (1 GB)

23 Experience-Driven Process Improvement Boosts Software Quality © Dynamic Analysis Results

24 Experience-Driven Process Improvement Boosts Software Quality © Comparison of Test Efficiency Hours per bug Static Analysis 1,6 Current Development 7,2 Dynamic Analysis 9,0 Current Maintenance 14,0

25 Experience-Driven Process Improvement Boosts Software Quality © Measurements on Production Release 75% Reduction in Production-Release Bugs Compared to Trial-Release 70% Requirements Bugs in Production-Release => Increased focus on improving the requirements process

26 Experience-Driven Process Improvement Boosts Software Quality © Conclusions on Static/Dynamic Analysis Performance Improvement an efficient way to remove bugs marginal delay on trial release date marginal increase in the testing resources required immediate payback on tools, training & implementation remarkably improved test coverage increased quality reduced maintenance costs increased motivation applicable to the whole software development industry, incl. embedded software

27 Experience-Driven Process Improvement Boosts Software Quality © In Conclusion Defect Analysis from Error Logs is a simple and effective way to assess the software development process The Analysis of Bugs has had a significant impact on the way we now look at our software development process has established a basic set of metrics for test activities starting point for process improvement programmes in companies