SlideShare a Scribd company logo
1 of 28
Predict Software Reliability Before
the Code is Written
Ann Marie Neufelder
SoftRel, LLC
amneufelder@softrel.com
http://www.softrel.com
© SoftRel, LLC 2013. This presentation may not be reprinted in whole or part
without written permission from amneufelder@softrel.com
Software reliability timeline 2
1960’s 1970’s 1980’s 1990’s
1962 First
recorded
system
failure
Many software reliability estimation models developed.
Main obstacle – can’t be used until late in life cycle.
1968
The term
“software
reliability” is
invented.
First publicly available
model to predict software
reliability early in lifecycle
developed by USAF Rome
Air Development Center
with SAIC and Research
Triangle Park –
Main obstacles – model only
useful for aircraft and model
never updated after 1992.
SoftRel, LLC
develops
models based
on RL model
but usable on
all defense/space
A few proprietary models
developed
2000’s
Software reliability modeling
 Software reliability can be predicted before the code is written,
estimated during testing and calculated once the software is fielded
 This presentation will discuss the prediction/assessment models
3
Prediction/
Assessment
Reliability Growth Estimations Field reliability
calculations
Used before code is written
•Predictions can be
incorporated into the system
RBD
•Supports planning
•Supports sensitivity analysis
•A few models have been
available since 1987
Used during system level testing or
operation
•Determines when to stop testing
•Validates prediction
•Less useful than prediction for
planning and avoiding problematic
releases
•Many models have been developed
since 1970s such as the Musa Model.
•The exponential model most
commonly used.
Used once
software is
operational
Actual failure
rate, MTBF, etc is
measured
directly from field
data
Software reliability assessment goals and
outputs
 Predict any of these reliability related metrics
 Defect density (test and operation)
 Defects (test and operation)
 Mean Time To Failure (MTTF), reliability, availability at any point in testing or
operation
 Reliability ty growth in any of the above metrics over time
 Mean Time To Software Restore (MTSWR)
 Maintenance and testing staffing levels to reach an objective
 Use prediction to
 Analyze sensitivity to make a specific growth in one or more metrics
 Analyze sensitivity between software and hardware
 Benchmark defect density to others in industry
 Identify practices that aren’t effective for reducing defects
4
If you can predict this defect profile
you can predict failure rate
 For decades the defect profile has been the basis for nearly all
software reliability models[2]
 During development you can predict the entire profile or parts of it
 During testing you can extrapolate the remainder of the profile
0
2
4
6
8
10
12
Defects predicted over life of version
Defects found
before system
test
Defects found
during system
testing
Defects found
after testing
5
Industry approach to early software
reliability predictions 6
1. Predict
effective
size
2. Predict
testing or
fielded
defect
density
3. Predict testing
or fielded
defects
5. Predict
failure
rate/MTTF
during test
or
operation4. Identify defect
profile over time
7. Predict
mission
duration and
reliability
6. MTSWR and
availability
Sensitivity
Analysis
1. Predict size
If everything else is equal, more code means more defects
 For in house software
 Predict effective size of new, modified and reused code using best
available industry method
 For COTS software (assuming vendor can’t provide
effective size estimates)
 Determine installed application size in KB (only EXEs and DLLs)
 Convert application size to KSLOC using industry conversion
 Assess reuse effectiveness by using default multiplier of 1%
 Accounts for fact that COTS has been fielded to multiple sites
7
2. Available Methods for predicting
defect density
 Ideally defect density prediction model optimizes simplicity, and
accuracy and is updated on a regular basis
Method Simplicity Last updated on.. Accuracy
Predict defect density from
historical data
Medium N/A Usually most
accurate IF historical
data is simple and
recent
Predict defect density using an
industry lookup chart or from
SEI CMMi lookup chart
Easy Varies Usually the least
accurate. Most useful
for COTS software.
Predict defect density via
surveys such as Shortcut, Full-
scale, Rome Laboratory
Easy to
Detailed
Softrel models are
updated every 2
years
Rome Labs model
was last updated in
1992
If the survey is
answered properly
these are usually
most accurate.
RL model is geared
only towards aircraft.
8
Survey Based Defect Density Models
Survey based
model
Number of
questions
Comments
Shortcut model 22 •More accurate than lookup charts
•Questions can be answered by almost anyone familiar
with the project
Rome Laboratory 45-212 •Some questions are outdated
Full-scale model A 98 •More accurate than the shortcut model
•Questions require input from software leads, software
testing, software designers
Full-scale model B 200 •More accurate than the Full-scale model A
•Questions require input from software leads, software
testing, software designers
Full-scale model C 300 •More accurate than the Full-scale model B
•Questions require input from software leads, software
testing, software designers
•100 questions require expert review of development
artifacts
9
How the Shortcut or Full-scale Survey Models
Works
10
1. Complete
survey and
calculate
score
3. When improving to next
percentile
•Average defect reduction =
55%
•Average probability (late)
reduction = 25%
Predicted
Percentile Group
World class
Distressed
Very good
Good
Average
Fair
Poor
1%
99%
10%
25%
50%
75%
90%
Score
Predicted
Normalized
Fielded
Defect
Density
Predicted
Probability
late
delivery
.011
2.069
.060
.112
.205
.608
1.111
10%
100%
20%
25%
36%
85%
100%
2.Find defect density
and Probability (late)
from
associated row
Seven clusters used to predict defect density and
ultimately software reliability 11
•Percentile group predictions…
•Predicted directly from answering a survey and scoring it
•Pertain to a particular product version
•Can only change if or when risks or strengths change
•Some risks/strengths are temporary; others can’t be changed at all
•Can transition in the wrong direction on same product if
•New risks/obstacles added
•Opportunities are abandoned
•World class does not mean defect free. It simply means better than
the defect density ranges in database.
Fewer fielded defects
99%
Distressed
10%
Very
good
75%
Fair
50%
Average
25%
Good
More risks than strengths More strengths than risksStrengths and risks
Offset each other
More fielded defects
90%
Poor
1%
World
Class
3. Predict testing or fielded defects
 Defects can be predicted as follows
 Testing defect density * Effective size = Defects predicted to be found during
