SlideShare a Scribd company logo
Otto Vinter
Software Engineering Mentor
Tel/Fax: +45 4399 2662, Mobile: +45 4045 0771
vinter@inet.uni2.dk
www.vinter.suite.dk
Why Defect Analysis?Why Defect Analysis?
Objective
 identify why defects occur
 help prevent defect insertion
Assumption
 defect detection costs both time and money
 defects cost more when detected later in the life cycle
 fewer defects can be inserted through training/education
Strategy
 move defect detection to earlier parts of the life cycle
 avoid defect insertion by improving the process
Defect Analysis ModelsDefect Analysis Models
Mathematical models
 quantitative analysis
 statistics
 growth curve modelling
 comparison to historical data
 not easily translatable to corrective action
Causal analysis
 qualitative analysis
 investigate details of a sample of defects
 fewer restrictions on what can be analysed
 time consuming
 harder to aggregate
 easy to translate to individual improvement actions
Defect Analysis in PracticeDefect Analysis in Practice
Why mathematical models often fail to predict
 low-level maturity processes are the norm
 software development is not a production process
 personal and team issues dominate
Why causal analysis often works
 focuses on prevention
 addresses individual and team issues
 feed-back, education, motivation
 bottom-up process improvement
Tools for Performing Defect AnalysisTools for Performing Defect Analysis
For classifying defects
 Boris Beizer’s bug taxonomy
For capturing quantitative information
 When found: distribution over time (before/after release)
 Where found: distribution across system parts (subsystems/modules)
 Who found: distribution across stakeholder groups
(project/specialists/customers)
For capturing qualitative information
 Interviews with the relevant developers
 What happened: listen and learn (problem/explanation/insight/cause)
 How to prevent: ad-hoc check lists (literature/history/experience)
Retrospective Defect AnalysisRetrospective Defect Analysis
Retrospective analysis
 combined bug classification and qualitative analysis
 performed on a sample of at least 100 bug reports
 investigates potential prevention techniques
 proposes focused improvement actions
Interview sessions
 1-2 developers and 1-2 process consultants
 app. 4 min / bug for classification and qualitative information
 app. 30 minutes / bug for detailed analysis of selected bugs to
determine potentials for improvement (prevention)
When Are Defects Found (example)When Are Defects Found (example)
0
10
20
30
40
50
-327
-297
-267
-237
-207
-177
-147
-117
-87
-57
-27
3
33
63
93
123
153
183
213
243
273
303
333
363
393
423
453
483
513
543
573
603
633
Customers
All
Defect Detection Percentage Over TimeDefect Detection Percentage Over Time
(example)(example)
DDP(t) = Defects before release / All defects (t) %
0,00
10,00
20,00
30,00
40,00
50,00
60,00
70,00
80,00
90,00
100,00
0 30 60 90 120 150 180 210 240 270 300 330 360 390 420 450 480 510 540 570 600 630
Where / Who Found the Defects (example)Where / Who Found the Defects (example)
0 5 10 15 20 25 30
Communication
Other Parts,
Unspecified
System
Administration
Data Processing
User Interface
Customers
Sales/support people
Project Group
%
Boris Beizer’s Bug TaxonomyBoris Beizer’s Bug Taxonomy
Bug classification
 nine main categories
 detailed in up to four levels
 open and extendable
Statistics
 Boris Beizer
- 16,209 bugs in Assembler, FORTRAN, COBOL, ADA, C
- primarily US defence, aerospace, and telecommunication
- collected before 1989
 Otto Vinter
