View
215
Download
1
Embed Size (px)
Citation preview
1
Software Testing and Quality Assurance
Lecture 36 – Software Quality Assurance
2
Lecture Objectives Markov Models Software Reliability Growth
3
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 abouthow a system’s reliability changes over time.
4
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.
5
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)
6
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.
7
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
8
Markov Models – Example
9
Transition Matrix for the two State Model
We can represent the probabilities for the simple two model as a matrix.
10
Transition Matrix for the two State Model
Transition Matrix for the Markov Chain
11
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.
12
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.
13
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.
14
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
15
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.
16
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.
17
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 longerthat a system is required toe execute without
Failure, the lower the reliability R (T) becomes.
18
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.
19
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.
20
Key points Markov Models – stochastic process
Transition Matrix for the two State Model Software Reliability Growth
Basic Execution Time Model