testing (Entire yellow area)
 Fielded defect density * Effective size = Defects predicted to be found in
operation (Entire red area)
Defects predicted
after system
testing
Defects predicted
during system
testing
0
2
4
6
8
10
12
Defects over life of version
12
4. Identify shape of defect profile
Growth rate (Q)
derived from slope .
Default = 4.5. Ranges
from 3 to 10
Development Test Operation
Defects
Calendar time
This width is growth
period (time until no
more residual defects
occur) =TF = usually
3* average time
between releases.
Default = 48.
An exponential formula is solved
as an array to yield this area
Defects(month i) =
Defects (N)
=area
Typical
start of
systems
Testing
Delivery
milestone
-N ( (-Q*i/TF))/TF)(-Q*(i-
)expexp 1
13
Rate at which defects result in observed
failures (growth rate)
Faster growth rate and shorter growth period – Example:
Software is shipped to millions of end users at the same time
and each of them uses the software differently.
Slower growth rate and longer growth
period – Example: Software deliveries
are staged such that the possible
inputs/operational profile is constrained
and predictable
By default, the growth rate will be in this range
14
5. Use defect profile to predict failure
rate/MTTF
 Dividing defect profile by duty cycle profile yields a prediction of failure rate
as shown next
 Ti= duty cycle for month i - how much the software is operated during some
period of calendar time. Ex:
 If software is operating 24/7 ->duty cycle is 730 hours per month
 If software operates during normal working hours ->duty cycle is 176
hours per month
 MTTF i=
 MTTCF i
 % severe = % of all fielded defects that are predicted to impact availability
i
i
ileDefectprofsevere
T
*%
i
i
ileDefectprof
T
15
6. Predict MTSWR (Mean Time To Software Restore)
and Availability
 Needed to predict availability
 For hardware, MTTR is used. For software, MTSWR is used.
 MTSWR =weighted average of time for applicable restore actions
by the expected number of defects that are associated with each
restore action
 Availability profile over growth period = Availabilityi=
 In the below example, MTSWR is a weighted average of the two
rows
Operational restore action Average
restore time
Percentage
weight
Correct the software 40 hours .01
Restart or reboot 15 minutes .99
MTSWRMTTCF
MTTCF
i
i

16
7. Predict mission time and reliability
 Reliability profile over growth period =
 Ri= exp(-mission time/ MTTCF
i)
 Mission time = how long the software will take to
perform a specific operation or mission
 Not to be confused with duty cycle or testing time
 Example: A typical dishwasher cycle is 45 minutes. The software
is not executing outside of this time, so reliability is computed
for the 45 minute cycle.
17
Confidence Bounds and prediction error
 Software prediction confidence bounds are a function of
0
1000
2000
3000
4000
5000
6000
7000
0 2 4 6 8 10 12 14
MTTF
Months after delivery
Nominal MTTF
Lower bound MTTF
Upper bound MTTF
Parameter Contribution to prediction error
Size prediction error due to scope
change
Until code is complete, this will usually have
the largest relative error
Size prediction error due to error in
sizing estimate (scope unchanged)
Minimized with use of tools, historical data
Defect density prediction error Minimized by validating model inputs
Growth rate error Not usually a large source of error
18
Predictions can be used for scheduling and
maintenance
 Predictions can be used to determine how far apart releases should be to
optimize warranty costs and response time
 This is an example from industry. The defects were predicted to pileup up
after the third release.
19
0
100
200
300
400
500
600
700
800
900
Total defects predicted (nominal case) from releases 1 to 5 predicted for each
month
Pileup
Sensitivity analysis and defect reduction
 SoftRel survey models and the Rome Laboratory model
were developed for the purpose of supporting defect
reduction scenario analysis
 Use the models to find the gaps and determine
sensitivity of each gap
 Develop strategies for reducing the defects and rework
the predictions based on a few key improvements
20
Know which software characteristics/practices have
biggest impact on software reliability
 To date 600+ characteristics related to the 3 P’s have been
mathematically correlated to software reliability by SoftRel, LLC[1]
 Product/industry/application type
 People
 Practices/process
 Of these, 120 are so strongly related that they are used collectively
to predict before the code is even written
21
[1]See the entire research and complete list of practices at “The Cold Hard Truth
About Reliable Software”, A. Neufelder, SoftRel, LLC, 2014
Research results revealed some surprises
 Some practices, tools, metrics don’t always result in better software when…
 Required prerequisites may not in place
 Required training may not in place
 Practices, tools or metrics used incorrectly
 Software group not mature enough to implement practice, tool or metric
 Metric provides results that aren’t useful
 Examples
22
Practice that’s not always related to
lower defect density
Why
Expensive automated design and
testing tools
Requires training and maturity
Peer code reviews Agenda is often adhoc or superficial
Complexity and depth of nesting
metrics
Correlated at extremely high or low values but
not in between
Advanced software life cycle models Model not executed properly or it’s not the
right model for this software product
These are the 10 factors mostly strongly related to software reliability
1. Software engineers have product/industry domain expertise
2. Do formal white/clear box unit testing
3. Start writing test plans before any code is written
4. Outsource features that aren’t in your organization’s line of business
5. Avoid outsourcing features that are your organization’s line of business
6. Don’t skip requirements, design, unit test or system testing even for small releases
7. Plan ahead – even for small releases. Most projects are late because of unscheduled
defect fixes from the previous release (and didn’t plan on it)
8. Reduce “Big Blobs” - big teams, long milestones - especially when you have a large
project
9. Don’t use automated tools until group has expertise in whatever the tool is
automating
10. Define in writing what the software should NOT do
23
Conclusions
 Software reliability can be predicted before the code is written
 It can be applied to COTS software as well as custom software
 A variety of metrics can be predicted
 The predictions can be used for sensitivity analysis and defect reduction
 A variety of methods exist depending on how much data is available
24
Frequently Asked Questions
 Can I predict the software reliability when there is an agile or
incremental software development lifecycle?
 Yes, your options are
 You can use the models for each internal increment and then combine the results
of each internal increment to yield a prediction for each field release
 You can add up the code size predicted for each increment and do a prediction
for the field release based on sum of all increment sizes
 How often are the predictions updated during development?
 Whenever the size estimates have a major change or whenever
there is a major review
 The surveys are not updated once complete unless it is known that
something on the survey has changed
 i.e. there is a major change in staffing, tools or other resource during
development, etc.
25
Frequently Asked Questions
 Which defect density prediction models are preferred?
 The ones that you can complete accurately and the ones that
reflect your application type
 If you can’t answer most of the questions in a particular mode
survey then you shouldn’t use that model
 If the application lookup charts don’t have your application type
you shouldn’t use them
 How can I get the defect density prediction models?
 Software Reliability Toolkit Training Class
 Software Reliability Toolkit
 Frestimate Software
26
References
 [1] “The Cold Hard Truth About Reliable Software”, A. Neufelder,
SoftRel, LLC, 2014
 [2]Four references are
a) J. McCall, W. Randell, J. Dunham, L. Lauterbach, Software Reliability,
Measurement, and Testing Software Reliability and Test Integration RL-
TR-92-52, Rome Laboratory, Rome, NY, 1992
b) "System and Software Reliability Assurance Notebook", P. Lakey, Boeing
Corp., A. Neufelder, produced for Rome Laboratory, 1997.
c) Section 8 of MIL-HDBK-338B, 1 October 1998
d) Keene, Dr. Samuel, Cole, G.F. “Gerry”, “Reliability Growth of Fielded
Software”, Reliability Review, Vol 14, March 1994.
27
Related Terms
 Error
 Related to human mistakes made while developing the software
 Ex: Human forgets that b may approach 0 in algorithm c = a/b
 Fault or defect
 Related to the design or code
 Ex: This code is implemented without exception handling “c = a/b;”
 Defect rate is from developer’s perspective
 Defects measured/predicted during testing or operation
 Defect density = defects/normalized size
 Failure
 An event
 Ex: During execution the conditions are so that the value of b approaches 0