- 982 bugs in Pascal, C, C++
- embedded and PC applications at Brüel & Kjær, DK
- collected from 1992 – 1998
More information: www.vinter.suite.dk/engdefana.htm
The Beizer Bug TaxonomyThe Beizer Bug Taxonomy
1. Requirements and Features
2. Functionality as Implemented
3. Structural Bugs
4. Data
5. Implementation
6. Integration
7. System and Software Architecture
8. Test Definition or Execution Bugs
9. Other Bugs, Unspecified
Bug Taxonomy NotationBug Taxonomy Notation
Each category is detailed to a depth of 4+ levels
- 3xxx -- structural bugs in the implemented software
- 32xx -- processing bugs
- 322x -- expression evaluation bugs
- 3222 -- arithmetic expressions bugs
- 3222.1 -- wrong operator bugs
The "x" is a place holder for possible future filling in of numbers as the taxonomy is
(inevitably) expanded.
Categories ending on “9” are used when a finer breakdown is not available, e.g. for bugs
that do not fit in the other (sub)categories:
- 9xxx -- other or unspecified bugs
- 39xx -- other structural bugs
- 329x -- other processing bugs
- 3229 -- other expression evaluation bugs
- 3222.9 -- other arithmetic bugs
B&K Top 12 Beizer Categories (52% of all bugs)B&K Top 12 Beizer Categories (52% of all bugs)
7
6
5
4
3
3
3
3
3
3
3
8
0 1 2 3 4 5 6 7 8 9 10
211xFeature misunderstood, Wrong
231xMissing cases
9xxxOther bugs, unspecified
218xFeature interactions
324xCleanup
323xInitialization
131xIncomplete requirements
132xMissing, unspecified requirement
1621 Feature Added
413xData definition initial, default values
241xDomain misunderstood, Wrong
8111 Requirements misunderstood in test design
%
B&K
Top Prevention Techniques (expensive example)Top Prevention Techniques (expensive example)
%
External Software
Stress
Test (301)
Functional Prototype,
Daily Tasks
(230)
Product Expert
Screen
Review
(280)
Functional Protoype,
Stress
Cases
(232)
Paper M
ockup,
Daily
Tasks
(210)
Orthogonality
Check
(721)
0
2
4
6
8
10
12
Hitrate Savings
Perform
ance
Specification
(820)
Top Prevention Categories (simpler/cheaper example)Top Prevention Categories (simpler/cheaper example)
0,0 5,0 10,0 15,0 20,0 25,0
Better analysis of
consequences
Better analysis of
requirements
Unknown
Improved code review
Enforce coding
standards
%
1st Improvement Action: The Prevention of1st Improvement Action: The Prevention of
Errors through Experience-driven Test EffortsErrors through Experience-driven Test Efforts
(PET)(PET)
Results of the analysis of bug reports
 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%)
Action: Improve Testing Processes
 static analysis
- source code complexity, data flow anomalies, coding standards
 dynamic analysis
- code coverage by test cases, cross references code to test cases
Funded by CEC. More information: www.vinter.suite.dk/engswtest.htm
Results of the Improved Testing ProcessResults of the Improved Testing Process
46% Improvement in testing efficiency
 removing static bugs
 increasing unit branch coverage to > 85%
75% Reduction in production-release bugs
 Compared to trial-release
70% Requirements bugs in production-release
Next action: Improve Requirements Engineering
Results of the analysis of requirements bugs
 requirements related bugs: 51%
 usability issues dominate: 64%
 external software issues: 28%
 functionality issues: 22%
Action: Improve Requirements Elicitation and Validation
 Scenarios
- Relate demands to use situations. Describe tasks for each scenario.
 Usability Test
- Check that the users are able to use the system for daily tasks, based on a navigational
prototype of the user interface.
Funded by CEC. More information: www.vinter.suite.dk/engreqeng.htm
2nd Improvement Action: A Methodology for Preventing2nd Improvement Action: A Methodology for Preventing
Requirements Issues from Becoming Defects (PRIDE)Requirements Issues from Becoming Defects (PRIDE)
Missing
29%
Changed
24%
Misunderstood
38%
Other
9%
Results of the 2nd Improvement ActionResults of the 2nd Improvement Action
Product sold more than twice as many copies in
the first year
 compared to a similar product developed for a similar domain
by the same team
Usability was exceptional in the market
 users’ interaction with the product was totally changed as a
result of the early usability tests
Almost 3 times increase in productivity for the
development of the user interface
27% reduction in problem reports
When the benefits of performing a defectWhen the benefits of performing a defect
analysis are so evident, why don’t you startanalysis are so evident, why don’t you start
analysing your defect data ?analysing your defect data ?
Thank you for listeningThank you for listening
Otto Vinter
Software Engineering Mentor
Tel/Fax: +45 4399 2662, Mobile: +45 4045 0771
vinter@inet.uni2.dk
www.vinter.suite.dk

