Software Reliability Research Pankaj Jalote Professor, CSE, IIT Kanpur, India.

Slides:



Advertisements
Similar presentations
Chapter 4 Quality Assurance in Context
Advertisements

4.1.5 System Management Background What is in System Management Resource control and scheduling Booting, reconfiguration, defining limits for resource.
1 Exponential Distribution and Reliability Growth Models Kan Ch 8 Steve Chenoweth, RHIT Right: Wait – I always thought “exponential growth” was like this!
1 Software Testing and Quality Assurance Lecture 36 – Software Quality Assurance.
Dependability Evaluation. Techniques for Dependability Evaluation The dependability evaluation of a system can be carried out either:  experimentally.
SE 450 Software Processes & Product Metrics Activity Metrics.
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 9 Title : Reliability Reading: I. Sommerville, Chap. 16, 17 and 18.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
Software Testing and Quality Assurance: Introduction and Terminology
Software Testing and QA Theory and Practice (Chapter 15: Software Reliability) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
State coverage: an empirical analysis based on a user study Dries Vanoverberghe, Emma Eyckmans, and Frank Piessens.
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
Overview Software Quality Assurance Reliability and Availability
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
Analysis of Simulation Results Andy Wang CIS Computer Systems Performance Analysis.
Software Project Management
Models for Software Reliability N. El Kadri SEG3202.
Chapter 22. Software Reliability Engineering (SRE)
Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain.
Software Reliability Growth. Three Questions Frequently Asked Just Prior to Release 1.Is this version of software ready for release (however “ready” is.
Software Reliability Categorising and specifying the reliability of software systems.
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 Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
ECE 355: Software Engineering
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 15 Software Reliability
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Software Reliability SEG3202 N. El Kadri.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Chapter 3: Software Project Management Metrics
Architecture Analysis Techniques
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B.
Cs498dm Software Testing Darko Marinov January 24, 2012.
Slide (Ch.22) 1 Tian: Software Quality Engineering Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Jeff Tian Chapter.
Software Metrics and Reliability
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Engineering (CSI 321)
Integration Testing.
Discussions on Software Reliability
Prologue.
Software Testing An Introduction.
Chapter 8 – Software Testing
Verification and Testing
IEEE Std 1074: Standard for Software Lifecycle
Software Reliability: 2 Alternate Definitions
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Reliability Models.
Software Test Termination
Progression of Test Categories
Baisc Of Software Testing
Welcome to Corporate Training -1
Software Verification and Validation
Software Verification and Validation
Measurement What is it and why do it? 2/23/2019
Software Reliability It is defined as the ability of a system or component to perform its required functions under stated conditions for a specified period.
Software Verification and Validation
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

Software Reliability Research Pankaj Jalote Professor, CSE, IIT Kanpur, India

System Reliability System – an entity that provides defined behavior at interfaces System – an entity that provides defined behavior at interfaces System is a hierarchy of subsystems, each subsystem being a systemSystem is a hierarchy of subsystems, each subsystem being a system Reliability of a system - its ability to provide failure-free operation Reliability of a system - its ability to provide failure-free operation Failure – the system behavior is incorrect or not as expected; is a random phenomenon Failure – the system behavior is incorrect or not as expected; is a random phenomenon

Reliability Quantification Reliability of a system defined as failure probability in a time period R(t) = Prob that system has not failed by time t Reliability of a system defined as failure probability in a time period R(t) = Prob that system has not failed by time t For rel work, often distribution of R(t) is specified For rel work, often distribution of R(t) is specified

Reliability Quantification.. Reliability can also be quantified by Mean Time to Failure (MTTF) Reliability can also be quantified by Mean Time to Failure (MTTF) Also by failure rate (no of failures per unit time.) Also by failure rate (no of failures per unit time.) From R(t), MTTF or failure rate can be determined From R(t), MTTF or failure rate can be determined Under some assumptions, failure rate and MTTF are inversely related Under some assumptions, failure rate and MTTF are inversely related

Software Reliability Software (un)reliability not caused due to aging but due to bugs Software (un)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 rel theory can be applied Still failures seem random, hence rel theory can be applied

Software Reliability Research Two main threads Two main threads Software reliability modeling – how to model and predict sw relSoftware reliability modeling – how to model and predict sw rel Improving sw reliability – by removing defects through program checking, verification, testing,…Improving sw reliability – by removing defects through program checking, verification, testing,… Will discuss some work being done here in these two Will discuss some work being done here in these two

Software Reliability Modeling

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 timeMeasuring 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 harderPredicting future reliability from measured reliability is harder Hence different models needed Hence different models needed

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 the failure-fix process of software evolution Model the failure-fix process of software evolution Many models have been proposed in the last 3 decades Many models have been proposed in the last 3 decades Model parameters determined from past data on failures and fixes Model parameters determined from past data on failures and fixes

Reliability of Software Products For software products, a large population exists in field and faults are not removed as failures occur For software products, a large population exists in field and faults are not removed as failures occur According to SRGMs, the reliability should remain the same According to SRGMs, the reliability should remain the same I.e. the failure rate should be constant I.e. the failure rate should be constant

Average Failure Rate of a MS Product

Reasons for this Phenomenon Users learn with time and avoid failure causing situation Users learn with time and avoid failure causing situation Users start with exploring more, then limit to some part of the product Users start with exploring more, then limit to some part of the product Most users use a few product featuresMost users use a few product features Configuration related failures are much more in the start Configuration related failures are much more in the start These failures reduce with time These failures reduce with time

A New Model for Product Rel. For a user, there is a transient failure rate, which decays with a factor For a user, there is a transient failure rate, which decays with a factor With time the transient goes, and failure rate reaches a steady state With time the transient goes, and failure rate reaches a steady state Steady state failure rate – represents the reliability of the product Steady state failure rate – represents the reliability of the product

Failure Rate of a Unit Failure rate for one unit is λ (i) = λ0 *α i + λf Failure rate for one unit is λ (i) = λ0 *α i + λf λ0 is the initial transient rate λ0 is the initial transient rate λf is the final steady state rate λf is the final steady state rate α is the decay factor α is the decay factor

Applying it to a Product Considered the failure and sale data of a real product for MS Considered the failure and sale data of a real product for MS Applying the model to the data and determining parameters, we get Applying the model to the data and determining parameters, we get λ0 = 0.04 failures/month λf = failures/month α = 0.4 (i.e. 40% decay each month)

Example… Steady state failure rate is 1/6 th of average rate in month 2, 1/3 rd of average rate in month 4 Steady state failure rate is 1/6 th of average rate in month 2, 1/3 rd of average rate in month 4 I.e. initial MTTF could be 1/6 th the steady state MTTF I.e. initial MTTF could be 1/6 th the steady state MTTF Steady state is reached quite soon – in two to three months Steady state is reached quite soon – in two to three months

Software Architecture Based Rel Estimation

Sw Architecture Architecture is the components in the system and how they are connected Architecture is the components in the system and how they are connected Is decided very early in sw project Is decided very early in sw project If reliability and performance can be modeled from architecture, can improve the architecture If reliability and performance can be modeled from architecture, can improve the architecture Some work going on in arch. based perf. and rel modeling Some work going on in arch. based perf. and rel modeling

Program Verification

Basic goal – to ensure that program is free of defects (bugs) as much as possible Basic goal – to ensure that program is free of defects (bugs) as much as possible Good program verification leads to higher reliability Good program verification leads to higher reliability

Program Verification Techniques Testing – program is executed with test data to find bugs Testing – program is executed with test data to find bugs Static analysis – program source code is analyzed Static analysis – program source code is analyzed Dynamic analysis – program run on some data and assertions made Dynamic analysis – program run on some data and assertions made Model checking Model checking Formal verification Formal verification

Techniques Most techniques work in isolation Most techniques work in isolation Sometimes they are complimentary in their defect detection capability Sometimes they are complimentary in their defect detection capability Combining techniques meaningfully can improve reliability Combining techniques meaningfully can improve reliability We are working on techniques for combining testing and static analysis We are working on techniques for combining testing and static analysis

State-based Testing Automation

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

Test Automation Test automation can help reduce cost and make testing more effective Test automation can help reduce cost and make testing more effective Most test automation approaches focus on data collection, re-testing Most test automation approaches focus on data collection, re-testing Little effort in complete end-to-end automation Little effort in complete end-to-end automation We are working on automating OO testing using state based models We are working on automating OO testing using state based models

Summary Software reliability is a rich and wide area Software reliability is a rich and wide area Exciting work going on across the world in modeling, analysis, program checking, testing, etc Exciting work going on across the world in modeling, analysis, program checking, testing, etc Lots of open issues Lots of open issues