and the software crashes or hangs
 Failure rate is from system or end user’s perspective
 KSLOC
 1000 source lines of code – common measure of software size

More Related Content

What's hot

Software Common Defect Enumeration
Software Common Defect EnumerationSoftware Common Defect Enumeration
Software Common Defect EnumerationAnnMarieNeufelder1
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deploymentLilia Sfaxi
 
Agile Software Development Life Cycle
Agile Software Development Life CycleAgile Software Development Life Cycle
Agile Software Development Life CycleUTKARSHSRIVASTAVA235
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleA Subbiah
 
Waterfall model of Software Engineering
Waterfall model of Software EngineeringWaterfall model of Software Engineering
Waterfall model of Software EngineeringMahnoor Shaukat
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
Risk-based Testing
Risk-based TestingRisk-based Testing
Risk-based TestingJohan Hoberg
 
EARS: The Easy Approach to Requirements Syntax
EARS: The Easy Approach to Requirements SyntaxEARS: The Easy Approach to Requirements Syntax
EARS: The Easy Approach to Requirements SyntaxTechWell
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Angelin R
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 

What's hot (20)

Software Common Defect Enumeration
Software Common Defect EnumerationSoftware Common Defect Enumeration
Software Common Defect Enumeration
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deployment
 
Agile Software Development Life Cycle
Agile Software Development Life CycleAgile Software Development Life Cycle
Agile Software Development Life Cycle
 
Sdlc
SdlcSdlc
Sdlc
 
Regression testing
Regression testingRegression testing
Regression testing
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software design
Software designSoftware design
Software design
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Integration test
Integration testIntegration test
Integration test
 
Waterfall model of Software Engineering
Waterfall model of Software EngineeringWaterfall model of Software Engineering
Waterfall model of Software Engineering
 
Sdlc
SdlcSdlc
Sdlc
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Risk-based Testing
Risk-based TestingRisk-based Testing
Risk-based Testing
 
EARS: The Easy Approach to Requirements Syntax
EARS: The Easy Approach to Requirements SyntaxEARS: The Easy Approach to Requirements Syntax
EARS: The Easy Approach to Requirements Syntax
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 

Viewers also liked

Introduction to Software Failure Modes Effects Analysis
Introduction to Software Failure Modes Effects AnalysisIntroduction to Software Failure Modes Effects Analysis
Introduction to Software Failure Modes Effects AnalysisAnn Marie Neufelder
 
