Reliability Engineering. RIT Software Engineering

Similar documents
STATISTICAL TECHNIQUES. Data Analysis and Modelling

When have we tested enough? When to Stop Testing

Secondary Math Margin of Error

Applying the Personal Software Process (PSP) sm with Ada

Using a Model to estimate future carbon dioxide levels and possible global warming

The Myths Behind Software Metrics. Myths and Superstitions

Behaviour Based Maturity Model

Advantages and Disadvantages of. Independent Tests. Advantages. Disadvantages

Confidence Intervals

Verifying Your Condition Monitoring Programs. James (Jim) Kennedy CPEng, CFAM, CAMA

Keywords:- Fault detection, software reliability growth model (SRGM), non-homogeneous Poisson process(nhpp),residual defects, confidence interval.

THE NORMAL CURVE AND SAMPLES:

Both service standards and service level agreements are methods used by service providers to ensure consistency of service.

Traffic insights ATSPM Flashcards

AutomatedQA Webinar 1

PRINCIPLES OF RELIABILITY ENGINEERING

The process of making an informed hiring decision depends largely on two basic principles of selection.

Industrial Engineering Prof. Inderdeep Singh Department of Mechanical and Industrial Engineering Indian Institute of Technology, Roorkee

Adapting software project estimation to the reality of changing development technologies

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Software Quality S O F T W A R E T E S T I N G. By: MSMZ

ISTQB Sample Question Paper Dump #11

Systematic Testing#1. (adapted from lecture notes of the CSCI 3060U - Software Quality Assurance unit, J.S. Bradbury, J.R.

mywbut.com Software Reliability and Quality Management

9. Verification, Validation, Testing

STEP 1: ANOVA WITH ALL FACTORS

AP Stats ~ Lesson 8A: Confidence Intervals OBJECTIVES:

Measuring and Assessing Software Quality

Implementation & Testing Plan. CS 307: Software Engineering Pascal Meunier

Linguistic Quality Assurance (LQA) as One of the Key Parts of the Localization Process

WORKING WITH TEST DOCUMENTATION

A Kick-Ass Tester in today s changing environment

Foundations of Software Engineering. Lecture 16: Process: Linear to Iterative Michael Hilton

The things you want to know about metrics but you don t know what to ask!

Storage Workload Analysis

A Systematic Approach to Performance Evaluation

TABLE OF CONTENTS OBJECTIVE... 2 MARKET DRIVERS... 2 PROBLEM DEVELOPMENT... 2 A GENERIC INTRODUCTION TO THE SOLUTION... 3 BENEFITS... 3 EXAMPLES...

Which 750" ml bottle of coke would you pick?

Managing Project Risks

New Statistical Algorithms for Monitoring Gene Expression on GeneChip Probe Arrays

HOW TO AVOID AN ORACLE EBS REIMPLEMENTATION

Cycle Time Forecasting. Fast #NoEstimate Forecasting

Module - 01 Lecture - 03 Descriptive Statistics: Graphical Approaches

Applying the Principles of Item and Test Analysis

Simulation as Support for PBL Contract Design

Also we will try to recap what we studied in the last class. (Refer Slide Time: 00:35)

ENVIRONMENTAL FINANCE CENTER AT THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL SCHOOL OF GOVERNMENT REPORT 3

Testing. And Software Product Management. Autumn 2017 CSM14104 Software Product Management 1

Technische Universität München. Software Quality. Management. Dr. Stefan Wagner Technische Universität München. Garching 18 June 2010

Can simulation help to understand the impact of management practices on retail productivity?

The Dirty Little Secret of Software Pricing

Equipment and preparation required for one group (2-4 students) to complete the workshop

How mature is my test organization: STDM, an assessment tool

Optimizing appointment driven systems via IPA

Statistical Analysis of TI GHG Stack Data. Joel Dobson, TI Wednesday, Nov 30, 2011

