software faults & reliability presented by: presented by: pooja jain pooja jain

19
Software faults & Software faults & reliability reliability Presented by: Presented by: Pooja Jain Pooja Jain

Upload: neal-bailey

Post on 25-Dec-2015

215 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

Software faults & Software faults & reliability reliability

Presented by: Presented by:

Pooja Jain Pooja Jain

Page 2: Software faults & 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.

Page 3: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 4: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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.

Page 5: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 6: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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.

Page 7: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 8: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 9: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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.

Page 10: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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.

Page 11: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 12: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 13: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 14: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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.

Page 15: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 16: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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.

. .

Page 17: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 18: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

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

Page 19: Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain

Thank You!!

Any Questions?