More Related Content

What's hot

'Growing to a Next Level Test Organisation' by Tim Koomen
'Growing to a Next Level Test Organisation' by Tim Koomen'Growing to a Next Level Test Organisation' by Tim Koomen
'Growing to a Next Level Test Organisation' by Tim Koomen
TEST Huddle
 
'Mixing Open And Commercial Tools' by Mauro Garofalo
'Mixing Open And Commercial Tools' by Mauro Garofalo'Mixing Open And Commercial Tools' by Mauro Garofalo
'Mixing Open And Commercial Tools' by Mauro Garofalo
TEST Huddle
 
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
TEST Huddle
 
'Continuous Quality Improvements – A Journey Through The Largest Scrum Projec...
'Continuous Quality Improvements – A Journey Through The Largest Scrum Projec...'Continuous Quality Improvements – A Journey Through The Largest Scrum Projec...
'Continuous Quality Improvements – A Journey Through The Largest Scrum Projec...
TEST Huddle
 
'Acceptance Testing' by Erik Boelen
'Acceptance Testing' by Erik Boelen'Acceptance Testing' by Erik Boelen
'Acceptance Testing' by Erik Boelen
TEST Huddle
 
Software Engineering Fundamentals Svetlin Nakov
Software Engineering Fundamentals Svetlin NakovSoftware Engineering Fundamentals Svetlin Nakov
Software Engineering Fundamentals Svetlin Nakov
nazeer pasha
 
Exploring Exploratory Testing
Exploring Exploratory TestingExploring Exploratory Testing
Exploring Exploratory Testing
nazeer pasha
 
Using Functional ,Test Automation to Prevent Defects from Escaping the Develo...
Using Functional ,Test Automation to Prevent Defects from Escaping the Develo...Using Functional ,Test Automation to Prevent Defects from Escaping the Develo...
Using Functional ,Test Automation to Prevent Defects from Escaping the Develo...
TEST Huddle
 

What's hot (20)

Wim Demey - Regression Testing in a Migration Project
Wim Demey - Regression Testing in a Migration Project Wim Demey - Regression Testing in a Migration Project
Wim Demey - Regression Testing in a Migration Project
 
Hakan Fredriksson - Experiences With MBT and Qtronic
Hakan Fredriksson - Experiences With MBT and Qtronic Hakan Fredriksson - Experiences With MBT and Qtronic
Hakan Fredriksson - Experiences With MBT and Qtronic
 
'Growing to a Next Level Test Organisation' by Tim Koomen
'Growing to a Next Level Test Organisation' by Tim Koomen'Growing to a Next Level Test Organisation' by Tim Koomen
'Growing to a Next Level Test Organisation' by Tim Koomen
 
'Mixing Open And Commercial Tools' by Mauro Garofalo
'Mixing Open And Commercial Tools' by Mauro Garofalo'Mixing Open And Commercial Tools' by Mauro Garofalo
'Mixing Open And Commercial Tools' by Mauro Garofalo
 
Peter Zimmerer - Establishing Testing Knowledge and Experience Sharing at Sie...
Peter Zimmerer - Establishing Testing Knowledge and Experience Sharing at Sie...Peter Zimmerer - Establishing Testing Knowledge and Experience Sharing at Sie...
Peter Zimmerer - Establishing Testing Knowledge and Experience Sharing at Sie...
 
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
'Architecture Testing: Wrongly Ignored!' by Peter Zimmerer
 
'Continuous Quality Improvements – A Journey Through The Largest Scrum Projec...
'Continuous Quality Improvements – A Journey Through The Largest Scrum Projec...'Continuous Quality Improvements – A Journey Through The Largest Scrum Projec...
'Continuous Quality Improvements – A Journey Through The Largest Scrum Projec...
 
Kasper Hanselman - Imagination is More Important Than Knowledge
Kasper Hanselman - Imagination is More Important Than KnowledgeKasper Hanselman - Imagination is More Important Than Knowledge
Kasper Hanselman - Imagination is More Important Than Knowledge
 
