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

What's hot

Equivalence class testing
Equivalence  class testingEquivalence  class testing
Equivalence class testing
Mani Kanth
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
KarthigaGunasekaran1
 
Validation and verification
Validation and verificationValidation and verification
Validation and verification
De La Salle University-Manila
 
Software Testing Techniques: An Overview
Software Testing Techniques: An Overview Software Testing Techniques: An Overview
Software Testing Techniques: An Overview
QA InfoTech
 
WHITE BOX & BLACK BOX TESTING IN DATABASE
WHITE BOX & BLACK BOXTESTING IN DATABASEWHITE BOX & BLACK BOXTESTING IN DATABASE
WHITE BOX & BLACK BOX TESTING IN DATABASE
Salman Memon
 
Slides chapters 13-14
Slides chapters 13-14Slides chapters 13-14
Slides chapters 13-14
Priyanka Shetty
 
Lesson 2....PPT 1
Lesson 2....PPT 1Lesson 2....PPT 1
Lesson 2....PPT 1
bhushan Nehete
 
Testing strategies
Testing strategiesTesting strategies
Testing strategies
chaitanya_yarlagadda
 
formal verification
formal verificationformal verification
formal verification
Toseef Aslam
 
Testing &ampdebugging
Testing &ampdebuggingTesting &ampdebugging
Testing &ampdebugging
rajshreemuthiah
 
Ppt19
Ppt19Ppt19
Ppt19
raj732723
 
Software Testing Foundations Part 4 - Black Box Testing
Software Testing Foundations Part 4 - Black Box TestingSoftware Testing Foundations Part 4 - Black Box Testing
Software Testing Foundations Part 4 - Black Box Testing
Nikita Knysh
 
12 functional-system-testing
12 functional-system-testing12 functional-system-testing
12 functional-system-testing
nickynicks76
 
Black box testing or behavioral testing
Black box testing or behavioral testingBlack box testing or behavioral testing
Black box testing or behavioral testing
Slideshare
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
AMITJain879
 
Taxonomy for bugs
Taxonomy for bugsTaxonomy for bugs
Taxonomy for bugs
Harika Krupal
 
Black box testing methods for software components
Black box testing methods for software componentsBlack box testing methods for software components
Black box testing methods for software components
putiadetiara
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow Testing
Hirra Sultan
 
5 black box and grey box testing
5   black box and grey box testing5   black box and grey box testing
5 black box and grey box testing
Yisal Khan
 
Black box testing
Black box testingBlack box testing
Black box testing
Abdul Basit
 

What's hot (20)

Equivalence class testing
Equivalence  class testingEquivalence  class testing
Equivalence class testing
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
 
Validation and verification
Validation and verificationValidation and verification
Validation and verification
 
Software Testing Techniques: An Overview
Software Testing Techniques: An Overview Software Testing Techniques: An Overview
Software Testing Techniques: An Overview
 
WHITE BOX & BLACK BOX TESTING IN DATABASE
WHITE BOX & BLACK BOXTESTING IN DATABASEWHITE BOX & BLACK BOXTESTING IN DATABASE
WHITE BOX & BLACK BOX TESTING IN DATABASE
 
Slides chapters 13-14
Slides chapters 13-14Slides chapters 13-14
Slides chapters 13-14
 
Lesson 2....PPT 1
Lesson 2....PPT 1Lesson 2....PPT 1
Lesson 2....PPT 1
 
Testing strategies
Testing strategiesTesting strategies
Testing strategies
 
formal verification
formal verificationformal verification
formal verification
 
Testing &ampdebugging
Testing &ampdebuggingTesting &ampdebugging
Testing &ampdebugging
 
Ppt19
Ppt19Ppt19
Ppt19
 
Software Testing Foundations Part 4 - Black Box Testing
Software Testing Foundations Part 4 - Black Box TestingSoftware Testing Foundations Part 4 - Black Box Testing
Software Testing Foundations Part 4 - Black Box Testing
 
12 functional-system-testing
12 functional-system-testing12 functional-system-testing
12 functional-system-testing
 
Black box testing or behavioral testing
Black box testing or behavioral testingBlack box testing or behavioral testing
Black box testing or behavioral testing
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
 
Taxonomy for bugs
Taxonomy for bugsTaxonomy for bugs
Taxonomy for bugs
 
Black box testing methods for software components
Black box testing methods for software componentsBlack box testing methods for software components
Black box testing methods for software components
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow Testing
 
5 black box and grey box testing
5   black box and grey box testing5   black box and grey box testing
5 black box and grey box testing
 
Black box testing
Black box testingBlack box testing
Black box testing
 

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

ISTQB Advanced Study Guide - 7
ISTQB Advanced Study Guide - 7ISTQB Advanced Study Guide - 7
ISTQB Advanced Study Guide - 7
Yogindernath Gupta
 