ASQ RD Many Faces of Software un-Reliability
ASQ RD Many Faces of Software un-ReliabilityASQ RD Many Faces of Software un-Reliability
ASQ RD Many Faces of Software un-ReliabilityASQ Reliability Division
 
Sistema operativo jr
Sistema operativo jrSistema operativo jr
Sistema operativo jrFlor Ruiz
 
GRSI Case Statement _Nov2015
GRSI Case Statement _Nov2015GRSI Case Statement _Nov2015
GRSI Case Statement _Nov2015LeRoy Chalmers
 
Pcwirestrand
PcwirestrandPcwirestrand
PcwirestrandJoy Zhang
 
Ensayo de Compactación de Suelos
Ensayo de Compactación de SuelosEnsayo de Compactación de Suelos
Ensayo de Compactación de SuelosJOHNNY JARA RAMOS
 
Carlos Rivero Predictive Analytics Presentation
Carlos Rivero Predictive Analytics PresentationCarlos Rivero Predictive Analytics Presentation
Carlos Rivero Predictive Analytics PresentationCarlos Rivero
 
Stress and lupus
Stress and lupusStress and lupus
Stress and lupuslupusdmv
 
Intellectual Property Teaching in Countries in Transition _WIPO IP Teaching Tool
Intellectual Property Teaching in Countries in Transition _WIPO IP Teaching ToolIntellectual Property Teaching in Countries in Transition _WIPO IP Teaching Tool
Intellectual Property Teaching in Countries in Transition _WIPO IP Teaching ToolMehmet – Nafi Artemel
 
Dates with a difference - UK Education Guide
Dates with a difference - UK Education GuideDates with a difference - UK Education Guide
Dates with a difference - UK Education GuideG Kavak
 
Ejercicios de diseño de presas de tierra
Ejercicios de diseño de presas de tierraEjercicios de diseño de presas de tierra
Ejercicios de diseño de presas de tierraJOHNNY JARA RAMOS
 
A magnetic resonance spectroscopy driven initialization scheme for active sha...
A magnetic resonance spectroscopy driven initialization scheme for active sha...A magnetic resonance spectroscopy driven initialization scheme for active sha...
A magnetic resonance spectroscopy driven initialization scheme for active sha...TRS Telehealth Services
 

Viewers also liked (18)

Introduction to Software Failure Modes Effects Analysis
Introduction to Software Failure Modes Effects AnalysisIntroduction to Software Failure Modes Effects Analysis
Introduction to Software Failure Modes Effects Analysis
 
ASQ RD Many Faces of Software un-Reliability
ASQ RD Many Faces of Software un-ReliabilityASQ RD Many Faces of Software un-Reliability
ASQ RD Many Faces of Software un-Reliability
 
Resume
ResumeResume
Resume
 
Sistema operativo jr
Sistema operativo jrSistema operativo jr
Sistema operativo jr
 
GRSI Case Statement _Nov2015
GRSI Case Statement _Nov2015GRSI Case Statement _Nov2015
GRSI Case Statement _Nov2015
 
Catalogue
CatalogueCatalogue
Catalogue
 
Pcwirestrand
PcwirestrandPcwirestrand
Pcwirestrand
 
Ensayo de Compactación de Suelos
Ensayo de Compactación de SuelosEnsayo de Compactación de Suelos
Ensayo de Compactación de Suelos
 
Carlos Rivero Predictive Analytics Presentation
Carlos Rivero Predictive Analytics PresentationCarlos Rivero Predictive Analytics Presentation
Carlos Rivero Predictive Analytics Presentation
 
Stress and lupus
Stress and lupusStress and lupus
Stress and lupus
 
computacion
computacioncomputacion
computacion
 
Intellectual Property Teaching in Countries in Transition _WIPO IP Teaching Tool
Intellectual Property Teaching in Countries in Transition _WIPO IP Teaching ToolIntellectual Property Teaching in Countries in Transition _WIPO IP Teaching Tool
Intellectual Property Teaching in Countries in Transition _WIPO IP Teaching Tool
 
Dates with a difference - UK Education Guide
Dates with a difference - UK Education GuideDates with a difference - UK Education Guide
Dates with a difference - UK Education Guide
 
cv-moh-new (1)
cv-moh-new (1)cv-moh-new (1)
cv-moh-new (1)
 
RIAZI-CV
RIAZI-CVRIAZI-CV
RIAZI-CV
 
The Art of Saying_SEPT28_2015
The Art of Saying_SEPT28_2015The Art of Saying_SEPT28_2015
The Art of Saying_SEPT28_2015
 
Ejercicios de diseño de presas de tierra
Ejercicios de diseño de presas de tierraEjercicios de diseño de presas de tierra
Ejercicios de diseño de presas de tierra
 
A magnetic resonance spectroscopy driven initialization scheme for active sha...
A magnetic resonance spectroscopy driven initialization scheme for active sha...A magnetic resonance spectroscopy driven initialization scheme for active sha...
A magnetic resonance spectroscopy driven initialization scheme for active sha...
 

Similar to Predict Software Reliability Before the Code is Written

Reliable software in a continuous integration/continuous deployment (CI/CD) e...
Reliable software in a continuous integration/continuous deployment (CI/CD) e...Reliable software in a continuous integration/continuous deployment (CI/CD) e...
Reliable software in a continuous integration/continuous deployment (CI/CD) e...Ann Marie Neufelder
 
Automating The Process For Building Reliable Software
Automating The Process For Building Reliable SoftwareAutomating The Process For Building Reliable Software
Automating The Process For Building Reliable Softwareguest8861ff
 
