Achieving Better Reliability With Software Reliability Engineering Russel D’Souza Russel D’Souza.

Slides:



Advertisements
Similar presentations
On the application of GP for software engineering predictive modeling: A systematic review Expert systems with Applications, Vol. 38 no. 9, 2011 Wasif.
Advertisements

Target Costing If you cannot find the time to do it right, how will you find the time to do it over?
Project Management and Software Quality See accompanying Word file “Software PM tools 3”
Design of Experiments Lecture I
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
Software Reliability Engineering: A Roadmap
Simple Linear Regression
Telecommunications Project Management Quality Management PERT.
Swami NatarajanJune 17, 2015 RIT Software Engineering Reliability Engineering.
SE 450 Software Processes & Product Metrics Reliability Engineering.
1 IS371 WEEK 8 Last and Final Assignment Application Development Alternatives to Application Development Instructor Online Evaluations.
Testing Metrics Software Reliability
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Knowledge is Power Marketing Information System (MIS) determines what information managers need and then gathers, sorts, analyzes, stores, and distributes.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
BA 427 – Assurance and Attestation Services
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Supply Chain Management (SCM) Forecasting 3
Capability Maturity Model
Top Myths about Future Employment in IT. Society for Information Management 2 Why We are Here The understanding of simple economic principles has sent.
Selling Consolidation’s Value. Why Consolidate? Reduce Complexity Increase Productivity Reduce TCO Improve End User Experience Improve IT Performance.
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 Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
© 2014 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license.
Chapter 1: Introduction to Statistics
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Marketing Research: Overview
N By: Md Rezaul Huda Reza n
CPIS 357 Software Quality & Testing
Analyzing Reliability and Validity in Outcomes Assessment (Part 1) Robert W. Lingard and Deborah K. van Alphen California State University, Northridge.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Chap 20-1 Statistics for Business and Economics, 6e © 2007 Pearson Education, Inc. Chapter 20 Sampling: Additional Topics in Sampling Statistics for Business.
So What? Operations Management EMBA Summer TARGET You are, aspire to be, or need to communicate with an executive that does not have direct responsibility.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
TESTING FOR THE RELIABILITY OF A SOFTWARE SARAT CHANDRA YADAVALLI CSC 532 TERM PAPER.
Chapter 5: Postulates, Principles and Concepts
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
21-22 May 2004IMPROQ 2004 / Impact of SW Processes on Quality Workshop 1 Quality for Components: Component and Component- Based Software Quality Issues.
Building Dependable Distributed Systems Chapter 1 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
THE MANAGEMENT AND CONTROL OF QUALITY, 5e, © 2002 South-Western/Thomson Learning TM 1 Chapter 7 Process Management.
Copyright  2003 by Dr. Gallimore, Wright State University Department of Biomedical, Industrial Engineering & Human Factors Engineering Human Factors Research.
Lecture 9 Chap 9-1 Chapter 2b Fundamentals of Hypothesis Testing: One-Sample Tests.
Fault Tolerance Benchmarking. 2 Owerview What is Benchmarking? What is Dependability? What is Dependability Benchmarking? What is the relation between.
“How to Measure the Impact of Specific Development Practices on Fielded Defect Density” by Ann Marie Neufelder Presented by: Feride Padgett.
Software Project Management Lecture # 2 Originally shared for: mashhoood.webs.com.
COSTING AND THE VALUE CHAIN CHAPTER 18 PAGE# 794 Faisal
Compuware Corporation Deliver Reliable Applications Faster Dave Kapelanski Automated Testing Manager.
SENG521 (Fall SENG 521 Software Reliability & Testing Overview of Software Reliability Engineering Department of Electrical.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Data Collection & Analysis ETI 6134 Dr. Karla Moore.
Software Engineering Lecture 8: Quality Assurance.
1 PowerPointPresentation by PowerPoint Presentation by Gail B. Wright Professor Emeritus of Accounting Bryant University © Copyright 2007 Thomson South-Western,
Chapter 05 Quality Planning SaigonTech – Engineering Division Software Project Management in Practice By Pankaj Jalote © 2003 by Addison Wesley.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
SENG521 (Fall SENG 521 Software Reliability & Testing Preparing for Test (Part 6a) Department of Electrical & Computer Engineering,
Balanced Scorecard: Quality, Time, and the Theory of Constraints
Authors: Maria de Fatima Mattiello-Francisco Ana Maria Ambrosio
Software Quality Engineering
Important Software Performance Testing That Ensure High Quality Solutions.
Software Reliability Engineering
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Achieving Better Reliability With Software Reliability Engineering Russel D’Souza Russel D’Souza

The Software Problem Customers Demand :- Customers Demand :-  More reliable software  Faster products  Cheaper products Success or Failure in meeting demands affects  Market share  Profitability  Demands conflict, Causing risk and Overwhelming pressure  Demands conflict, Causing risk and Overwhelming pressure

Problem Aggravated Software Glitches Cause:-  Loss of Competitive position & Market share  Poor Quality products, High costs of defects  Lack of Security/Fault protection  Loss of Consumer Confidence  Poor Quality products and Slow response to Consumer’s needs  Unsatisfactory return on Software Investment

Real World Problems  Defective Software cost Industry $175 billion in Y2K  Loss Of a Single Network cell costs $18K per minute of downtime  More than 110 million Computers are online Connected via Internet and are prone to Virus attacks and Defects  >90% of Institutions reported Insider abuse of Network Access in year 2000

The Solution – Software Reliability Engineering (SRE) ► Reduces or Eliminates Defects from Software ► Designs Software for Reliability, Fault tolerance, Rapid fault recovery ► Maximizes use of proven SRE models ► Applies existing Statistical models to Real world Software Environments ► Adds and Integrates SRE with other Good processes and practices without Replacing them

What is SRE ?  A Sub-discipline of Software engineering based on Solid body of Theory that includes Operational profiles, Random process software reliability models, Statistical estimation and Sequential sampling theory  Works by quantitatively characterizing the operational behavior of software based systems Based on two fundamental ideas:-  Deliver desired functionality for a product efficiently by quantitatively characterizing the expected use of product, precisely focusing resources in most used and critical functions  Make testing realistically represent field conditions

SRE Is Widely Applicable SRE Is Widely Applicable  Technically speaking, you can apply SRE to any software-based product, beginning at start of any release cycle.  Economically speaking, the complete SRE process may be impractical for small components (involving perhaps less than 2 staff months of effort), unless used in a large number of products.  Economically speaking, the complete SRE process may be impractical for small components (involving perhaps less than 2 staff months of effort), unless used in a large number of products.  Independent of development technology and platform  SRE requires no changes in architecture, design, or code - but it may suggest changes that would be beneficial.  SRE requires no changes in architecture, design, or code - but it may suggest changes that would be beneficial.

The SRE Process

List Associated Systems  Lists all systems associated with the product that must be tested independently and are of two types – Base product & variations and Super- systems Develop Operational Profiles  An Operational profile is a Complete set of commands with their probabilities of occurrence  System Testers and System engineers are included in this activity  Testers get more in contact with the product users which allows them to get a feedback from the users as to what system behavior is acceptable, what is not and how users employ the product

Define “Just Right” Reliability  Define what “failure” means for the product  Failure is defined as any Departure of system Behavior in execution from user needs  Failure intensity is the number of Failures per unit time  Choose a common Measure for all failure intensities, either Failures per some natural unit or Failures per hour  Set the total system Failure Intensity Objective (FIO) for each associated System using Field data like Customer Satisfaction surveys related to measured failure intensity, or an analysis of competing products balancing among major quality characteristics users need.

Prepare for Test  Use the Operational profiles to prepare the Test cases and the Test procedures  Select Test cases within the Operation on a Uniform Basis Execute Test Execute Test  Allocate Test time among Feature test, Load test, and Regression test Feature tests - Interactions and Effects of the field environment minimized Feature tests - Interactions and Effects of the field environment minimized Load tests execute Test cases simultaneously, with full interactions and all the effects of the Field environment Load tests execute Test cases simultaneously, with full interactions and all the effects of the Field environment Regression executes some or all feature tests and it is designed to reveal failures caused by faults introduced by program changes Regression executes some or all feature tests and it is designed to reveal failures caused by faults introduced by program changes

Guiding Test Guiding Test  Involves guiding the product’s system Test phase and Release  Failure data is interpreted differently for software we are developing and software we acquire. We attempt to remove the faults that are causing Failures  For developed software, we estimate the FI/FIO ratio from the times of failure events or the number of failures per time interval, using reliability estimation programs such as CASRE (Computer Aided Software Reliability estimation)

Reliability Growth Test  SRE is used to Estimate and track Reliability  Main objective of this Test is to find and remove faults  Includes Feature, Load and Regression tests Feature test is one in which operations are executed separately with interactions and effects of field environment minimized Feature test is one in which operations are executed separately with interactions and effects of field environment minimized Load test on the other hand has the environment similar to that in actual field when carried out.. It is sub-divided into two types - Acceptance test and Performance test Load test on the other hand has the environment similar to that in actual field when carried out.. It is sub-divided into two types - Acceptance test and Performance test Regression test is the execution of randomly selected or all Feature tests after a significant change in a System Build Regression test is the execution of randomly selected or all Feature tests after a significant change in a System Build Certification Test ► Makes a Binary type decision about the Software being tested. I.e. the software is either accepted or rejected ► Certification test is generally used only for Load tests Software Reliability Engineering (SRE) Types of Tests

Software Reliability Models (SRM) Modeling techniques can be divided:-  Prediction modeling & Estimation modeling Both techniques Based on Observing and Accumulating Failure data and analyzing with Statistical Inference Features Of A Good SRM:- Features Of A Good SRM:-  Give good predictions of future failure behavior  Compute useful quantities  Be simple enough for many to use  Be widely applicable  Be based on sound assumptions  Become and remain stable

Conclusion SRE is a field of engineering where you:-  Design, Build, Balance Testing and other Reliability improvement approaches for a software product  Allocate Testing resources in accordance with use and criticality of operations  Control the Software-Based products you develop, rather than the process controlling you.  Can be confident of the reliability and availability of the products.  Can deliver them in minimum time and cost for High levels of Reliability and Availability achieved Thus SRE is a vital skill to possess to be Competitive in Today’s marketplace