SlideShare a Scribd company logo
Software Defects and
SW Reliability Assessment
Kristine Hejna
Maybe you don’t know
• A lot of good work has been done on Software
Defect Metrics.
• Everyone makes mistakes
– Ok, you probably know that – Internalize it!
• You can apply many traditional quality
concepts to software development
– But Zero Defects is not applicable
This should be of interest to quality people interested
in assessing software quality across the lifecycle,
software engineers interested in improving product
quality, and reliability engineers who have not seen
how reliability is assessed in software.
This is not about testing.
Starting Points
• Software Development Life Cycle(SDLC) means
waterfall or agile, iterative, evolutionary, or ?
• A defect is anything that will cause you to change
something you thought you had finished
By caring about defect metrics you understand that you will
have to record and analyze information that doesn’t add
value to your product. It may reduce the cost of the value-
added steps, or reduce other non-value-added work.
All SW Dev has a lifecycle
• Ideally –
– Requirements – learn what the user needs, and what that means
in a computer system
– Design – choose the method for meeting the needs that is
sufficient and cost-effective
– Code (or Implement) - create the sequenced commands and
instructions to the computer system to implement the design
– Test – check that
• Your code implements the design
• Your product satisfies the user need
– Deliver and Support
Dimensions of Software Quality
• Accessibility: The degree to which software can be used comfortably by a wide variety of people, including those
who require assistive technologies like screen magnifiers or voice recognition.
• Compatibility: The suitability for use in different environments like different Operating Systems, Browsers, etc.
• Concurrency: The ability of software to service multiple requests to the same resources at the same time.
• Efficiency: The ability of software to perform well or achieve a result without wasted energy, resources, effort,
time or money.
• Functionality: The ability of software to carry out the functions as specified or desired.
• Installability: The ability of software to be installed in a specified environment.
• Localizability: The ability of software to be used in different languages, time zones etc.
• Maintainability: The ease with which software can be modified (adding or enhancing features, fixing bugs, etc)
• Performance: The speed at which software performs under a particular load.
• Portability: The ability of software to be transferred easily from one location to another.
• Reliability: The ability of software to perform a required function under stated conditions for stated period of time
without any errors.
• Scalability: The measure of software’s ability to increase or decrease in performance in response to changes in
software’s processing demands.
• Security: The extent of protection against unauthorized access, invasion of privacy, theft, loss of data, etc.
• Testability: The ability of software to be easily tested.
• Usability: The degree of software’s ease of use.
Track the Defects
• Record all instances that you or others discover that will make you change the
requirements, the design, the code, the test, the documentation, or any other part
of the product you had assumed didn’t need more work.
• Use a tool, it makes it much easier.
• Track the date, and who found it. You might find one person is a really picky
reviewer.
• Record the lifecycle phase when the defect occurred (did you miss a
requirement?), and when it was found (and the customer won’t accept sans serif
fonts at the final turnover test.)
• Track the cause. With practice and a little thought about how you go about
things, you will find that you have a limited set of causes. This is where
Orthogonal Defect Classification comes in.
Analyze the Defects
• Why collect this info unless you can learn
something?
– One thing you learn is each development is different
• Different team
• Different environment
• Different product
• Different types and numbers of defects
– SW not truly “repeatable process”
• Enough similarities to benefit from analysis
Example –
Different defect profiles
Comm
Satellite
Antenna
• HW focus
• New team
Modem
• HW Focus
• Experienced
team
New Signal
• Message focus
• New team
Old signal
• Message Focus
• Old team
Reliability –
Reduce defects after delivery
0
5
10
15
20
25
30
35
Requirements Design Code Test cycle 1 Test Cycle 2 Test Cycle 3 Post Delivery
Fake Data
insert Detect Rayleigh
FACT: Defect discovery plotted over time as a frequency chart follows a Rayleigh distribution.
Rayleigh Distributions
• Ship Shape
• A target level
for defects
found after
delivery marked
on your plot and
tells you when
you can ship at
that defect
level.
Reliability Growth Function
• Gets better with
time (duh)
• Follows an S
curve (also
unsurprising)
• Inverse Rayleigh
Requirements Defects
• Customers can leave out information that they take for granted.
– “You can crowd the screens with options, I don’t
care” As long as you make the options far enough apart that I can use a
touch interface.
• You can misunderstand, or flub your translation.
• They can be vague, or so detailed that they can’t be tested with
deliverable code (need to have debug features compiled on, for
example).
TERMINOLOGY:
Defects are inserted or injected. This
sounds like you meant it to happen. Don’t
worry about it. They happen, nobody is
perfect.
Design Defects
• When the design will not actually satisfy the
requirements, or when it is incomplete, often with
respect to off-nominal conditions, or failure to
consider constraints.
– Developers tend to think about achieving the
functionality, not about what could go wrong.
– Engineers tend to think within their specialty, which is
why we want “specialty engineering” involved in
design review as well as systems engineers
• Human factors, security, reliability, mechanical
Code Defects
• “Correct” code and lint
• Code that doesn’t do what you think you said
• Insecure code, fragile code, inefficient code
• Code that doesn’t implement the design or
• Code that doesn’t satisfy the requirements
• It is often more valuable to the coder than the
project to track the kinds of coding mistakes
Test Defects
• Seems like something that should not happen
• Happened at my job last week
• People staying up late to finish something take
shortcuts
• Could be configuration management -
– Not the right test config, or data
• Could be testers didn’t get the same message from
the requirements
Classifying Defects - Cause
• Orthogonal Defect Classification (ODC)
– developed in late 1980’s and 1990’s.
– is known to reduce the time taken to perform root
cause analysis by over a factor of 10. The gains come
primarily from a different approach to root cause
analysis, where the ODC data is generated rapidly (in
minutes, as opposed to hours per defect) and analytics
used for the cause and effect analysis
Classifying Defect Causes
• You can use ODC, but it can be unsatisfying
• Allow speculation on cause or description of the problem
– at least 256 characters
• It might be nice to have a separate field for text and a
drop down for faster categorization
• Cause or reason could be the lack of one of the
Dimensions of Software Quality
• More work for analysis, can lead to better long term
results and reliability analysis.
Classifying Defects - Severity
• DEFECT SEVERITY – How bad is the problem?
– Severity and Priority not the same
– Severity and Impact are (usually) the same
• Critical: Defect affects the critical functionality & prevents further application
testing. No workaround.
• Major: Major functionality not working but able to test application. It has
workaround but not obvious.
• Minor: Doesn’t work right, but has a usable workaround
• Trivial: Not as good as it could be or should be, but still works.
Classifying Defects
Priority and Probability
• Priority – how soon does it need to be fixed?
– Sometimes a defect needs to be fixed right away even
when it has a workaround.
– For instance, a feature needed for a demonstration
• Probability – how likely is it to be encountered
– Like risk, probability assessed on 2 factors
– (Frequency of feature use) X (noticeability of bug)
• A spelling error on main page, on an obscure word
More classifications
• Status
– Open – Closed – Deferred – Cancelled – Rejected
– I suggest also “assigned”, “in work”
– Check workflows in tools like Jira
• Once it has been fixed – what component/module
had the problem
Reliability Analysis
• Predicting distribution by time and severity of
defect detections during post-delivery operation.
– Usually not a bathtub model for software –
• It doesn’t wear out and get worse
– Not a Poisson model, with randomly encountered
objects along the path
– Follows the same Rayleigh if you continue to update
the software (fix the found bugs)
– Make use of the defect probability assessment
Resources - Online
• Orthogonal Defect Classification
– http://researcher.watson.ibm.com/researcher/view_gro
up.php?id=480
– https://en.wikipedia.org/wiki/Orthogonal_Defect_Clas
sification
• Standards
– http://standards.ieee.org/findstds/standard/software_an
d_systems_engineering.html
Resources - Online
• Software Reliability
– https://en.wikipedia.org/wiki/Software_reliability_testing -
10K foot level, use its references
– http://johnmusa.com/
– http://www.weibull.com/hotwire/issue84/relbasics84.htm
– http://www.se.rit.edu/~swen-
350/slides/SoftwareReliabilityEngineering.pdf
– http://www.dote.osd.mil/docs/dote-temp-
guidebook/Sw_ReliabilityGrowthApproach_RAMS2013_v1a.p
df
Resources - Online
• Defect Classification for testers
– http://www.requirementdriventesting.com/software-
test-methodology-rdtrule6/
– http://www.softwaretestingstuff.com/2008/05/classific
ation-of-defects-bugs.html
– http://softwaretestingfundamentals.com/defect/
– http://www.softwaretestingclass.com/
– http://www.testingexcellence.com/
– severity-and-priority-difference/
– defect-clustering-in-software-testing/

