Software Testing and Quality Assurance

advertisement

Software Testing and Quality

Assurance

Lecture 36 – Software Quality

Assurance

1

Lecture Objectives

Markov Models

Software Reliability Growth

2

Markov Models

Reliability block diagrams are

Useful for analyzing failure probabilities and reliability over fixed time intervals

We also need to understand

How reliability changes over time;

Especially in the presence of hardware.

Markov Chain can provide extra information about how a system’s reliability changes over time.

3

Markov Models – stochastic process

Random variable are functions that

Assign a number to each outcome in the sample space of an experiment.

In Reliability Models

The number of failures at time T which is discrete, or an integer-valued; OR

The time at which the first failure occurs, which is a continuous, real-valued, random variable.

4

Markov Models – Example

We are interested in Markov systems

We want to explore how the reliability of systems evolves over time.

Finite State Automaton (FSA)

5

Markov Models – Example

There are two states of interest in the automation

Functioning state; and

Failed state.

The transitions in the automation are not labeled with events

Labeled with probabilities.

6

Markov Models – Example

Each λ is the probability of making a transition from one state to the next

Within a specified time interval.

For the simple model of failure processes, we can interpret the states and probabilities over a time interval T

7

Markov Models – Example

8

Transition Matrix for the two State

Model

We can represent the probabilities for the simple two model as a matrix.

9

Transition Matrix for the two State

Model

Transition Matrix for the Markov Chain

10

Software Reliability Growth

Collection of techniques for estimating reliability as a program is being developed and tested.

Components/modules are tested and their failure rates are measured.

11

Software Reliability Growth

Failure rate of a component is the number of failures observed per unit time.

Failure rates are plotted against reliability models to determine

How much more development time is required to reach acceptable levels of reliability.

12

Software Reliability Growth

Measure Reliability

Through random testing.

Not specifically aimed at uncovering faults in a program, although it will certainly help to uncover any faults.

It aims at providing a random sample of inputs for the purpose of estimating a program ’s reliability.

13

Software Reliability Growth

Reliability Growth Models

Assumes that as development and testing continues

The failure rates experienced should decrease.

If failure rates are decreasing then the reliability should be increasing.

If the failure rates are not decreasing then there may

Be something wrong with our testing and development process

14

Software Reliability Growth –

Basic Execution Time Model

Reliability depends on:

The failure intensity λ (T) at time T and

The execution time itself.

Failure intensity is defined as

The failures experienced per unit time.

15

Software Reliability Growth –

Basic Execution Time Model

Relation between failure rates and reliability is given by:

Where e is Euler ’s number (the base of the natural logarithm).

Reliability is approximated by an inverse exponential

Function of time and failure intensity.

16

Software Reliability Growth –

Basic Execution Time Model

As the failure intensity λ approaches 0

Then R( T ) approaches 1; and

As the failure intensity approaches ∞

Then R( T ) approaches 0.

Even if we reached a low reliability estimate, the longer that a system is required toe execute without

Failure, the lower the reliability R ( T ) becomes.

17

Software Reliability Growth –

Basic Execution Time Model

Obtaining Failure Data

Test cases are selected randomly

We can not predict what the next test case selected will be.

In reliability measurement, to get meaningful results, test cases are selected according to the patterns of usage of the program.

18

Software Reliability Growth –

Basic Execution Time Model

Four ways of estimating failure intensity

The time of the failure;

The failures experienced in a specified time interval;

The time interval between failures;

The cumulative failures experienced up to a specified time.

19

Key points

Markov Models – stochastic process

Transition Matrix for the two State Model

Software Reliability Growth

Basic Execution Time Model

20

Download