Four things that are almost guaranteed to reduce the reliability of a softwa...
Four things that are almost guaranteed to reduce the reliability of a softwa...Four things that are almost guaranteed to reduce the reliability of a softwa...
Four things that are almost guaranteed to reduce the reliability of a softwa...Ann Marie Neufelder
 
Four things that are almost guaranteed to reduce the reliability of a softwa...
Four things that are almost guaranteed to reduce the reliability of a softwa...Four things that are almost guaranteed to reduce the reliability of a softwa...
Four things that are almost guaranteed to reduce the reliability of a softwa...Ann Marie Neufelder
 
ISTQB, ISEB Lecture Notes
ISTQB, ISEB Lecture NotesISTQB, ISEB Lecture Notes
ISTQB, ISEB Lecture Notesonsoftwaretest
 
What is Test Matrix?
What is Test Matrix?What is Test Matrix?
What is Test Matrix?QA InfoTech
 
real simple reliable software
real simple reliable software real simple reliable software
real simple reliable software AnnMarieNeufelder1
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1Yogindernath Gupta
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineeringMark Turner CRP
 
Combinatorial testing
Combinatorial testingCombinatorial testing
Combinatorial testingKedar Kumar
 
Best SQA Document.pdf
Best SQA Document.pdfBest SQA Document.pdf
Best SQA Document.pdfAzmatIqbal2
 
Software reliability
Software reliabilitySoftware reliability
Software reliabilityAnand Kumar
 
NG_TEST_Presentation_0510
NG_TEST_Presentation_0510NG_TEST_Presentation_0510
NG_TEST_Presentation_0510techweb08
 
NGTEST_Presentation
NGTEST_PresentationNGTEST_Presentation
NGTEST_Presentationtechweb08
 
NG_TEST_SR_Presentation
NG_TEST_SR_PresentationNG_TEST_SR_Presentation
NG_TEST_SR_Presentationtechweb08
 
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber SecurityAFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber SecurityDjindo Lee
 
201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)Javier Gonzalez-Sanchez
 

Similar to Predict Software Reliability Before the Code is Written (20)

Software Reliability
Software ReliabilitySoftware Reliability
Software Reliability
 
Reliable software in a continuous integration/continuous deployment (CI/CD) e...
Reliable software in a continuous integration/continuous deployment (CI/CD) e...Reliable software in a continuous integration/continuous deployment (CI/CD) e...
Reliable software in a continuous integration/continuous deployment (CI/CD) e...
 
Automating The Process For Building Reliable Software
Automating The Process For Building Reliable SoftwareAutomating The Process For Building Reliable Software
Automating The Process For Building Reliable Software
 
Four things that are almost guaranteed to reduce the reliability of a softwa...
Four things that are almost guaranteed to reduce the reliability of a softwa...Four things that are almost guaranteed to reduce the reliability of a softwa...
Four things that are almost guaranteed to reduce the reliability of a softwa...
 
Four things that are almost guaranteed to reduce the reliability of a softwa...
Four things that are almost guaranteed to reduce the reliability of a softwa...Four things that are almost guaranteed to reduce the reliability of a softwa...
Four things that are almost guaranteed to reduce the reliability of a softwa...
 
ISTQB, ISEB Lecture Notes
ISTQB, ISEB Lecture NotesISTQB, ISEB Lecture Notes
ISTQB, ISEB Lecture Notes
 
What is Test Matrix?
What is Test Matrix?What is Test Matrix?
What is Test Matrix?
 
real simple reliable software
real simple reliable software real simple reliable software
real simple reliable software
 
Software Reliability
Software ReliabilitySoftware Reliability
Software Reliability
 
Defect Age
Defect  AgeDefect  Age
Defect Age
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineering
 
Combinatorial testing
Combinatorial testingCombinatorial testing
Combinatorial testing
 
Best SQA Document.pdf
Best SQA Document.pdfBest SQA Document.pdf
Best SQA Document.pdf
 
Software reliability
Software reliabilitySoftware reliability
Software reliability
 
NG_TEST_Presentation_0510
NG_TEST_Presentation_0510NG_TEST_Presentation_0510
NG_TEST_Presentation_0510
 
NGTEST_Presentation
NGTEST_PresentationNGTEST_Presentation
NGTEST_Presentation
 
NG_TEST_SR_Presentation
NG_TEST_SR_PresentationNG_TEST_SR_Presentation
NG_TEST_SR_Presentation
 
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber SecurityAFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
AFITC 2018 - Using Process Maturity and Agile to Strengthen Cyber Security
 
201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)
 

Recently uploaded

Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICSUNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICSrknatarajan
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTbhaskargani46
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 

Recently uploaded (20)

Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICSUNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 