More Related Content

What's hot

Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
Fatemeh Karimi
 
Software Testing As a Career Path
Software Testing As a Career PathSoftware Testing As a Career Path
Software Testing As a Career Path
Rock Interview
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
David O'Dowd
 
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
IBM Danmark
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
Amardeep Vishwakarma
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
Vashira Ravipanich
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingaaina_katyal
 
Career Paths for Software Professionals
Career Paths for Software ProfessionalsCareer Paths for Software Professionals
Career Paths for Software Professionals
Ahmed Misbah
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Chuu Htet Naing
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
Robert Burrell Donkin
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Naresh Jain
 
Introduction to Quality Improvement
Introduction to Quality ImprovementIntroduction to Quality Improvement
Introduction to Quality Improvement
Joan Dembowski
 
Software Design
Software DesignSoftware Design
Software Design
Ahmed Misbah
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
Bilal Shah
 
Non functional requirements. do we really care…?
Non functional requirements. do we really care…?Non functional requirements. do we really care…?
Non functional requirements. do we really care…?
OSSCube
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
Solano Labs
 
Agile & Secure SDLC
Agile & Secure SDLCAgile & Secure SDLC
Agile & Secure SDLC
Paul Yang
 
Exploratory Mobile Testing Webinar_XBOSoft_jean_annharrison
Exploratory Mobile Testing Webinar_XBOSoft_jean_annharrisonExploratory Mobile Testing Webinar_XBOSoft_jean_annharrison
Exploratory Mobile Testing Webinar_XBOSoft_jean_annharrison
XBOSoft
 
