software faults & reliability presented by: presented by: pooja jain pooja jain
TRANSCRIPT
Software faults & Software faults & reliability reliability
Presented by: Presented by:
Pooja Jain Pooja Jain
What is Software ReliabilityWhat is Software Reliability
TThe probability of failure-free he probability of failure-free software operation for a specified software operation for a specified period of time in a specified period of time in a specified environment environment
It denotes a product’s It denotes a product’s trustworthiness or dependability.trustworthiness or dependability.
Software ReliabilitySoftware Reliability
Software reliability not caused due to Software reliability not caused due to aging but due to bugsaging but due to bugs
The more the bugs, the lesser the The more the bugs, the lesser the reliability of the softwarereliability of the software
Still failures seem random, hence Still failures seem random, hence reliability theory can be appliedreliability theory can be applied
Software faultsSoftware faults
Software is said to contain fault if for Software is said to contain fault if for some set of input data the output is some set of input data the output is not correct. not correct.
Software ReliabilitySoftware Reliability
Software systems often are one-offSoftware systems often are one-offMeasuring reliability in lab not practical Measuring reliability in lab not practical
as too much failure data is needed; as too much failure data is needed; requires timerequires time
Failures often result in fault removal, Failures often result in fault removal, leading to reliability improvementleading to reliability improvementPredicting future reliability from Predicting future reliability from
measured reliability is hardermeasured reliability is harderHence different models neededHence different models needed
Software Reliability ModelsSoftware Reliability Models
Jelinski and Moranda ModelJelinski and Moranda ModelRealizes each time an error is Realizes each time an error is
repaired reliability does not increase repaired reliability does not increase by a constant amount.by a constant amount.
Reliability improvement due to fixing Reliability improvement due to fixing of an error is assumed to be of an error is assumed to be proportional to the number of errors proportional to the number of errors present in the system at that time.present in the system at that time.
Software Reliability ModelsSoftware Reliability Models
Block coverage modelBlock coverage modelGoel – Okumoto (G-O) Imperfect Goel – Okumoto (G-O) Imperfect
debugging modeldebugging modelGONHPPGONHPP
Musa – Okumoto (M-O) Logarithmic Musa – Okumoto (M-O) Logarithmic Poisson Execution Time modelPoisson Execution Time model
Software Reliability Growth Software Reliability Growth ModelsModels
Assume that reliability is a function Assume that reliability is a function of the defect level and as defects are of the defect level and as defects are removed, reliability improvesremoved, reliability improves
Model parameters determined from Model parameters determined from past data on failures and fixespast data on failures and fixes
Software Failure MechanismsSoftware Failure Mechanisms
Failure causeFailure cause: Software defects are mainly : Software defects are mainly design defects. design defects.
Wear-outWear-out: Software does not have energy : Software does not have energy related wear-out phase. Errors can occur without related wear-out phase. Errors can occur without warning. warning.
Repairable system conceptRepairable system concept: Periodic restarts : Periodic restarts can help fix software problems. can help fix software problems.
Time dependency and life cycleTime dependency and life cycle: Software : Software reliability is not a function of operational time. reliability is not a function of operational time.
Environmental factorsEnvironmental factors: Do not affect Software : Do not affect Software reliability, except it might affect program inputs. reliability, except it might affect program inputs.
Reliability predictionReliability prediction: Software reliability can : Software reliability can not be predicted from any physical basis, since it not be predicted from any physical basis, since it depends completely on human factors in design. depends completely on human factors in design.
Software Reliability ModelsSoftware Reliability Models
After fitting a model describing the After fitting a model describing the failure process we can estimate its failure process we can estimate its parameters, and the quantities such parameters, and the quantities such as the total number of faults in the as the total number of faults in the code, future failure intensity and code, future failure intensity and additional time required to achieve a additional time required to achieve a failure intensity objective.failure intensity objective.
Software fault tolerance Software fault tolerance techniques:techniques:
are designed to allow a system to are designed to allow a system to tolerate software faults that remain in tolerate software faults that remain in the system after its development the system after its development
provide mechanisms to the software provide mechanisms to the software system to prevent system failure from system to prevent system failure from occurring occurring
Multiple data representation enviroment:
Data diverse techniques are used in a multiple data representation environment
utilize different representations of input data to provide tolerance to software design faults
Multiple version software enviroment:
Design diverse techniques are used in a multiple version software environment
use the functionally of independently developed software versions to provide tolerance to software design faults
Design diversityDesign diversity
Popular techniques which are based Popular techniques which are based on the design diversity concept for on the design diversity concept for fault tolerance in software are:fault tolerance in software are:
Recovery BlockRecovery Block
N-Version ProgrammingN-Version Programming
N-Self-Checking ProgrammingN-Self-Checking Programming
Data Diversity TechniquesData Diversity Techniques
While the design diversity approaches to provide While the design diversity approaches to provide fault tolerance rely on multiple versions of the fault tolerance rely on multiple versions of the software written to the same specifications, the software written to the same specifications, the data diversity approach uses only one version of data diversity approach uses only one version of the software. the software.
This approach relies on the observation that a This approach relies on the observation that a software sometime fails for certain values in the software sometime fails for certain values in the input space and input space and
this failure could be avoided if there is a minor this failure could be avoided if there is a minor perturbation of input data which is acceptable to perturbation of input data which is acceptable to the software. the software.
Enviroment Diversity Enviroment Diversity TechniquesTechniques
The environment diversity approach The environment diversity approach requires reexecuting the software in a requires reexecuting the software in a different environment. different environment.
Transient faults typically occur in computer Transient faults typically occur in computer systems due to design faults in software systems due to design faults in software which result in unacceptable and erroneous which result in unacceptable and erroneous states in the OS environment. states in the OS environment.
When the software fails, it is restarted in a When the software fails, it is restarted in a different, error-free OS environment state different, error-free OS environment state which is achieved by some clean up which is achieved by some clean up operationsoperations
Software Failure MechanismsSoftware Failure Mechanisms
RedundancyRedundancy: Can not improve Software : Can not improve Software reliability if identical software components are reliability if identical software components are used. used.
InterfacesInterfaces: Software interfaces are purely : Software interfaces are purely conceptual other conceptual other & not& not visual. visual.
Failure rate motivatorsFailure rate motivators: Usually not : Usually not predictable from analyses of separate predictable from analyses of separate statements. statements.
. .
TestingTesting
Testing remains main verification Testing remains main verification activity – most reliance on itactivity – most reliance on it
Consumes as much as half of the Consumes as much as half of the total effort in a sw producttotal effort in a sw product
Testing: test case design, execution, Testing: test case design, execution, checking the results, then checking the results, then debugging, fixing, retestingdebugging, fixing, retesting
Each step is expensiveEach step is expensive
ConclusionsConclusions
Software reliability is a key part in Software reliability is a key part in software quality software quality
Software reliability improvement is hard Software reliability improvement is hard There are no generic models.There are no generic models. Statistical testing should be used but it Statistical testing should be used but it
is not easy againis not easy again to implement them to implement them
Thank You!!
Any Questions?