Reading Summary - Effective Software Defect Tracking + Pragmatic Unit Testing
Reading Summary - Effective Software Defect Tracking + Pragmatic Unit TestingReading Summary - Effective Software Defect Tracking + Pragmatic Unit Testing
Reading Summary - Effective Software Defect Tracking + Pragmatic Unit Testing
Artemisa Yescas Engler
 
How to Make the Most of Regression and Unit Testing.pdf
How to Make the Most of Regression and Unit Testing.pdfHow to Make the Most of Regression and Unit Testing.pdf
How to Make the Most of Regression and Unit Testing.pdf
Abhay Kumar
 
unittesting-190620114546 (1).pptx document
unittesting-190620114546 (1).pptx documentunittesting-190620114546 (1).pptx document
unittesting-190620114546 (1).pptx document
AkshayaM79
 
object oriented system analysis and design
object oriented system analysis and designobject oriented system analysis and design
object oriented system analysis and design
wekineheshete
 
Successful Software Projects - What you need to consider
Successful Software Projects - What you need to considerSuccessful Software Projects - What you need to consider
Successful Software Projects - What you need to consider
LloydMoore
 
Ch 2 Apraoaches Of Software Testing
Ch 2 Apraoaches Of Software Testing Ch 2 Apraoaches Of Software Testing
Ch 2 Apraoaches Of Software Testing
Prof .Pragati Khade
 
ST_final (2).docx
ST_final (2).docxST_final (2).docx
ST_final (2).docx
LakshmishaRALakshmis
 
Software testing
Software testing   Software testing
Software testing
Ravindranath Tagore
 
Software testing
Software testingSoftware testing
Software testing
Ashu Bansal
 
Software Testing Types Comprehensive Guide
Software Testing Types Comprehensive GuideSoftware Testing Types Comprehensive Guide
Software Testing Types Comprehensive Guide
Testgrid.io
 
Software testing
Software testingSoftware testing
Software testing
Rico-j Laurente
 
What is integration testing
What is integration testingWhat is integration testing
What is integration testing
TestingXperts
 
6. oose testing
6. oose testing6. oose testing
6. oose testing
Ashenafi Workie
 
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
PallawiBulakh1
 
Software test life cycle
Software test life cycleSoftware test life cycle
Software testing for project report .pdf
Software testing for project report .pdfSoftware testing for project report .pdf
Software testing for project report .pdf
Kamal Acharya
 
Testing
Testing Testing
Testing
poojadatt
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
MikhailVladimirov
 
stm f.pdf
stm f.pdfstm f.pdf
stm f.pdf
HarshNagda5
 

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

ISTQB Advanced Study Guide - 7
ISTQB Advanced Study Guide - 7ISTQB Advanced Study Guide - 7
ISTQB Advanced Study Guide - 7
 
Reading Summary - Effective Software Defect Tracking + Pragmatic Unit Testing
Reading Summary - Effective Software Defect Tracking + Pragmatic Unit TestingReading Summary - Effective Software Defect Tracking + Pragmatic Unit Testing
Reading Summary - Effective Software Defect Tracking + Pragmatic Unit Testing
 
How to Make the Most of Regression and Unit Testing.pdf
How to Make the Most of Regression and Unit Testing.pdfHow to Make the Most of Regression and Unit Testing.pdf
How to Make the Most of Regression and Unit Testing.pdf
 
unittesting-190620114546 (1).pptx document
unittesting-190620114546 (1).pptx documentunittesting-190620114546 (1).pptx document
unittesting-190620114546 (1).pptx document
 
object oriented system analysis and design
object oriented system analysis and designobject oriented system analysis and design
object oriented system analysis and design
 
Successful Software Projects - What you need to consider
Successful Software Projects - What you need to considerSuccessful Software Projects - What you need to consider
Successful Software Projects - What you need to consider
 
Ch 2 Apraoaches Of Software Testing
Ch 2 Apraoaches Of Software Testing Ch 2 Apraoaches Of Software Testing
Ch 2 Apraoaches Of Software Testing
 
ST_final (2).docx
ST_final (2).docxST_final (2).docx
ST_final (2).docx
 
Software testing
Software testing   Software testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Software Testing Types Comprehensive Guide
Software Testing Types Comprehensive GuideSoftware Testing Types Comprehensive Guide
Software Testing Types Comprehensive Guide
 
Software testing
Software testingSoftware testing
Software testing
 
What is integration testing
What is integration testingWhat is integration testing
What is integration testing
 
6. oose testing
6. oose testing6. oose testing
6. oose testing
 
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
 
Software test life cycle
Software test life cycleSoftware test life cycle
Software test life cycle
 
Software testing for project report .pdf
Software testing for project report .pdfSoftware testing for project report .pdf
Software testing for project report .pdf
 
Testing
Testing Testing
Testing
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
 
stm f.pdf
stm f.pdfstm f.pdf
stm f.pdf
 

More from Artemisa Yescas Engler

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

More from Artemisa Yescas Engler (8)

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

Recently uploaded

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
Massimo Artizzu
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
Karya Keeper
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 

Recently uploaded (20)

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 

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