Getting deep
Getting deepGetting deep
Getting deep
Michael Atkin
 

What's hot (20)

Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
 
Software Testing As a Career Path
Software Testing As a Career PathSoftware Testing As a Career Path
Software Testing As a Career Path
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Career Paths for Software Professionals
Career Paths for Software ProfessionalsCareer Paths for Software Professionals
Career Paths for Software Professionals
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
 
Introduction to Quality Improvement
Introduction to Quality ImprovementIntroduction to Quality Improvement
Introduction to Quality Improvement
 
Software Design
Software DesignSoftware Design
Software Design
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Non functional requirements. do we really care…?
Non functional requirements. do we really care…?Non functional requirements. do we really care…?
Non functional requirements. do we really care…?
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Agile & Secure SDLC
Agile & Secure SDLCAgile & Secure SDLC
Agile & Secure SDLC
 
Exploratory Mobile Testing Webinar_XBOSoft_jean_annharrison
Exploratory Mobile Testing Webinar_XBOSoft_jean_annharrisonExploratory Mobile Testing Webinar_XBOSoft_jean_annharrison
Exploratory Mobile Testing Webinar_XBOSoft_jean_annharrison
 
Getting deep
Getting deepGetting deep
Getting deep
 

Similar to Software Defects and SW Reliability Assessment

Topic production code
Topic production codeTopic production code
Topic production code
Kavi Kumar
 
Design testabilty
Design testabiltyDesign testabilty
Design testabilty
Richard Neeve
 