Predict Software Reliability Before the Code is Written

  • 1. Predict Software Reliability Before the Code is Written Ann Marie Neufelder SoftRel, LLC amneufelder@softrel.com http://www.softrel.com © SoftRel, LLC 2013. This presentation may not be reprinted in whole or part without written permission from amneufelder@softrel.com
  • 2. Software reliability timeline 2 1960’s 1970’s 1980’s 1990’s 1962 First recorded system failure Many software reliability estimation models developed. Main obstacle – can’t be used until late in life cycle. 1968 The term “software reliability” is invented. First publicly available model to predict software reliability early in lifecycle developed by USAF Rome Air Development Center with SAIC and Research Triangle Park – Main obstacles – model only useful for aircraft and model never updated after 1992. SoftRel, LLC develops models based on RL model but usable on all defense/space A few proprietary models developed 2000’s
  • 3. Software reliability modeling  Software reliability can be predicted before the code is written, estimated during testing and calculated once the software is fielded  This presentation will discuss the prediction/assessment models 3 Prediction/ Assessment Reliability Growth Estimations Field reliability calculations Used before code is written •Predictions can be incorporated into the system RBD •Supports planning •Supports sensitivity analysis •A few models have been available since 1987 Used during system level testing or operation •Determines when to stop testing •Validates prediction •Less useful than prediction for planning and avoiding problematic releases •Many models have been developed since 1970s such as the Musa Model. •The exponential model most commonly used. Used once software is operational Actual failure rate, MTBF, etc is measured directly from field data
  • 4. Software reliability assessment goals and outputs  Predict any of these reliability related metrics  Defect density (test and operation)  Defects (test and operation)  Mean Time To Failure (MTTF), reliability, availability at any point in testing or operation  Reliability ty growth in any of the above metrics over time  Mean Time To Software Restore (MTSWR)  Maintenance and testing staffing levels to reach an objective  Use prediction to  Analyze sensitivity to make a specific growth in one or more metrics  Analyze sensitivity between software and hardware  Benchmark defect density to others in industry  Identify practices that aren’t effective for reducing defects 4
  • 5. If you can predict this defect profile you can predict failure rate  For decades the defect profile has been the basis for nearly all software reliability models[2]  During development you can predict the entire profile or parts of it  During testing you can extrapolate the remainder of the profile 0 2 4 6 8 10 12 Defects predicted over life of version Defects found before system test Defects found during system testing Defects found after testing 5
  • 6. Industry approach to early software reliability predictions 6 1. Predict effective size 2. Predict testing or fielded defect density 3. Predict testing or fielded defects 5. Predict failure rate/MTTF during test or operation4. Identify defect profile over time 7. Predict mission duration and reliability 6. MTSWR and availability Sensitivity Analysis
  • 7. 1. Predict size If everything else is equal, more code means more defects  For in house software  Predict effective size of new, modified and reused code using best available industry method  For COTS software (assuming vendor can’t provide effective size estimates)  Determine installed application size in KB (only EXEs and DLLs)  Convert application size to KSLOC using industry conversion  Assess reuse effectiveness by using default multiplier of 1%  Accounts for fact that COTS has been fielded to multiple sites 7
  • 8. 2. Available Methods for predicting defect density  Ideally defect density prediction model optimizes simplicity, and accuracy and is updated on a regular basis Method Simplicity Last updated on.. Accuracy Predict defect density from historical data Medium N/A Usually most accurate IF historical data is simple and recent Predict defect density using an industry lookup chart or from SEI CMMi lookup chart Easy Varies Usually the least accurate. Most useful for COTS software. Predict defect density via surveys such as Shortcut, Full- scale, Rome Laboratory Easy to Detailed Softrel models are updated every 2 years Rome Labs model was last updated in 1992 If the survey is answered properly these are usually most accurate. RL model is geared only towards aircraft. 8
  • 9. Survey Based Defect Density Models Survey based model Number of questions Comments Shortcut model 22 •More accurate than lookup charts •Questions can be answered by almost anyone familiar with the project Rome Laboratory 45-212 •Some questions are outdated Full-scale model A 98 •More accurate than the shortcut model •Questions require input from software leads, software testing, software designers Full-scale model B 200 •More accurate than the Full-scale model A •Questions require input from software leads, software testing, software designers Full-scale model C 300 •More accurate than the Full-scale model B •Questions require input from software leads, software testing, software designers •100 questions require expert review of development artifacts 9
  • 10. How the Shortcut or Full-scale Survey Models Works 10 1. Complete survey and calculate score 3. When improving to next percentile •Average defect reduction = 55% •Average probability (late) reduction = 25% Predicted Percentile Group World class Distressed Very good Good Average Fair Poor 1% 99% 10% 25% 50% 75% 90% Score Predicted Normalized Fielded Defect Density Predicted Probability late delivery .011 2.069 .060 .112 .205 .608 1.111 10% 100% 20% 25% 36% 85% 100% 2.Find defect density and Probability (late) from associated row
  • 11. Seven clusters used to predict defect density and ultimately software reliability 11 •Percentile group predictions… •Predicted directly from answering a survey and scoring it •Pertain to a particular product version •Can only change if or when risks or strengths change •Some risks/strengths are temporary; others can’t be changed at all •Can transition in the wrong direction on same product if •New risks/obstacles added •Opportunities are abandoned •World class does not mean defect free. It simply means better than the defect density ranges in database. Fewer fielded defects 99% Distressed 10% Very good 75% Fair 50% Average 25% Good More risks than strengths More strengths than risksStrengths and risks Offset each other More fielded defects 90% Poor 1% World Class
  • 12. 3. Predict testing or fielded defects  Defects can be predicted as follows  Testing defect density * Effective size = Defects predicted to be found during testing (Entire yellow area)  Fielded defect density * Effective size = Defects predicted to be found in operation (Entire red area) Defects predicted after system testing Defects predicted during system testing 0 2 4 6 8 10 12 Defects over life of version 12
  • 13. 4. Identify shape of defect profile Growth rate (Q) derived from slope . Default = 4.5. Ranges from 3 to 10 Development Test Operation Defects Calendar time This width is growth period (time until no more residual defects occur) =TF = usually 3* average time between releases. Default = 48. An exponential formula is solved as an array to yield this area Defects(month i) = Defects (N) =area Typical start of systems Testing Delivery milestone -N ( (-Q*i/TF))/TF)(-Q*(i- )expexp 1 13
  • 14. Rate at which defects result in observed failures (growth rate) Faster growth rate and shorter growth period – Example: Software is shipped to millions of end users at the same time and each of them uses the software differently. Slower growth rate and longer growth period – Example: Software deliveries are staged such that the possible inputs/operational profile is constrained and predictable By default, the growth rate will be in this range 14
  • 15. 5. Use defect profile to predict failure rate/MTTF  Dividing defect profile by duty cycle profile yields a prediction of failure rate as shown next  Ti= duty cycle for month i - how much the software is operated during some period of calendar time. Ex:  If software is operating 24/7 ->duty cycle is 730 hours per month  If software operates during normal working hours ->duty cycle is 176 hours per month  MTTF i=  MTTCF i  % severe = % of all fielded defects that are predicted to impact availability i i ileDefectprofsevere T *% i i ileDefectprof T 15
  • 16. 6. Predict MTSWR (Mean Time To Software Restore) and Availability  Needed to predict availability  For hardware, MTTR is used. For software, MTSWR is used.  MTSWR =weighted average of time for applicable restore actions by the expected number of defects that are associated with each restore action  Availability profile over growth period = Availabilityi=  In the below example, MTSWR is a weighted average of the two rows Operational restore action Average restore time Percentage weight Correct the software 40 hours .01 Restart or reboot 15 minutes .99 MTSWRMTTCF MTTCF i i  16
  • 17. 7. Predict mission time and reliability  Reliability profile over growth period =  Ri= exp(-mission time/ MTTCF i)  Mission time = how long the software will take to perform a specific operation or mission  Not to be confused with duty cycle or testing time  Example: A typical dishwasher cycle is 45 minutes. The software is not executing outside of this time, so reliability is computed for the 45 minute cycle. 17
  • 18. Confidence Bounds and prediction error  Software prediction confidence bounds are a function of 0 1000 2000 3000 4000 5000 6000 7000 0 2 4 6 8 10 12 14 MTTF Months after delivery Nominal MTTF Lower bound MTTF Upper bound MTTF Parameter Contribution to prediction error Size prediction error due to scope change Until code is complete, this will usually have the largest relative error Size prediction error due to error in sizing estimate (scope unchanged) Minimized with use of tools, historical data Defect density prediction error Minimized by validating model inputs Growth rate error Not usually a large source of error 18
  • 19. Predictions can be used for scheduling and maintenance  Predictions can be used to determine how far apart releases should be to optimize warranty costs and response time  This is an example from industry. The defects were predicted to pileup up after the third release. 19 0 100 200 300 400 500 600 700 800 900 Total defects predicted (nominal case) from releases 1 to 5 predicted for each month Pileup
  • 20. Sensitivity analysis and defect reduction  SoftRel survey models and the Rome Laboratory model were developed for the purpose of supporting defect reduction scenario analysis  Use the models to find the gaps and determine sensitivity of each gap  Develop strategies for reducing the defects and rework the predictions based on a few key improvements 20
  • 21. Know which software characteristics/practices have biggest impact on software reliability  To date 600+ characteristics related to the 3 P’s have been mathematically correlated to software reliability by SoftRel, LLC[1]  Product/industry/application type  People  Practices/process  Of these, 120 are so strongly related that they are used collectively to predict before the code is even written 21 [1]See the entire research and complete list of practices at “The Cold Hard Truth About Reliable Software”, A. Neufelder, SoftRel, LLC, 2014
  • 22. Research results revealed some surprises  Some practices, tools, metrics don’t always result in better software when…  Required prerequisites may not in place  Required training may not in place  Practices, tools or metrics used incorrectly  Software group not mature enough to implement practice, tool or metric  Metric provides results that aren’t useful  Examples 22 Practice that’s not always related to lower defect density Why Expensive automated design and testing tools Requires training and maturity Peer code reviews Agenda is often adhoc or superficial Complexity and depth of nesting metrics Correlated at extremely high or low values but not in between Advanced software life cycle models Model not executed properly or it’s not the right model for this software product
  • 23. These are the 10 factors mostly strongly related to software reliability 1. Software engineers have product/industry domain expertise 2. Do formal white/clear box unit testing 3. Start writing test plans before any code is written 4. Outsource features that aren’t in your organization’s line of business 5. Avoid outsourcing features that are your organization’s line of business 6. Don’t skip requirements, design, unit test or system testing even for small releases 7. Plan ahead – even for small releases. Most projects are late because of unscheduled defect fixes from the previous release (and didn’t plan on it) 8. Reduce “Big Blobs” - big teams, long milestones - especially when you have a large project 9. Don’t use automated tools until group has expertise in whatever the tool is automating 10. Define in writing what the software should NOT do 23
  • 24. Conclusions  Software reliability can be predicted before the code is written  It can be applied to COTS software as well as custom software  A variety of metrics can be predicted  The predictions can be used for sensitivity analysis and defect reduction  A variety of methods exist depending on how much data is available 24
  • 25. Frequently Asked Questions  Can I predict the software reliability when there is an agile or incremental software development lifecycle?  Yes, your options are  You can use the models for each internal increment and then combine the results of each internal increment to yield a prediction for each field release  You can add up the code size predicted for each increment and do a prediction for the field release based on sum of all increment sizes  How often are the predictions updated during development?  Whenever the size estimates have a major change or whenever there is a major review  The surveys are not updated once complete unless it is known that something on the survey has changed  i.e. there is a major change in staffing, tools or other resource during development, etc. 25
  • 26. Frequently Asked Questions  Which defect density prediction models are preferred?  The ones that you can complete accurately and the ones that reflect your application type  If you can’t answer most of the questions in a particular mode survey then you shouldn’t use that model  If the application lookup charts don’t have your application type you shouldn’t use them  How can I get the defect density prediction models?  Software Reliability Toolkit Training Class  Software Reliability Toolkit  Frestimate Software 26
  • 27. References  [1] “The Cold Hard Truth About Reliable Software”, A. Neufelder, SoftRel, LLC, 2014  [2]Four references are a) J. McCall, W. Randell, J. Dunham, L. Lauterbach, Software Reliability, Measurement, and Testing Software Reliability and Test Integration RL- TR-92-52, Rome Laboratory, Rome, NY, 1992 b) "System and Software Reliability Assurance Notebook", P. Lakey, Boeing Corp., A. Neufelder, produced for Rome Laboratory, 1997. c) Section 8 of MIL-HDBK-338B, 1 October 1998 d) Keene, Dr. Samuel, Cole, G.F. “Gerry”, “Reliability Growth of Fielded Software”, Reliability Review, Vol 14, March 1994. 27
  • 28. Related Terms  Error  Related to human mistakes made while developing the software  Ex: Human forgets that b may approach 0 in algorithm c = a/b  Fault or defect  Related to the design or code  Ex: This code is implemented without exception handling “c = a/b;”  Defect rate is from developer’s perspective  Defects measured/predicted during testing or operation  Defect density = defects/normalized size  Failure  An event  Ex: During execution the conditions are so that the value of b approaches 0 and the software crashes or hangs  Failure rate is from system or end user’s perspective  KSLOC  1000 source lines of code – common measure of software size

