SOFTWARE RELIABILITY
Present By:
Jayasri .A
Vaishnavi. E
Balachandar.R
Felix Raj .A
Software Reliability
■ There is no doubt that the reliability of a computer program is an
important element of its overall quality. If a program repeatedly and
frequently fails to perform, it matters little whether other software
quality factors are acceptable.
■ Software reliability, unlike many other quality factors, can be
measured directly and estimated using historical and developmental
data. Software reliability is defined in statistical terms as “the
probability of failure-free operation of a computer program in a
specified environment for a specified time
Software Reliability
■ Reliability Testing is a testing technique that relates to test the ability of a
software to function and given environmental conditions that helps in
uncovering issues in the software design and functionality.
■ It is defined as a type of software testing that determines whether the
software can perform a failure free operation for a specific period of time in
a specific environment. It ensures that the product is fault free and is
reliable for its intended purpose.
■ One failure can be corrected within seconds, while another requires weeks
or even months to correct. Complicating the issue even further, the
correction of one failure may in fact result in the introduction of other errors
that ultimately result in other failures.
Measures of Reliability and Availability
■ Early work in software reliability attempted to extrapolate the
mathematics of hardware reliability theory to the prediction of
software reliability. Most hardware-related reliability models are
predicated on failure due to wear rather than failure due to design
defects. In hardware, failures due to physical wear (e.g., the effects of
temperature, corrosion, shock) are more likely than a design-related
failure. Unfortunately, the opposite is true for software.
■ In fact, all software failures can be traced to design or implementation
problems; wear (see Chapter 1) does not enter into the picture.
Measures of Reliability and Availability
■ There has been an ongoing debate over the relationship between key
concepts in hardware reliability and their applicability to software.
Although an irrefutable link has yet to be established, it is worthwhile
to consider a few simple concepts that apply to both system elements.
■ If we consider a computer-based system, a simple measure of
reliability is meantime-between-failure (MTBF):
■ MTBF =MTTF +MTTR
■ where the acronyms MTTF and MTTR are mean-time-to-failure and
mean-time-torepair, 2 respectively.
Measures of Reliability and Availability
■ The MTBF of such obscure errors might be 30,000 or even 60,000
processor hours. Other defects, as yet undiscovered, might have a
failure rate of 4000 or 5000 hours. Even if every one of the first
category of errors (those with long MTBF) is removed, the impact on
software reliability is negligible.
■ However, MTBF can be problematic for two reasons:
❖ It projects a time span between failures, but does not provide us
with a projected failure rate.
❖ MTBF can be misinterpreted to mean average life span even
though this is not what it implies.
Measures of Reliability and Availability
■ An alternative measure of reliability is failures-in-time (FIT)—a
statistical measure of how many failures a component will have over
one billion hours of operation. Therefore, 1 FIT is equivalent to one
failure in every billion hours of operation.
■ In addition to a reliability measure, you should also develop a
measure of availability. Software availability is the probability that a
program is operating according to requirements at a given point in
time and is defined as.
MTTF
Availability= MTTF+MTTR X 100%
Software Reliability
■ The MTBF reliability measure is equally sensitive to MTTF and MTTR.
The availability measure is somewhat more sensitive to MTTR, an
indirect measure of the maintainability of software.
Software Safety:
■ Software safety is a software quality assurance activity that focuses
on the identification and assessment of potential hazards that may
affect software negatively and cause an entire system to fail. If
hazards can be identified early in the software process, software
design features can be specified that will either eliminate or control
potential hazards.
Software Safety
■ A modeling and analysis process is conducted as part of software
safety. Initially, hazards are identified and categorized by criticality and
risk.
■ Some of the hazards associated with a computer-based cruise control
for an automobile might be:
❖ Causes uncontrolled acceleration that cannot be stopped.
❖ Does not respond to depression of brake pedal (by turning off).
❖ Does not engage when switch is activated.
❖ Slowly loses or gains speed. Once these system-level hazards are
identified, analysis techniques are used to assign severity and
probability of occurrence.
Software Safety
■ Although software reliability and software safety are closely related to
one another, it is important to understand the subtle difference
between them. Software reliability uses statistical analysis to
determine the likelihood that a software failure will occur.
■ However, the occurrence of a failure does not necessarily result in a
hazard or mishap.
■ Software safety examines the ways in which failures result in
conditions that can lead to a mishap.
■ That is, failures are not considered in a vacuum, but are evaluated in
the context of an entire computer-based system and its environment.
THANK YOU