Bug best practice
Bug best practiceBug best practice
Bug best practicegaoliang641
 
Unit 1.pptx
Unit 1.pptxUnit 1.pptx
Unit 1.pptx
MohammadIsmailNaaz
 
CIS512_Topic1.pptx
CIS512_Topic1.pptxCIS512_Topic1.pptx
CIS512_Topic1.pptx
ZeyadAlquaimi1
 
Software process models
Software process modelsSoftware process models
Software process models
Malik WaQas
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
SanskarBhushankar
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
Amna Ch
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
MohammadSamiuddin10
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
Damian T. Gordon
 
QA Basics and PM Overview
QA Basics and PM OverviewQA Basics and PM Overview
QA Basics and PM Overview
Ajay Mani Paudel
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
Cesar Augusto Nogueira
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauro
Matt Tesauro
 
Continuous testing for continuous delivery
Continuous testing for continuous deliveryContinuous testing for continuous delivery
Continuous testing for continuous delivery
David Hart
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
Aviran Mordo
 
Agile
AgileAgile
Agile
Komal2525
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
Ivano Malavolta
 
White box testing
White box testingWhite box testing
White box testing
Neethu Tressa
 
ISTQB - Software development life cycle
ISTQB - Software development life cycleISTQB - Software development life cycle
ISTQB - Software development life cycle
HoangThiHien1
 
PA2557_SQM_Lecture7 - Defect Prevention.pdf
PA2557_SQM_Lecture7 - Defect Prevention.pdfPA2557_SQM_Lecture7 - Defect Prevention.pdf
PA2557_SQM_Lecture7 - Defect Prevention.pdf
hulk smash
 

Similar to Software Defects and SW Reliability Assessment (20)

Topic production code
Topic production codeTopic production code
Topic production code
 
Design testabilty
Design testabiltyDesign testabilty
Design testabilty
 
Bug best practice
Bug best practiceBug best practice
Bug best practice
 
Unit 1.pptx
Unit 1.pptxUnit 1.pptx
Unit 1.pptx
 
CIS512_Topic1.pptx
CIS512_Topic1.pptxCIS512_Topic1.pptx
CIS512_Topic1.pptx
 
Software process models
Software process modelsSoftware process models
Software process models
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
 
QA Basics and PM Overview
QA Basics and PM OverviewQA Basics and PM Overview
QA Basics and PM Overview
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauro
 
Continuous testing for continuous delivery
Continuous testing for continuous deliveryContinuous testing for continuous delivery
Continuous testing for continuous delivery
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
Agile
AgileAgile
Agile
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 
White box testing
White box testingWhite box testing
White box testing
 
ISTQB - Software development life cycle
ISTQB - Software development life cycleISTQB - Software development life cycle
ISTQB - Software development life cycle
 
PA2557_SQM_Lecture7 - Defect Prevention.pdf
PA2557_SQM_Lecture7 - Defect Prevention.pdfPA2557_SQM_Lecture7 - Defect Prevention.pdf
PA2557_SQM_Lecture7 - Defect Prevention.pdf
 

Recently uploaded

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
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
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
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
Globus
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
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
 
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
Georgi Kodinov
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 

Recently uploaded (20)

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
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...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
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
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
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
 
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
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 