Elise Greveraars - Tester Needed? No Thanks, We Use MBT!
Elise Greveraars - Tester Needed? No Thanks, We Use MBT!Elise Greveraars - Tester Needed? No Thanks, We Use MBT!
Elise Greveraars - Tester Needed? No Thanks, We Use MBT!
 
Darshan Desai - Virtual Test Labs,The Next Frontier - EuroSTAR 2010
Darshan Desai - Virtual Test Labs,The Next Frontier - EuroSTAR 2010Darshan Desai - Virtual Test Labs,The Next Frontier - EuroSTAR 2010
Darshan Desai - Virtual Test Labs,The Next Frontier - EuroSTAR 2010
 
'Acceptance Testing' by Erik Boelen
'Acceptance Testing' by Erik Boelen'Acceptance Testing' by Erik Boelen
'Acceptance Testing' by Erik Boelen
 
John Brennen - Red Hot Testing in a Green World
John Brennen - Red Hot Testing in a Green WorldJohn Brennen - Red Hot Testing in a Green World
John Brennen - Red Hot Testing in a Green World
 
Software Engineering Fundamentals Svetlin Nakov
Software Engineering Fundamentals Svetlin NakovSoftware Engineering Fundamentals Svetlin Nakov
Software Engineering Fundamentals Svetlin Nakov
 
Henrik Andersson - Exploratory Testing Champions - EuroSTAR 2010
Henrik Andersson - Exploratory Testing Champions - EuroSTAR 2010Henrik Andersson - Exploratory Testing Champions - EuroSTAR 2010
Henrik Andersson - Exploratory Testing Champions - EuroSTAR 2010
 
Exploring Exploratory Testing
Exploring Exploratory TestingExploring Exploratory Testing
Exploring Exploratory Testing
 
Ruud Teunissen - Personal Test Improvement - Dealing with the Future
Ruud Teunissen - Personal Test Improvement -  Dealing with the FutureRuud Teunissen - Personal Test Improvement -  Dealing with the Future
Ruud Teunissen - Personal Test Improvement - Dealing with the Future
 
Vipul Kocher - Software Testing, A Framework Based Approach
Vipul Kocher - Software Testing, A Framework Based ApproachVipul Kocher - Software Testing, A Framework Based Approach
Vipul Kocher - Software Testing, A Framework Based Approach
 
Mats Grindal - Risk-Based Testing - Details of Our Success
Mats Grindal - Risk-Based Testing - Details of Our Success Mats Grindal - Risk-Based Testing - Details of Our Success
Mats Grindal - Risk-Based Testing - Details of Our Success
 
Doron Reuveni - The Mobile App Quality Challenge - EuroSTAR 2010
Doron Reuveni - The Mobile App Quality Challenge - EuroSTAR 2010Doron Reuveni - The Mobile App Quality Challenge - EuroSTAR 2010
Doron Reuveni - The Mobile App Quality Challenge - EuroSTAR 2010
 
Using Functional ,Test Automation to Prevent Defects from Escaping the Develo...
Using Functional ,Test Automation to Prevent Defects from Escaping the Develo...Using Functional ,Test Automation to Prevent Defects from Escaping the Develo...
Using Functional ,Test Automation to Prevent Defects from Escaping the Develo...
 

Similar to Otto Vinter - Analysing Your Defect Data for Improvement Potential

ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
Yogindernath Gupta
 
Reporting On The Testing Process
Reporting On The Testing ProcessReporting On The Testing Process
Reporting On The Testing Process
gavhays
 

Similar to Otto Vinter - Analysing Your Defect Data for Improvement Potential (20)

Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys Bldg
 
01 the value of quality
01   the value of quality01   the value of quality
01 the value of quality
 
Software Engineering by Pankaj Jalote
Software Engineering by Pankaj JaloteSoftware Engineering by Pankaj Jalote
Software Engineering by Pankaj Jalote
 
4 sdlc and stlc
4 sdlc and stlc4 sdlc and stlc
4 sdlc and stlc
 
Are bugs eating your software budget?
Are bugs eating your software budget? Are bugs eating your software budget?
Are bugs eating your software budget?
 
IT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management ProcessIT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management Process
 
