SlideShare a Scribd company logo
************ [Using Static Analysis to Find Bugs – Pugh, Hovemeyer, Morgenthaler & Penix]********************
A static analysis involves the automated evaluation of a system’s source code or design without actually executing it.
Rather than trying to prove that the code fulfills its specification, such tools look for violations of recommended
programming practice, places in which code might deference a null pointer or overflow an array. They also flag an issue
such as a comparison that can’t possibly be true.
FindBugs is an example of static-analysis tool that looks for coding defects.
Type of issues that FIndBugs identifies.
 Infinite recursive loop
 When software invokes a method but ignores its return value
 When developer creates an exception but forgets to throw it
 Using the wrong relational or Boolean operation
 Situations in which the code checks a value for null in some places and unconditionally dereferences it in others.
 Find places in which two objects guaranteed to be of unrelated types are compared for equality
 Checking whether a double value is equal to a Double.
Rather than worry about whether particular paths are feasible, FindBugs looks for branches or statements that, if
executed, guarantee that a null pointer exception will occur.
FindBugs Detectors can access information about types, constant values, and special flags, as well as values stored on
the stack or in local variables. Detectors can also traverse the control-flow graph, using the results of data-flow analysis
such as type information, constant values, and nullness.
FindBugs groups each bug pattern into a category (such as correctness, bad practice, performance, and
internationalization) and assigns each bug pattern report either high, medium, or low priority. FindBugs determines
priorities via heuristics unique to each detector or pattern that aren’t necessarily comparable across bug patterns. In
normal operation, FindBugs doesn’t report low-priority warnings.
************ [Return on Investment Models for static analysis tools – Khaled El Emam / 2003]*******************
Types of Evaluations
 Metrics are collected from the code or design. These metrics
quantitatively characterize the size of the system, the coupling among
the system’s components, inheritance relationships among classes in an
object-oriented system, and cohesion within functions and classes.
 Potential defects in the code are identified. For example, the use of
uninitialized variables or NULL pointers, functions returning references
to local objects, array bound violations, and incorrect memory
deallocation are all likely to lead to a failure in the software
 Visualization capabilities. For large systems, the visualization can give
a concise picture of which parts of the system communicate with each
other, where the bottlenecks are, which parts are more complex than
others.
Types of actions based on information provided by evaluation
 Automatic detection of defects
 Risk Management
 Efficient changes
 Discovery of structured code
Every project has a fixed and overhead
costs. These include things like rent, furniture, and
electricity bills. Construction costs consist of the
effort associated with the actual software
development activities, such as requirements
analysis, design and coding. Defect detection costs
are the effort to look for defects introduced during
construction. Defect detection includes activities
such as inspections (peer reviews), testing, and
root cause analysis. Rework costs are all costs to fix
defects.
There are rework costs pre-release (before
general availability), and rework costs post-
release. Pre-release rework is due to fixing defects found during inspections and testing, as well as other defect detection
activities before the product is released. Post-release rework is due to fixing defects that were detected largely by
customers. Although, a minority of defects will be found through internal testing even after a product is released. After
a product is released, further effort is spent adding new features and porting the application. This breakdown covers the
total life cycle of a software product.
An isolation effort when making a change refers to the effort to recreate the problem and the trace from
observed failure to the defect.
Static Analysis can reduce costs by
1. Reductions in the construction costs and new feature costs. This can be achieved through increased reuse.
2. Reductions in rework costs.
Payoff from reuse
Payoff from better defect detection techniques
Automatic defect detection essentially eliminates the defect detection costs. Benefits are automatic:
1. Benefits compared to not having any inspections
2. Benefits compared to having design and code inspections
Risk assessment techniques would allow the project to inspect only the high risk modules or components. It allows
focused or targeted design and code inspections.
1. Benefits of inspecting everything rather than focusing
on the higher risk modules
2. Not performing any inspections
Static analysis can reduce isolation effort when making
changes to fix defects.
Post release costs should be taken into account is that these
costs have a direct impact on time-to-profit.
Return on Investment models for different static analysis techniques
1. EXAMPLE: Automated Defect Detection
2. EXAMPLE: Improving Maintenance Efficiency
3. EXAMPLE : Risk Assessment
4. EXAMPLE: Higher Reuse

More Related Content

PPTX
Black Box Testing
PDF
Black Box Testing
PPT
Black box and white box testing
PPTX
Test design techniques
PPT
Black box testing lecture 11
PPTX
Blackbox
DOC
Black box testing
PPTX
Black box software testing
Black Box Testing
Black Box Testing
Black box and white box testing
Test design techniques
Black box testing lecture 11
Blackbox
Black box testing
Black box software testing

What's hot (20)

