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

Slides:



Advertisements
Similar presentations
Verification and Validation
Advertisements

Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Software Reliability Engineering
Software Reliability Engineering: A Roadmap
1 Software Testing and Quality Assurance Lecture 36 – Software Quality Assurance.
Software Testing Using Model Program DESIGN BY HONG NGUYEN & SHAH RAZA Dec 05, 2005.
ABCSG - Dependable Systems - 01/06/ ABCSG Dependable Systems.
Developing Dependable Systems CIS 376 Bruce R. Maxim UM-Dearborn.
Software Testing and Quality Assurance: Introduction and Terminology
Testing Metrics Software Reliability
Reliability Modeling for Design Diversity: A Review and Some Empirical Studies Teresa Cai Group Meeting April 11, 2006.
Design of SCS Architecture, Control and Fault Handling.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Testing and QA Theory and Practice (Chapter 15: Software Reliability) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
Lecture 3.
Chapter 9 – Software Evolution and Maintenance
1 Product Reliability Chris Nabavi BSc SMIEEE © 2006 PCE Systems Ltd.
Overview Software Quality Assurance Reliability and Availability
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
ECE355 Fall 2004Software Reliability1 ECE-355 Tutorial Jie Lian.
SOFTWARE RELIABILITY MODELING
Software Reliability Growth. Three Questions Frequently Asked Just Prior to Release 1.Is this version of software ready for release (however “ready” is.
Pop Quiz How does fix response time and fix quality impact Customer Satisfaction? What is a Risk Exposure calculation? What’s a Scatter Diagram and why.
Software Reliability Model Deterministic Models Probabilistic Models Halstead’s software metric McCabe’s cyclomatic complexity metrix Error seeding Failure.
CSCI 5801: Software Engineering
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
ECE 355: Software Engineering
2. Fault Tolerance. 2 Fault - Error - Failure Fault = physical defect or flow occurring in some component (hardware or software) Error = incorrect behavior.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 15 Software Reliability
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Metrics - Data Collection What is good data? Are they correct? Are they accurate? Are they appropriately precise? Are they consist? Are they associated.
Software Reliability SEG3202 N. El Kadri.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Boğaziçi University Software Reliability Modelling Computer Engineering Software Reliability Modelling Engin Deveci.
Software Metrics and Reliability. Definitions According to ANSI, “ Software Reliability is defined as the probability of failure – free software operation.
Ch. 1.  High-profile failures ◦ Therac 25 ◦ Denver Intl Airport ◦ Also, Patriot Missle.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Fault-Tolerant Systems Design Part 1.
Software Reliability (Lecture 13) Dr. R. Mall. Organization of this Lecture: $ Introduction. $ Reliability metrics $ Reliability growth modelling $ Statistical.
SENG521 (Fall SENG 521 Software Reliability & Testing Fault Tolerant Software Systems: Techniques (Part 4b) Department of Electrical.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Software Reliability Research Pankaj Jalote Professor, CSE, IIT Kanpur, India.
CprE 458/558: Real-Time Systems
Fault-Tolerant Systems Design Part 1.
CS 360 Lecture 17.  Software reliability:  The probability that a given system will operate without failure under given environmental conditions for.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CS223: Software Engineering Lecture 4: Software Development Models.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Software Reliability [Kehandalan Perangkat Lunak] Catur Iswahyudi.
A Survey of Fault Tolerance in Distributed Systems By Szeying Tan Fall 2002 CS 633.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Topic: Reliability and Integrity. Reliability refers to the operation of hardware, the design of software, the accuracy of data or the correspondence.
18/05/2006 Fault Tolerant Computing Based on Diversity by Seda Demirağ
Week#3 Software Quality Engineering.
Software Metrics and Reliability
Software Testing An Introduction.
Fault Tolerance & Reliability CDA 5140 Spring 2006
Software Reliability Definition: The probability of failure-free operation of the software for a specified period of time in a specified environment.
Verification & Validation
Fault Tolerance In Operating System
Software Reliability (Lecture 12)
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Chapter 8 Software Evolution.
Regression Testing.
Seminar on Enterprise Software
Presentation transcript:

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

What is Software Reliability The probability of failure-free software operation for a specified period of time in a specified environment The probability of failure-free software operation for a specified period of time in a specified environment It denotes a product’s trustworthiness or dependability. It denotes a product’s trustworthiness or dependability.

Software Reliability Software reliability not caused due to aging but due to bugs Software reliability not caused due to aging but due to bugs The more the bugs, the lesser the reliability of the software The more the bugs, the lesser the reliability of the software Still failures seem random, hence reliability theory can be applied Still failures seem random, hence reliability theory can be applied

Software faults Software is said to contain fault if for some set of input data the output is not correct. Software is said to contain fault if for some set of input data the output is not correct.

Software Reliability Software systems often are one-off Software systems often are one-off Measuring reliability in lab not practical as too much failure data is needed; requires time Measuring reliability in lab not practical as too much failure data is needed; requires time Failures often result in fault removal, leading to reliability improvement Failures often result in fault removal, leading to reliability improvement Predicting future reliability from measured reliability is harder Predicting future reliability from measured reliability is harder Hence different models needed Hence different models needed

Software Reliability Models Jelinski and Moranda Model Jelinski and Moranda Model Realizes each time an error is repaired reliability does not increase by a constant amount. Realizes each time an error is repaired reliability does not increase by a constant amount. Reliability improvement due to fixing of an error is assumed to be proportional to the number of errors present in the system at that time. Reliability improvement due to fixing of an error is assumed to be proportional to the number of errors present in the system at that time.

Software Reliability Models Block coverage model Block coverage model Goel – Okumoto (G-O) Imperfect debugging model Goel – Okumoto (G-O) Imperfect debugging model GONHPP GONHPP Musa – Okumoto (M-O) Logarithmic Poisson Execution Time model Musa – Okumoto (M-O) Logarithmic Poisson Execution Time model

Software Reliability Growth Models Assume that reliability is a function of the defect level and as defects are removed, reliability improves Assume that reliability is a function of the defect level and as defects are removed, reliability improves Model parameters determined from past data on failures and fixes Model parameters determined from past data on failures and fixes

Software Failure Mechanisms Failure cause: Software defects are mainly design defects. Failure cause: Software defects are mainly design defects. Wear-out: Software does not have energy related wear-out phase. Errors can occur without warning. Wear-out: Software does not have energy related wear-out phase. Errors can occur without warning. Repairable system concept: Periodic restarts can help fix software problems. Repairable system concept: Periodic restarts can help fix software problems. Time dependency and life cycle: Software reliability is not a function of operational time. Time dependency and life cycle: Software reliability is not a function of operational time. Environmental factors: Do not affect Software reliability, except it might affect program inputs. Environmental factors: Do not affect Software reliability, except it might affect program inputs. Reliability prediction: Software reliability can not be predicted from any physical basis, since it depends completely on human factors in design. Reliability prediction: Software reliability can not be predicted from any physical basis, since it depends completely on human factors in design.

Software Reliability Models After fitting a model describing the failure process we can estimate its parameters, and the quantities such as the total number of faults in the code, future failure intensity and additional time required to achieve a failure intensity objective. After fitting a model describing the failure process we can estimate its parameters, and the quantities such as the total number of faults in the code, future failure intensity and additional time required to achieve a failure intensity objective.

Software fault tolerance techniques: are designed to allow a system to tolerate software faults that remain in the system after its development are designed to allow a system to tolerate software faults that remain in the system after its development provide mechanisms to the software system to prevent system failure from occurring provide mechanisms to the software system to prevent system failure from 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 diversity Popular techniques which are based on the design diversity concept for fault tolerance in software are: Popular techniques which are based on the design diversity concept for fault tolerance in software are:  Recovery Block  N-Version Programming  N-Self-Checking Programming

Data Diversity Techniques While the design diversity approaches to provide fault tolerance rely on multiple versions of the software written to the same specifications, the data diversity approach uses only one version of the software. While the design diversity approaches to provide fault tolerance rely on multiple versions of the software written to the same specifications, the data diversity approach uses only one version of the software. This approach relies on the observation that a software sometime fails for certain values in the input space and This approach relies on the observation that a software sometime fails for certain values in the input space and this failure could be avoided if there is a minor perturbation of input data which is acceptable to the software. this failure could be avoided if there is a minor perturbation of input data which is acceptable to the software.

Enviroment Diversity Techniques The environment diversity approach requires reexecuting the software in a different environment. The environment diversity approach requires reexecuting the software in a different environment. Transient faults typically occur in computer systems due to design faults in software which result in unacceptable and erroneous states in the OS environment. Transient faults typically occur in computer systems due to design faults in software which result in unacceptable and erroneous states in the OS environment. When the software fails, it is restarted in a different, error-free OS environment state which is achieved by some clean up operations When the software fails, it is restarted in a different, error-free OS environment state which is achieved by some clean up operations

Software Failure Mechanisms Redundancy: Can not improve Software reliability if identical software components are used. Redundancy: Can not improve Software reliability if identical software components are used. Interfaces: Software interfaces are purely conceptual other & not visual. Interfaces: Software interfaces are purely conceptual other & not visual. Failure rate motivators: Usually not predictable from analyses of separate statements. Failure rate motivators: Usually not predictable from analyses of separate statements..

Testing Testing remains main verification activity – most reliance on it Testing remains main verification activity – most reliance on it Consumes as much as half of the total effort in a sw product Consumes as much as half of the total effort in a sw product Testing: test case design, execution, checking the results, then debugging, fixing, retesting Testing: test case design, execution, checking the results, then debugging, fixing, retesting Each step is expensive Each step is expensive

Conclusions Software reliability is a key part in software quality Software reliability is a key part in 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 is not easy again to implement them Statistical testing should be used but it is not easy again to implement them

Thank You!! Any Questions?