From Data to Insights: How IT Operations Data Can Boost Quality
From Data to Insights: How IT Operations Data Can Boost QualityFrom Data to Insights: How IT Operations Data Can Boost Quality
From Data to Insights: How IT Operations Data Can Boost Quality
 
ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2
 
Industrial Training in Software Testing
Industrial Training in Software TestingIndustrial Training in Software Testing
Industrial Training in Software Testing
 
Feasible
FeasibleFeasible
Feasible
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710
 
ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2
 
Quality management
Quality managementQuality management
Quality management
 
Reporting On The Testing Process
Reporting On The Testing ProcessReporting On The Testing Process
Reporting On The Testing Process
 
Design For Six Sigma Overview
Design For Six Sigma OverviewDesign For Six Sigma Overview
Design For Six Sigma Overview
 
Establishing A Defect Prediction Model Using A Combination of Product Metrics...
Establishing A Defect Prediction Model Using A Combination of Product Metrics...Establishing A Defect Prediction Model Using A Combination of Product Metrics...
Establishing A Defect Prediction Model Using A Combination of Product Metrics...
 
Mi0033
Mi0033Mi0033
Mi0033
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 

More from TEST Huddle

More from TEST Huddle (20)

Why We Need Diversity in Testing- Accenture
Why We Need Diversity in Testing- AccentureWhy We Need Diversity in Testing- Accenture
Why We Need Diversity in Testing- Accenture
 
Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar
 
Why you Shouldnt Automated But You Will Anyway
Why you Shouldnt Automated But You Will Anyway Why you Shouldnt Automated But You Will Anyway
Why you Shouldnt Automated But You Will Anyway
 
Being a Tester in Scrum
Being a Tester in ScrumBeing a Tester in Scrum
Being a Tester in Scrum
 
Leveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional TestsLeveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional Tests
 
Using Test Trees to get an Overview of Test Work
Using Test Trees to get an Overview of Test WorkUsing Test Trees to get an Overview of Test Work
Using Test Trees to get an Overview of Test Work
 
Big Data: The Magic to Attain New Heights
Big Data:  The Magic to Attain New HeightsBig Data:  The Magic to Attain New Heights
Big Data: The Magic to Attain New Heights
 
Will Robots Replace Testers?
Will Robots Replace Testers?Will Robots Replace Testers?
Will Robots Replace Testers?
 
TDD For The Rest Of Us
TDD For The Rest Of UsTDD For The Rest Of Us
TDD For The Rest Of Us
 
Scaling Agile with LeSS (Large Scale Scrum)
Scaling Agile with LeSS (Large Scale Scrum)Scaling Agile with LeSS (Large Scale Scrum)
Scaling Agile with LeSS (Large Scale Scrum)
 
Creating Agile Test Strategies for Larger Enterprises
Creating Agile Test Strategies for Larger EnterprisesCreating Agile Test Strategies for Larger Enterprises
Creating Agile Test Strategies for Larger Enterprises
 
Is There A Risk?
Is There A Risk?Is There A Risk?
Is There A Risk?
 
Are Your Tests Well-Travelled? Thoughts About Test Coverage
Are Your Tests Well-Travelled? Thoughts About Test CoverageAre Your Tests Well-Travelled? Thoughts About Test Coverage
Are Your Tests Well-Travelled? Thoughts About Test Coverage
 
Growing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersGrowing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for Testers
 
Do we need testers on agile teams?
Do we need testers on agile teams?Do we need testers on agile teams?
Do we need testers on agile teams?
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
 
Testers & Teams on the Agile Fluency™ Journey
Testers & Teams on the Agile Fluency™ Journey Testers & Teams on the Agile Fluency™ Journey
Testers & Teams on the Agile Fluency™ Journey
 
Practical Test Strategy Using Heuristics
Practical Test Strategy Using HeuristicsPractical Test Strategy Using Heuristics
Practical Test Strategy Using Heuristics
 
Thinking Through Your Role
Thinking Through Your RoleThinking Through Your Role
Thinking Through Your Role
 
Using Selenium 3 0
Using Selenium 3 0Using Selenium 3 0
Using Selenium 3 0
 

Recently uploaded

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 