QUALITY CRITICAL PATH

Reducing Business Risk

The power of numbers. And how to always be right (well, most of the time)

Testing. Testing is the most important component of software development that must be performed throughout the life cycle

Simulation Software. Chapter 3. Based on the slides provided with the textbook. Jiang Li, Ph.D. Department of Computer Science


Activity Metrics. (book ch 4.3, 10, 11, 12) RIT Software Engineering

More Reliable Software Faster and Cheaper An Overview. John D. Musa

Five Steps to a Better Web Optimization Program

"Predicting variability in coal quality parameters", Coal Indaba, Johannesburg RSA, November 1998

Note: you'll need a calculator for this lab

THE IMPROVEMENTS TO PRESENT LOAD CURVE AND NETWORK CALCULATION

Workforce Optimization

Dependable Systems. ! Reliability Prediction. Dr. Peter Tröger. Krishna B. Misra: Handbook of Performability Engineering. Springer (p.

mainstream of probability and statistics, and nineteenth century maritime and life

Agile Planning. Petri Heiramo. Agile Coach, CST

Model Validation Eric Holmquist Michael Karibian, CGMA, CMA

Chapter 9 Assignment (due Wednesday, August 9)

Software Development Effort Estimation: Why it fails and how to improve it

Chapter 1:Introduction to Design of Experiments

Measuring Effort and Productivity of Agile Projects

Applying the central limit theorem

INF 3121 Software Testing - Lecture 05. Test Management

The Need for a Collaborative Experience to Develop the Right Server Solution

Overview. Presenter: Bill Cheney. Audience: Clinical Laboratory Professionals. Field Guide To Statistics for Blood Bankers

Defect Tracking System

C. Wohlin, P. Runeson and A. Wesslén, "Software Reliability Estimations through Usage Analysis of Software Specifications and Designs", International

Testing throughout the software life cycle. Software Testing: INF3121 / INF4121

Film Capacitors. Quality. Date: May 2009

Incorporating supply chain risk into a production planning process EXECUTIVE SUMMARY. Joshua Matthew Merrill. May 17, 2007

The Mystery Behind Project Management Metrics. Reed Shell Blue Hippo Consulting

Industrial Strength Software Measurement

Test Management Test Planning - Test Plan is a document that is the point of reference based on which testing is carried out within the QA team.

ISTQB CTFL BH QuestionsAnswers with Explanation

T Software Testing and Quality Assurance Test Planning

Behaviour Driven Development

BUSINESS PROCESS MODELING WITH SIMPROCESS. Maya Binun. CACI Products Company 3333 North Torrey Pines Court La Jolla, CA 92037, U.S.A.

Module 3 Establishing and Using Service Level and Response Time Objectives

Uncovering Risk in Your ICD-10 Conversion. Key Risk & Effort Metrics for ICD Data Testing

Choosing Your Transit Software Provider

MeltLab Systems Using Thermal Analysis in the foundry. Thermal Analysis Metrics by derivatives

B.H. Far

CTFL - Version: 3. ISTQB Certified Tester Foundation Level

What is Important When Selecting an MBT Tool?

Transcription:

Reliability Engineering

Reliability Engineering Practices Define reliability objectives Use operational profiles to guide test execution Preferable to create automated test infrastructure Track failures during system tests Use reliability growth curves to track quality of product Release when quality of product meets reliability objectives Paper on Software reliability engineered testing http://www.stsc.hill.af.mil/crosstalk/1996/06/reliabil.asp Fairly easy to read, good overview

Defining reliability objectives Quantitative targets for level of reliability ( failure intensity : failures/hour) that makes business sense Remember for defects it was not discussable? Impact of a failure FI Objective MTBF 100 s deaths, >$10 9 cost 10-9 114,000yrs 1-2 deaths, around $10 6 cost 10-6 114 yrs $1,000 cost 10-3 6 weeks $100 cost 10-2 100 h $10 cost 10-1 10 h $1 cost 1 1 h From John D. Musa

Testing based on operational profiles Done during black-box system testing Preferably mix of test cases that match operational profile If possible, create automated test harness to execute test cases Need to run large numbers of test cases with randomized parameters for statistical validity Execute test cases in randomized order, with selection patterns matching frequencies in operational profile Simulating actual pattern of usage

Builds and code integration Most large projects have periodic builds Development team integrates a new chunk of code into the product and delivers to test team Test team does black box system testing Identifies bugs and reports them to dev team Track pattern of defects found during system testing to see how reliability varies as development progresses Defects found should decrease over time as bugs are removed, but each new chunk of code adds more bugs Pattern of reliability growth curve tells us about the code being added, and whether the product code is becoming more stable Pattern can also be used to statistically predict how much more testing will be needed before desired reliability target reached Useful predictions only after most of the code integrated and failure rates trend downward

Tracking failures during testing Enter data about when failures occurred during system testing into reliability tool e.g. CASRE Plots graph of failure intensity vs. time Reliability R (in concept) Failure Intensity TIME From netserver.cerc.wvu.edu/numsse/fall2003/691d/lec3.ppt

A more realistic curve From http://www.stsc.hill.af.mil/crosstalk/1996/06/reliabil.asp

Reliability Models Assumes a particular reliability model Different reliability models proposed Differ in statistical model of how reliability varies with time Fitting slightly different curves to the data Built into the tool Another statistical model, the Rayleigh model, can be used to predict remaining defects My take on this: Trying to get too mathematically precise about the exact level of reliability is not valid! Just models, use to get a reasonable estimate of reliability

Reliability Metric Estimated failure intensity (Reliability = 1 / failure intensity) Tool shows statistical estimates of how failure intensity varies over time The curve is referred to as the reliability growth curve Note that the product being tested varies over time, with fixes and new code In-process feedback on how quality is changing over time

Interpreting reliability growth curves Spikes are normally associated with new code being added Larger volumes of code or more unreliable code causes bigger spikes The curve itself tells us about the stability of the code base over time If small code changes/additions cause a big spike, the code is really poor quality or impacts many other modules heavily The code base is stabilizing when curve trends significantly downward Release (ideally) only when curve drops below target failure intensity objective indicates right time to stop testing Can statistically predict how much more test effort needed before target failure intensity objective needed. Shows up adding a big chunk of code just before release Common occurrence! Getting code done just in time Note that there is definitely random variation! Hence confidence intervals Avoid reading too much into the data

Limitations of reliability curves Operational profiles are often best guesses, especially for new software The reliability models are empirical and only approximations Failure intensity objectives should really be different for different criticality levels Results in loss of statistical validity! Automating test execution is challenging (particularly building verifier) and costly But it does save a lot over the long run More worthwhile when reliability needs are high Hard to read much from them till later stages of system testing very late in the development cycle

Reliability Certification Another use for reliability engineering is to determine the reliability of a software product E.g. you are evaluating web servers for your company website reliability is a major criterion Build test suite representative of your likely usage Put up some pages, maybe including forms Create test suite that generates traffic Log failures e.g. not loading, wrong data received Track failure patterns over time Evaluate multiple products or new releases using test suite, to determine reliability Avoids major problems and delays with poor vendor software Note that this applies the analysis to a fixed code base Fewer problems with statistical validity

Example certification curve From http://www.stsc.hill.af.mil/crosstalk/1996/06/reliabil.asp

Summary Software reliability engineering is a scientific (statistical) approach to reliability Vast improvement over common current practice Keep testing until all our test cases run and we feel reasonably confident Avoids under-engineering as well as overengineering ( zero defects ) When done well, SRE adds ~1% to project cost Musa s numbers, my experience: ~10% for medium-sized projects if you include cost of automated testing Note that as the number of builds and releases increases, automated testing more than pays for itself