Software Defects and SW Reliability Assessment

  • 1. Software Defects and SW Reliability Assessment Kristine Hejna
  • 2. Maybe you don’t know • A lot of good work has been done on Software Defect Metrics. • Everyone makes mistakes – Ok, you probably know that – Internalize it! • You can apply many traditional quality concepts to software development – But Zero Defects is not applicable This should be of interest to quality people interested in assessing software quality across the lifecycle, software engineers interested in improving product quality, and reliability engineers who have not seen how reliability is assessed in software. This is not about testing.
  • 3. Starting Points • Software Development Life Cycle(SDLC) means waterfall or agile, iterative, evolutionary, or ? • A defect is anything that will cause you to change something you thought you had finished By caring about defect metrics you understand that you will have to record and analyze information that doesn’t add value to your product. It may reduce the cost of the value- added steps, or reduce other non-value-added work.
  • 4. All SW Dev has a lifecycle • Ideally – – Requirements – learn what the user needs, and what that means in a computer system – Design – choose the method for meeting the needs that is sufficient and cost-effective – Code (or Implement) - create the sequenced commands and instructions to the computer system to implement the design – Test – check that • Your code implements the design • Your product satisfies the user need – Deliver and Support
  • 5. Dimensions of Software Quality • Accessibility: The degree to which software can be used comfortably by a wide variety of people, including those who require assistive technologies like screen magnifiers or voice recognition. • Compatibility: The suitability for use in different environments like different Operating Systems, Browsers, etc. • Concurrency: The ability of software to service multiple requests to the same resources at the same time. • Efficiency: The ability of software to perform well or achieve a result without wasted energy, resources, effort, time or money. • Functionality: The ability of software to carry out the functions as specified or desired. • Installability: The ability of software to be installed in a specified environment. • Localizability: The ability of software to be used in different languages, time zones etc. • Maintainability: The ease with which software can be modified (adding or enhancing features, fixing bugs, etc) • Performance: The speed at which software performs under a particular load. • Portability: The ability of software to be transferred easily from one location to another. • Reliability: The ability of software to perform a required function under stated conditions for stated period of time without any errors. • Scalability: The measure of software’s ability to increase or decrease in performance in response to changes in software’s processing demands. • Security: The extent of protection against unauthorized access, invasion of privacy, theft, loss of data, etc. • Testability: The ability of software to be easily tested. • Usability: The degree of software’s ease of use.
  • 6. Track the Defects • Record all instances that you or others discover that will make you change the requirements, the design, the code, the test, the documentation, or any other part of the product you had assumed didn’t need more work. • Use a tool, it makes it much easier. • Track the date, and who found it. You might find one person is a really picky reviewer. • Record the lifecycle phase when the defect occurred (did you miss a requirement?), and when it was found (and the customer won’t accept sans serif fonts at the final turnover test.) • Track the cause. With practice and a little thought about how you go about things, you will find that you have a limited set of causes. This is where Orthogonal Defect Classification comes in.
  • 7. Analyze the Defects • Why collect this info unless you can learn something? – One thing you learn is each development is different • Different team • Different environment • Different product • Different types and numbers of defects – SW not truly “repeatable process” • Enough similarities to benefit from analysis
  • 8. Example – Different defect profiles Comm Satellite Antenna • HW focus • New team Modem • HW Focus • Experienced team New Signal • Message focus • New team Old signal • Message Focus • Old team
  • 9. Reliability – Reduce defects after delivery 0 5 10 15 20 25 30 35 Requirements Design Code Test cycle 1 Test Cycle 2 Test Cycle 3 Post Delivery Fake Data insert Detect Rayleigh FACT: Defect discovery plotted over time as a frequency chart follows a Rayleigh distribution.
  • 10. Rayleigh Distributions • Ship Shape • A target level for defects found after delivery marked on your plot and tells you when you can ship at that defect level.
  • 11. Reliability Growth Function • Gets better with time (duh) • Follows an S curve (also unsurprising) • Inverse Rayleigh
  • 12. Requirements Defects • Customers can leave out information that they take for granted. – “You can crowd the screens with options, I don’t care” As long as you make the options far enough apart that I can use a touch interface. • You can misunderstand, or flub your translation. • They can be vague, or so detailed that they can’t be tested with deliverable code (need to have debug features compiled on, for example). TERMINOLOGY: Defects are inserted or injected. This sounds like you meant it to happen. Don’t worry about it. They happen, nobody is perfect.
  • 13. Design Defects • When the design will not actually satisfy the requirements, or when it is incomplete, often with respect to off-nominal conditions, or failure to consider constraints. – Developers tend to think about achieving the functionality, not about what could go wrong. – Engineers tend to think within their specialty, which is why we want “specialty engineering” involved in design review as well as systems engineers • Human factors, security, reliability, mechanical
  • 14. Code Defects • “Correct” code and lint • Code that doesn’t do what you think you said • Insecure code, fragile code, inefficient code • Code that doesn’t implement the design or • Code that doesn’t satisfy the requirements • It is often more valuable to the coder than the project to track the kinds of coding mistakes
  • 15. Test Defects • Seems like something that should not happen • Happened at my job last week • People staying up late to finish something take shortcuts • Could be configuration management - – Not the right test config, or data • Could be testers didn’t get the same message from the requirements
  • 16. Classifying Defects - Cause • Orthogonal Defect Classification (ODC) – developed in late 1980’s and 1990’s. – is known to reduce the time taken to perform root cause analysis by over a factor of 10. The gains come primarily from a different approach to root cause analysis, where the ODC data is generated rapidly (in minutes, as opposed to hours per defect) and analytics used for the cause and effect analysis
  • 17. Classifying Defect Causes • You can use ODC, but it can be unsatisfying • Allow speculation on cause or description of the problem – at least 256 characters • It might be nice to have a separate field for text and a drop down for faster categorization • Cause or reason could be the lack of one of the Dimensions of Software Quality • More work for analysis, can lead to better long term results and reliability analysis.
  • 18. Classifying Defects - Severity • DEFECT SEVERITY – How bad is the problem? – Severity and Priority not the same – Severity and Impact are (usually) the same • Critical: Defect affects the critical functionality & prevents further application testing. No workaround. • Major: Major functionality not working but able to test application. It has workaround but not obvious. • Minor: Doesn’t work right, but has a usable workaround • Trivial: Not as good as it could be or should be, but still works.
  • 19. Classifying Defects Priority and Probability • Priority – how soon does it need to be fixed? – Sometimes a defect needs to be fixed right away even when it has a workaround. – For instance, a feature needed for a demonstration • Probability – how likely is it to be encountered – Like risk, probability assessed on 2 factors – (Frequency of feature use) X (noticeability of bug) • A spelling error on main page, on an obscure word
  • 20. More classifications • Status – Open – Closed – Deferred – Cancelled – Rejected – I suggest also “assigned”, “in work” – Check workflows in tools like Jira • Once it has been fixed – what component/module had the problem
  • 21. Reliability Analysis • Predicting distribution by time and severity of defect detections during post-delivery operation. – Usually not a bathtub model for software – • It doesn’t wear out and get worse – Not a Poisson model, with randomly encountered objects along the path – Follows the same Rayleigh if you continue to update the software (fix the found bugs) – Make use of the defect probability assessment
  • 22. Resources - Online • Orthogonal Defect Classification – http://researcher.watson.ibm.com/researcher/view_gro up.php?id=480 – https://en.wikipedia.org/wiki/Orthogonal_Defect_Clas sification • Standards – http://standards.ieee.org/findstds/standard/software_an d_systems_engineering.html
  • 23. Resources - Online • Software Reliability – https://en.wikipedia.org/wiki/Software_reliability_testing - 10K foot level, use its references – http://johnmusa.com/ – http://www.weibull.com/hotwire/issue84/relbasics84.htm – http://www.se.rit.edu/~swen- 350/slides/SoftwareReliabilityEngineering.pdf – http://www.dote.osd.mil/docs/dote-temp- guidebook/Sw_ReliabilityGrowthApproach_RAMS2013_v1a.p df
  • 24. Resources - Online • Defect Classification for testers – http://www.requirementdriventesting.com/software- test-methodology-rdtrule6/ – http://www.softwaretestingstuff.com/2008/05/classific ation-of-defects-bugs.html – http://softwaretestingfundamentals.com/defect/ – http://www.softwaretestingclass.com/ – http://www.testingexcellence.com/ – severity-and-priority-difference/ – defect-clustering-in-software-testing/