Recently uploaded (20)

Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 

Otto Vinter - Analysing Your Defect Data for Improvement Potential

  • 1. Otto Vinter Software Engineering Mentor Tel/Fax: +45 4399 2662, Mobile: +45 4045 0771 vinter@inet.uni2.dk www.vinter.suite.dk
  • 2. Why Defect Analysis?Why Defect Analysis? Objective  identify why defects occur  help prevent defect insertion Assumption  defect detection costs both time and money  defects cost more when detected later in the life cycle  fewer defects can be inserted through training/education Strategy  move defect detection to earlier parts of the life cycle  avoid defect insertion by improving the process
  • 3. Defect Analysis ModelsDefect Analysis Models Mathematical models  quantitative analysis  statistics  growth curve modelling  comparison to historical data  not easily translatable to corrective action Causal analysis  qualitative analysis  investigate details of a sample of defects  fewer restrictions on what can be analysed  time consuming  harder to aggregate  easy to translate to individual improvement actions
  • 4. Defect Analysis in PracticeDefect Analysis in Practice Why mathematical models often fail to predict  low-level maturity processes are the norm  software development is not a production process  personal and team issues dominate Why causal analysis often works  focuses on prevention  addresses individual and team issues  feed-back, education, motivation  bottom-up process improvement
  • 5. Tools for Performing Defect AnalysisTools for Performing Defect Analysis For classifying defects  Boris Beizer’s bug taxonomy For capturing quantitative information  When found: distribution over time (before/after release)  Where found: distribution across system parts (subsystems/modules)  Who found: distribution across stakeholder groups (project/specialists/customers) For capturing qualitative information  Interviews with the relevant developers  What happened: listen and learn (problem/explanation/insight/cause)  How to prevent: ad-hoc check lists (literature/history/experience)
  • 6. Retrospective Defect AnalysisRetrospective Defect Analysis Retrospective analysis  combined bug classification and qualitative analysis  performed on a sample of at least 100 bug reports  investigates potential prevention techniques  proposes focused improvement actions Interview sessions  1-2 developers and 1-2 process consultants  app. 4 min / bug for classification and qualitative information  app. 30 minutes / bug for detailed analysis of selected bugs to determine potentials for improvement (prevention)
  • 7. When Are Defects Found (example)When Are Defects Found (example) 0 10 20 30 40 50 -327 -297 -267 -237 -207 -177 -147 -117 -87 -57 -27 3 33 63 93 123 153 183 213 243 273 303 333 363 393 423 453 483 513 543 573 603 633 Customers All
  • 8. Defect Detection Percentage Over TimeDefect Detection Percentage Over Time (example)(example) DDP(t) = Defects before release / All defects (t) % 0,00 10,00 20,00 30,00 40,00 50,00 60,00 70,00 80,00 90,00 100,00 0 30 60 90 120 150 180 210 240 270 300 330 360 390 420 450 480 510 540 570 600 630
  • 9. Where / Who Found the Defects (example)Where / Who Found the Defects (example) 0 5 10 15 20 25 30 Communication Other Parts, Unspecified System Administration Data Processing User Interface Customers Sales/support people Project Group %
  • 10. Boris Beizer’s Bug TaxonomyBoris Beizer’s Bug Taxonomy Bug classification  nine main categories  detailed in up to four levels  open and extendable Statistics  Boris Beizer - 16,209 bugs in Assembler, FORTRAN, COBOL, ADA, C - primarily US defence, aerospace, and telecommunication - collected before 1989  Otto Vinter - 982 bugs in Pascal, C, C++ - embedded and PC applications at Brüel & Kjær, DK - collected from 1992 – 1998 More information: www.vinter.suite.dk/engdefana.htm
  • 11. The Beizer Bug TaxonomyThe Beizer Bug Taxonomy 1. Requirements and Features 2. Functionality as Implemented 3. Structural Bugs 4. Data 5. Implementation 6. Integration 7. System and Software Architecture 8. Test Definition or Execution Bugs 9. Other Bugs, Unspecified
  • 12. Bug Taxonomy NotationBug Taxonomy Notation Each category is detailed to a depth of 4+ levels - 3xxx -- structural bugs in the implemented software - 32xx -- processing bugs - 322x -- expression evaluation bugs - 3222 -- arithmetic expressions bugs - 3222.1 -- wrong operator bugs The "x" is a place holder for possible future filling in of numbers as the taxonomy is (inevitably) expanded. Categories ending on “9” are used when a finer breakdown is not available, e.g. for bugs that do not fit in the other (sub)categories: - 9xxx -- other or unspecified bugs - 39xx -- other structural bugs - 329x -- other processing bugs - 3229 -- other expression evaluation bugs - 3222.9 -- other arithmetic bugs
  • 13. B&K Top 12 Beizer Categories (52% of all bugs)B&K Top 12 Beizer Categories (52% of all bugs) 7 6 5 4 3 3 3 3 3 3 3 8 0 1 2 3 4 5 6 7 8 9 10 211xFeature misunderstood, Wrong 231xMissing cases 9xxxOther bugs, unspecified 218xFeature interactions 324xCleanup 323xInitialization 131xIncomplete requirements 132xMissing, unspecified requirement 1621 Feature Added 413xData definition initial, default values 241xDomain misunderstood, Wrong 8111 Requirements misunderstood in test design % B&K
  • 14. Top Prevention Techniques (expensive example)Top Prevention Techniques (expensive example) % External Software Stress Test (301) Functional Prototype, Daily Tasks (230) Product Expert Screen Review (280) Functional Protoype, Stress Cases (232) Paper M ockup, Daily Tasks (210) Orthogonality Check (721) 0 2 4 6 8 10 12 Hitrate Savings Perform ance Specification (820)
  • 15. Top Prevention Categories (simpler/cheaper example)Top Prevention Categories (simpler/cheaper example) 0,0 5,0 10,0 15,0 20,0 25,0 Better analysis of consequences Better analysis of requirements Unknown Improved code review Enforce coding standards %
  • 16. 1st Improvement Action: The Prevention of1st Improvement Action: The Prevention of Errors through Experience-driven Test EffortsErrors through Experience-driven Test Efforts (PET)(PET) Results of the analysis of bug reports  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%) Action: Improve Testing Processes  static analysis - source code complexity, data flow anomalies, coding standards  dynamic analysis - code coverage by test cases, cross references code to test cases Funded by CEC. More information: www.vinter.suite.dk/engswtest.htm
  • 17. Results of the Improved Testing ProcessResults of the Improved Testing Process 46% Improvement in testing efficiency  removing static bugs  increasing unit branch coverage to > 85% 75% Reduction in production-release bugs  Compared to trial-release 70% Requirements bugs in production-release Next action: Improve Requirements Engineering
  • 18. Results of the analysis of requirements bugs  requirements related bugs: 51%  usability issues dominate: 64%  external software issues: 28%  functionality issues: 22% Action: Improve Requirements Elicitation and Validation  Scenarios - Relate demands to use situations. Describe tasks for each scenario.  Usability Test - Check that the users are able to use the system for daily tasks, based on a navigational prototype of the user interface. Funded by CEC. More information: www.vinter.suite.dk/engreqeng.htm 2nd Improvement Action: A Methodology for Preventing2nd Improvement Action: A Methodology for Preventing Requirements Issues from Becoming Defects (PRIDE)Requirements Issues from Becoming Defects (PRIDE) Missing 29% Changed 24% Misunderstood 38% Other 9%
  • 19. Results of the 2nd Improvement ActionResults of the 2nd Improvement Action Product sold more than twice as many copies in the first year  compared to a similar product developed for a similar domain by the same team Usability was exceptional in the market  users’ interaction with the product was totally changed as a result of the early usability tests Almost 3 times increase in productivity for the development of the user interface 27% reduction in problem reports
  • 20. When the benefits of performing a defectWhen the benefits of performing a defect analysis are so evident, why don’t you startanalysis are so evident, why don’t you start analysing your defect data ?analysing your defect data ? Thank you for listeningThank you for listening Otto Vinter Software Engineering Mentor Tel/Fax: +45 4399 2662, Mobile: +45 4045 0771 vinter@inet.uni2.dk www.vinter.suite.dk