Top Banner
1 Software Reliability Engineering: A Roadmap Michael R. Lyu Dept. of Computer Science & Engineering The Chinese University of Hong Kong Future of Software Engineering ICSE’2007 Minneapolis, Minnesota May 24, 2007
24
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: presentation

1

Software Reliability Engineering: A Roadmap

Michael R. Lyu

Dept. of Computer Science & Engineering The Chinese University of Hong Kong

Future of Software EngineeringICSE’2007

Minneapolis, MinnesotaMay 24, 2007

Page 2: presentation

2

Introduction

Software reliability is the probability of failure-free operation with respect to execution time and environment.

Software reliability engineering (SRE) is the quantitative study of the operational behavior of software-based systems with respect to user requirements concerning reliability.

SRE has been adopted by more than 50 companies as standards or best current practices.

Creditable software reliability techniques are still in urgent need.

Page 3: presentation

3

Historical SRE Techniques: Fault Lifecycle

Fault prevention: to avoid, by construction, fault occurrences.

Fault removal: to detect, by verification and validation, the existence of faults and eliminate them.

Fault tolerance: to provide, by redundancy and diversity, service complying with the specification in spite of manifested faults.

Fault/failure forecasting: to estimate, by statistical modeling, the presence of faults and occurrence of failures.

Page 4: presentation

4

Fault Lifecycle Technique

Fault Manifestation and Modeling Process

Reliability

Fault Prevention

Fault Removal

Fault Tolerance

Fault/Failure Forecasting

Page 5: presentation

5

Fault Lifecycle Technique

Fault Manifestation and Modeling Process

Reliability Availability Safety Security

Fault Prevention

Fault Removal

Fault Tolerance

Fault/Failure Forecasting

Page 6: presentation

6

Software Reliability Modeling

Execution Time

Failure Rate

PresentAdditional Time

Present

Objective

R = e -t

Testing Time

Page 7: presentation

7

Current SRE Process Overview

Page 8: presentation

8

Current Trends and Problems

The theoretical foundation of software reliability comes from hardware reliability techniques.

Software failures do not happen independently. Software failures seldom repeat in exactly the

same or predictable pattern. Failure mode and effect analysis (FMEA) for

software is still controversial and incomplete. There is currently a need for a creditable end-to-

end software reliability paradigm that can be directly linked to reliability prediction from the very beginning.

Page 9: presentation

9

Future Direction 1: Reliability-Centric Software Architectures

The product view – achieve failure-resilient software architecture Fault prevention Fault tolerance

The process view – explore the component-based software engineering Component identification, construction,

protection, integration and interaction Reliability modeling based on software structure

Page 10: presentation

10

Future Direction 2: Design for Reliability Achievement

Fault confinementFault detectionDiagnosisReconfigurationRecoveryRestartRepairReintegration

Page 11: presentation

Fault Confinement

Fault Detection Fault Detection

Failover Diagnosis

Online Offline

Reconfiguration

Recovery

Restart

Repair

Reintegration

Page 12: presentation

12

Future Direction 3: Testing for Reliability Assessment

Establish the link between software testing and reliability

Study the effect of code coverage to fault coverage

Evaluate impact of reliability by various testing metrics

Assess competing testing schemes quantitatively

Page 13: presentation

13

Positive vs. negative evidences for coverage-based software testing

Resources Findings

Positive

Frankl(1988)

Horgan(1994)

Weyuker(1988)

High code coverage brings high software reliability and low failure rate

Chen(1992) A correlation between code coverage and software reliability

is observed

Wong(1994) The correlation between test effectiveness and block coverage is higher than that between test effectiveness and the size of test set

Frate(1995) An increase in reliability comes with an increase in at least one code coverage measures

Cai (2005) Code coverage contributes to a noticeable amount of fault coverage

Negative Briand(2000) The testing result on published data did not support a causal

dependency between code coverage and defect coverage

Page 14: presentation

14

RSDIMU test cases description

I

II

IIIIV

V

VI

Page 15: presentation

15

The correlation: various test regions

Linear modeling fitness in various test case regions

Linear regression relationship between block coverage and fault coverage in the whole test set

Fault Coverage

Page 16: presentation

16

The correlation: normal operational testing vs. exceptional testing

Normal operational testing very weak correlation

Exceptional testing strong correlation

Testing profile (size) R-square

Whole test case (1200) 0.781

Normal testing (827) 0.045

Exceptional testing (373) 0.944

Page 17: presentation

17

The correlation: normal operational testing vs. exceptional testing

Normal testing: small coverage range (48%-52%) Exceptional testing: two main clusters

Fault CoverageFault Coverage

Page 18: presentation

18

The Spectrum in Software Testing and Reliability

Software ReliabilityGrowth Models

New Model Coverage-Based Analysis

• A new model is needed to combine execution time and testing coverage

Time Based Models

CoverageBasedTesting

- user oriented - tester oriented- more physical meaning - less physical meaning - abundant models - lack of models- easy data collection - hard data collection- less relevance to testing - more relevance to testing

Page 19: presentation

19

A New Coverage-Based Reliability Model

λ(t,c): joint failure intensity function λ1(t): failure intensity function with respect to time

λ2(c): failure intensity function with respect to coverage

α1,γ1, α2, γ2: parameters with the constraint of

α 1 + α 2 = 1

joint failure intensity function

failure intensity function with time

failure intensity function with coverageDependency

factors

Page 20: presentation

20

Estimation Accuracy

Page 21: presentation

21

Future Direction 4: Metrics for Reliability Prediction

New models (e.g., BBN) to explore rich software metrics

Data mining approachesMachine learning techniquesBridging the gap of the one-way function:

feedback to building reliable softwareContinuous industrial data collection efforts

– demonstration of cost-effectiveness

Page 22: presentation

22

Future Direction 5: Reliability for Emerging Software Applications

“The Internet changes everything”On-demand customizable softwareService oriented architecture, composition,

integrationCustomization by middleware – from

metadata to metacodeA common infrastructure delivers reliability

to all customers

Page 23: presentation

23

Replication Manager

Web service selection algorithm

WatchDog

UDDI

Registry

WSDL

Web ServiceIIS

Application

Database

Web ServiceIIS

Application

Database

Web ServiceIIS

Application

Database

Client

Port

Application

Database

1. Create Web services

2. Select primary Web service (PWS)

3. Register

4. Look up

5. Get WSDL

6. Invoke Web service

7. Keep check the availability of the PWS

8. If PWS failed, reselect the PWS.

9. Update the WSDL

A Paradigm for Reliable Web Service

Page 24: presentation

24

ConclusionsSoftware reliability is receiving higher

attention as it becomes an important economic consideration for businesses.

New SRE paradigms need to consider software architectures, testing techniques, data analyses, and creditable reliability modeling procedures.

Domain specific approaches on emerging software applications are worthy of investigation.

Still a long way to go, but the directions are clear.