Editor's Notes

  1. [2]Four references are a) J. McCall, W. Randell, J. Dunham, L. Lauterbach, Software Reliability, Measurement, and Testing Software Reliability and Test Integration RL-TR-92-52, Rome Laboratory, Rome, NY, 1992 b) "System and Software Reliability Assurance Notebook", P. Lakey, Boeing Corp., A. Neufelder, produced for Rome Laboratory, 1997. c) Section 8 of MIL-HDBK-338B, 1 October 1998 d) Keene, Dr. Samuel, Cole, G.F. “Gerry”, “Reliability Growth of Fielded Software”, Reliability Review, Vol 14, March 1994.
  2. Estimating source lines of code from object code: Windows and Embedded Control Systems, Les Hatton, CISM, University of Kingston, August 3, 2005. http://www.leshatton.org/Documents/LOC2005.pdf
  3. The models for predicting defect density range from simple to complex depending on how much data is available. In order of simplicity, defect density can be predicted by 1) the application type 2) the SEI CMMi level of organization developing the code 3) a short survey 4) a detailed survey or 5) historical data from similar projects. Typically the lookup chart type models are used for COTS software while any of the models are applicable for in house projects. Historical data is usually preferred over the other 4 models if it is available and is similar in application type.
  4. The above illustrates how the N, TF, Q inputs work. Once the testing or deployed defects are predicted, the next step is to extrapolate those defects over time to yield a defect distribution that can be used to predict failure rate and MTTF. This is done via the use of a common exponential model. Defects(month i) = N ( exp(-Q*(i-1)/TF) - exp(-Q*i/TF) ) Where N = total predicted deployed defects , Q=growth rate = 6, TF= growth period = 48, i=month of interest. Notice that the above formula is an array of values starting from i=1 which is the first month after deployment extending to i=n which is the last month of growth. This is because defects are presumed to be trending downward because 1) either they will be circumvented and not therefore not repeated again or 2) they will be corrected in a maintenance release or patch prior to the next major release. Since this is an exponential model the MTTF(i) is simply the inverse of the failure rate (i).
  5. The growth rate and growth period vary as a function of each other. The bigger the growth rate, the faster the software reliability grows or stabilizes. So, the bigger the growth rate, the shorter the growth period and vice versa. For experimental systems in which the hardware is often not available until deployment, the growth rate of the software may be very high. For systems which have a staged delivery process (delivery to only a few customers or end sites at a time or only a few features at a time) the growth rate can be smaller. Note that the growth rate is not a function of the total volume of defects, only how fast those defects are found during operation.
  6. The MTTF predictions take into account defects of every severity level since the defect density prediction models take into consideration defects of every severity level. However, not every software defect impacts availability. In fact, in industry studies including that conducted by SoftRel, LLC, only about 1-2% of all software defects will impact availability. By impacting availability that means that the system is unavailable or partly unavailable and that there is no immediate circumvention or fix that can be executed during operation. So, the MTTCF (Mean Time Between Critical Failure) is computed similarly to the MTTF except that the number of fielded defects (N) is multiplied by the percentage predicted to impact availability. For this prediction, a conservative 2% is being used.
  7. In the above example, 5 releases were predicted and then superimposed. You can see that the last 3 releases are too close together because the defects from the previous release(s) are predicted to build up.
  8. “The Naked Truth about Software Engineering”, A. Neufelder, SoftRel, LLC, 2006
  9. Note that USAF Rome Laboratory TR92-15 also determined that application domain expertise is also the most sensitive. See the complete list at “The Naked Truth about Software Engineering”, A. Neufelder, SoftRel, LLC, 2006
  10. This chart simplifies the differences between errors, faults and failures. During this class we will be counting either faults or failures depending on what phase of the lifecycle war are measuring and what models we are using to measure reliability.