PPTX
Equivalence class testing
PPTX
unit testing and debugging
PPT
Validation and verification
PDF
Software Testing Techniques: An Overview
PPTX
WHITE BOX & BLACK BOX TESTING IN DATABASE
PPT
Slides chapters 13-14
PPS
Lesson 2....PPT 1
PPT
Testing strategies
PPTX
formal verification
PPTX
Testing &ampdebugging
PPT
Ppt19
PPTX
Software Testing Foundations Part 4 - Black Box Testing
PPT
12 functional-system-testing
PPTX
Black box testing or behavioral testing
PPTX
Object Oriented Testing
PPT
Taxonomy for bugs
PPTX
Black box testing methods for software components
PPTX
Control Flow Testing
PPTX
5 black box and grey box testing
PPT
Black box testing
Equivalence class testing
unit testing and debugging
Validation and verification
Software Testing Techniques: An Overview
WHITE BOX & BLACK BOX TESTING IN DATABASE
Slides chapters 13-14
Lesson 2....PPT 1
Testing strategies
formal verification
Testing &ampdebugging
Ppt19
Software Testing Foundations Part 4 - Black Box Testing
12 functional-system-testing
Black box testing or behavioral testing
Object Oriented Testing
Taxonomy for bugs
Black box testing methods for software components
Control Flow Testing
5 black box and grey box testing
Black box testing
Ad

Similar to Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analysis Tools (20)

DOC
ISTQB Advanced Study Guide - 7
PDF
Reading Summary - Effective Software Defect Tracking + Pragmatic Unit Testing
PDF
How to Make the Most of Regression and Unit Testing
PPTX
unittesting-190620114546 (1).pptx document
PPTX
object oriented system analysis and design
PPTX
Coding, Testing, Black-box and White-box Testing.pptx
PPTX
Successful Software Projects - What you need to consider
PPTX
Ch 2 Apraoaches Of Software Testing
PDF
How to Make the Most of Regression and Unit Testing_ A Comprehensive Guide.pdf
DOCX
ST_final (2).docx
DOCX
Unit 4 Software engineering deatiled notes.docx
PDF
Software testing
PDF
What Is Unit Testing_ A Complete Guide With Examples.pdf
PDF
What Is Unit Testing A Complete Guide With Examples.pdf
PPTX
Software testing
PDF
Software Testing Types Comprehensive Guide
PDF
Software testing
PDF
What is integration testing
PDF
6. oose testing
PPTX
SDET UNIT 2.pptx
ISTQB Advanced Study Guide - 7
Reading Summary - Effective Software Defect Tracking + Pragmatic Unit Testing
How to Make the Most of Regression and Unit Testing
unittesting-190620114546 (1).pptx document
object oriented system analysis and design
Coding, Testing, Black-box and White-box Testing.pptx
Successful Software Projects - What you need to consider
Ch 2 Apraoaches Of Software Testing
How to Make the Most of Regression and Unit Testing_ A Comprehensive Guide.pdf
ST_final (2).docx
Unit 4 Software engineering deatiled notes.docx
Software testing
What Is Unit Testing_ A Complete Guide With Examples.pdf
What Is Unit Testing A Complete Guide With Examples.pdf
Software testing
Software Testing Types Comprehensive Guide
Software testing
What is integration testing
6. oose testing
SDET UNIT 2.pptx
Ad

More from Artemisa Yescas Engler (8)

PDF
Maestría en Ciencias de la Computación - Tec de Mty - Campus Guadalajara
PDF
Reading Summary - Business Modeling + Peer Code Review + SW Inspections
PDF
Reading Summary - Software Requirements + Characteristics of Well Written Req...
PDF
Reading Summary - Agile Documentation + Continuous Integration
PDF
Reading Summary - Software Agile Development + Scrum
PDF
Reading Summary - Teamwork + Team Structure + Configuration Management
PDF
Reading Summary - Team Motivation + Software Lifecycles Models
PDF
About Node.js
Maestría en Ciencias de la Computación - Tec de Mty - Campus Guadalajara
Reading Summary - Business Modeling + Peer Code Review + SW Inspections
Reading Summary - Software Requirements + Characteristics of Well Written Req...
Reading Summary - Agile Documentation + Continuous Integration
Reading Summary - Software Agile Development + Scrum
Reading Summary - Teamwork + Team Structure + Configuration Management
Reading Summary - Team Motivation + Software Lifecycles Models
About Node.js

Recently uploaded (20)

PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPT
Introduction Database Management System for Course Database
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
medical staffing services at VALiNTRY
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
ai tools demonstartion for schools and inter college
PDF
Digital Strategies for Manufacturing Companies
PPTX
L1 - Introduction to python Backend.pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Nekopoi APK 2025 free lastest update
PPTX
Transform Your Business with a Software ERP System
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
System and Network Administration Chapter 2
Upgrade and Innovation Strategies for SAP ERP Customers
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Introduction Database Management System for Course Database
2025 Textile ERP Trends: SAP, Odoo & Oracle
ManageIQ - Sprint 268 Review - Slide Deck
Wondershare Filmora 15 Crack With Activation Key [2025
How Creative Agencies Leverage Project Management Software.pdf
Operating system designcfffgfgggggggvggggggggg
medical staffing services at VALiNTRY
Which alternative to Crystal Reports is best for small or large businesses.pdf
ai tools demonstartion for schools and inter college
Digital Strategies for Manufacturing Companies
L1 - Introduction to python Backend.pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Design an Analysis of Algorithms II-SECS-1021-03
Nekopoi APK 2025 free lastest update
Transform Your Business with a Software ERP System
CHAPTER 2 - PM Management and IT Context
Softaken Excel to vCard Converter Software.pdf
System and Network Administration Chapter 2

Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analysis Tools

  • 1. ************ [Using Static Analysis to Find Bugs – Pugh, Hovemeyer, Morgenthaler & Penix]******************** A static analysis involves the automated evaluation of a system’s source code or design without actually executing it. Rather than trying to prove that the code fulfills its specification, such tools look for violations of recommended programming practice, places in which code might deference a null pointer or overflow an array. They also flag an issue such as a comparison that can’t possibly be true. FindBugs is an example of static-analysis tool that looks for coding defects. Type of issues that FIndBugs identifies.  Infinite recursive loop  When software invokes a method but ignores its return value  When developer creates an exception but forgets to throw it  Using the wrong relational or Boolean operation  Situations in which the code checks a value for null in some places and unconditionally dereferences it in others.  Find places in which two objects guaranteed to be of unrelated types are compared for equality  Checking whether a double value is equal to a Double. Rather than worry about whether particular paths are feasible, FindBugs looks for branches or statements that, if executed, guarantee that a null pointer exception will occur. FindBugs Detectors can access information about types, constant values, and special flags, as well as values stored on the stack or in local variables. Detectors can also traverse the control-flow graph, using the results of data-flow analysis such as type information, constant values, and nullness. FindBugs groups each bug pattern into a category (such as correctness, bad practice, performance, and internationalization) and assigns each bug pattern report either high, medium, or low priority. FindBugs determines priorities via heuristics unique to each detector or pattern that aren’t necessarily comparable across bug patterns. In normal operation, FindBugs doesn’t report low-priority warnings. ************ [Return on Investment Models for static analysis tools – Khaled El Emam / 2003]******************* Types of Evaluations  Metrics are collected from the code or design. These metrics quantitatively characterize the size of the system, the coupling among the system’s components, inheritance relationships among classes in an object-oriented system, and cohesion within functions and classes.  Potential defects in the code are identified. For example, the use of uninitialized variables or NULL pointers, functions returning references to local objects, array bound violations, and incorrect memory deallocation are all likely to lead to a failure in the software  Visualization capabilities. For large systems, the visualization can give a concise picture of which parts of the system communicate with each other, where the bottlenecks are, which parts are more complex than others. Types of actions based on information provided by evaluation  Automatic detection of defects  Risk Management  Efficient changes  Discovery of structured code
  • 2. Every project has a fixed and overhead costs. These include things like rent, furniture, and electricity bills. Construction costs consist of the effort associated with the actual software development activities, such as requirements analysis, design and coding. Defect detection costs are the effort to look for defects introduced during construction. Defect detection includes activities such as inspections (peer reviews), testing, and root cause analysis. Rework costs are all costs to fix defects. There are rework costs pre-release (before general availability), and rework costs post- release. Pre-release rework is due to fixing defects found during inspections and testing, as well as other defect detection activities before the product is released. Post-release rework is due to fixing defects that were detected largely by customers. Although, a minority of defects will be found through internal testing even after a product is released. After a product is released, further effort is spent adding new features and porting the application. This breakdown covers the total life cycle of a software product. An isolation effort when making a change refers to the effort to recreate the problem and the trace from observed failure to the defect. Static Analysis can reduce costs by 1. Reductions in the construction costs and new feature costs. This can be achieved through increased reuse. 2. Reductions in rework costs. Payoff from reuse
  • 3. Payoff from better defect detection techniques Automatic defect detection essentially eliminates the defect detection costs. Benefits are automatic: 1. Benefits compared to not having any inspections 2. Benefits compared to having design and code inspections Risk assessment techniques would allow the project to inspect only the high risk modules or components. It allows focused or targeted design and code inspections. 1. Benefits of inspecting everything rather than focusing on the higher risk modules 2. Not performing any inspections Static analysis can reduce isolation effort when making changes to fix defects. Post release costs should be taken into account is that these costs have a direct impact on time-to-profit.
  • 4. Return on Investment models for different static analysis techniques 1. EXAMPLE: Automated Defect Detection
  • 5. 2. EXAMPLE: Improving Maintenance Efficiency
  • 6. 3. EXAMPLE : Risk Assessment