Rajib Mall Lecture Notes
Rajib Mall Lecture Notes
Rajib Mall Lecture Notes
(Lecture 13)
Dr. R. Mall
Introduction
a concern for most users especially industry users. An important attribute determining the quality of the product.
Introduction
a very difficult problem Several factors contribute to making measurement of software reliability difficult.
Software Reliability: 2 Alternate Definitions Informally denotes a products trustworthiness or dependability. Probability of the product working correctly over a given period of time.
Software Reliability
Intuitively:
It is also clear:
a software product having a large number of defects is unreliable. reliability of a system improves if the number of defects is reduced.
observed system reliability and the number of latent software defects. makes little difference to the perceived reliability.
90% of the total execution time is spent in executing only 10% of the instructions in the program. called the core of the program.
depends on whether the error belongs to the core or the noncore part of the program.
Difficulty in Software Reliability Measurement (2) The perceived reliability depends to a large extent upon:
how the product is used, In technical terms on its operation profile.
Software Reliability
Software reliability keeps changing through out the life of the product
Hardware failures:
Failure Rate
Time
Reliability Metrics
level of reliability required for a software product should be specified in the SRS document.
Reliability Metrics
ROCOF measures:
Hardware fails due to a components wear and tear When a software error is detected and repaired:
thus indicates how frequently the component fails the same error never appears.
additional time is lost to fix faults measures average time it takes to fix faults.
MTTR:
Once a failure occurs, the next failure is expected after 100 hours of clock time (not running time).
Availability
considers the number of failures occurring during a time interval, also takes into account the repair time (down time) of a system.
Availability
Reliability metrics
Reliability metrics
Failures which are transient and whose consequences are not serious:
of little practical importance in the use of a software product. such failures can at best be minor irritants.
Failure Classes
Failure Classes
Transient:
Permanent:
Transient failures occur only for certain inputs. Permanent failures occur for all input values. When recoverable failures occur:
Recoverable:
Failure Classes
Unrecoverable:
the system may have to be restarted. These failures just cause minor irritations,
Cosmetic:
do not lead to incorrect results. mouse button has to be clicked twice instead of once to invoke a GUI function.
when (or if at all) a particular level of reliability is likely to be attained. i.e. how long to test the system?
in modelling reliability growth which render any reliability measurement inaccurate: our lack of knowledge about how the system will be used, i.e.
Type 1 uncertainty:
Type 2 uncertainty:
reflects our lack of knowledge about the effect of fault removal. When we fix a fault
we are not sure if the corrections are complete and successful and no other faults are introduced we do not know how much will be the improvement to interfailure time.
a step function model reliability increases by a constant amount each time an error is detected and repaired.
ROCOF
Time
Assumes:
all errors contribute equally to reliability growth highly unrealistic:
assumed to be proportional to the number of errors present in the system at that time.
when software repair introduces further errors. Models the fact that as errors are repaired:
earlier than bugs with smaller contribution represents diminishing return as test continues.
There is no universally applicable reliability growth model. Reliability growth is not independent of application.
Statistical Testing
A testing process:
the objective is to determine reliability rather than discover errors. uses data different from defect testing.
Statistical Testing
Statistical Testing
Relies on using large test data set. Assumes that only a small percentage of test inputs:
Statistical Testing
but a statistically significant percentage of unlikely inputs should also be included. especially if test generators are used.
results in a system that the users find more reliable (than actually it is!).
gives an accurate estimation of reliability (as perceived by the average user) compared to other types of measurements.
Statistical uncertainty.
Summary
Summary
Summary
Statistical testing:
uses large data set selected based on operational profile. Provides more realistic reliability figures.