Software Testing

Document Sample
Software Testing Powered By Docstoc
					Software Reliability Growth
    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
• Software Availability: The expected fraction
  of time during which the software functions
• 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
• Failure Intensity: The number of failures
  occurring in a given time period.
• MTTF: The average value of the next failure
The Test-Analyze-Fix Process
 • 1. Tests:                                • 2. Record Abnormal events:
   • Run tests that                                • Abnormal events are
     represent actual                              observed as a result of
     use.                                                    running test

                                Fix     Analyze

 • 4.Fix:                                                        • 3. Analyze:
   • Apply corrective actions                     • Systematically review and
     to the design                             categorize all observed failures
   Reliability Growth Modeling
• Having a robust model can help
  – 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
• 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
Software Reliability Growth

Shared By: