Presentation on theme: "Software Reliability Growth. Three Questions Frequently Asked Just Prior to Release 1.Is this version of software ready for release (however “ready” is."— Presentation transcript:
Three Questions Frequently Asked Just Prior to Release 1.Is this version of software ready for release (however “ready” is being defined)? 2.How much additional effort is required to release it? 3.When will it be ready for release?
To Answer the Above Questions You Need a Software Reliability Growth Model You can develop a reliability goal. Then track progress toward that goal. Based on data collected during software validation testing
Software Reliability Definitions Software Reliability: The probability of failure-free operation of a computer program for a specified period of time operation in a specified environment. Reliability Growth: The improvement in software reliability that results from correcting faults in the software.
Software Reliability Definitions (Cont’d) Software Availability: The expected fraction of time during which the software functions acceptably. Fault: A defect (or bug) in the software that causes a software failure. Failure: a departure of the software’s operation from user requirements.
Software Reliability Definitions (Cont’d) Failure Intensity: The number of failures occurring in a given time period. MTTF: The average value of the next failure interval
The Test-Analyze-Fix Process 3. Analyze: Systematically review and categorize all observed failures 4.Fix: Apply corrective actions to the design 2. Record Abnormal events: Abnormal events are observed as a result of running test 1. Tests: Run tests that represent actual use. Tests Abnormal Events AnalyzeFix
Reliability Growth Modeling Having a robust model can help management: –Make decisions regarding testing –Decide when it is appropriate to make a release –Determine what levels of support may be needed after release
Objectives of Modeling Measure and predict software reliability in terms of its mean time to failure (MTTF) Determine optimal time to stop testing and release software Provide data for making tradeoffs between test time, reliability, cost, and performance goals Define realistic software reliability goals
Characteristics of a Good Software Reliability Model It predicts future failure behavior It computes meaningful results It is simple, widely applicable, and based on sound assumptions