Software Reliability
Software Reliability
Software Reliability
1
Software Reliability
What is software reliability?
design flaws:
- mistakes in the interpretation of the specification
that the software is supposed to satisfy (ambiguities)
- mistakes in the implementation of the specification:
carelessness or incompetence in writing code,
inadequate testing
operational faults
incorrect or unexpected usage faults (operational profile)
2
Design Faults
Given a design flaw, only some type of inputs will exercise that
fault to cause failures. Number of failures depend on how
often these inputs exercise the sw flaw
3
Software reliability
4
5
We assume that programs will not be fault free
6
Software faults and Failure regions
Failure regions
y
x
The software contains bugs if some inputs are processed erroneously
7
Software Reliability
Software reliability is not a direct function of time.
Electronical and mechanical parts may become old, and
wear-out with time and usage.
Software DOES NOT wear-out during its life.
Software DOES NOT change over time unless
intentionally changed or upgraded
8
SOFTWARE RELIABILITY EVOLUTION
upgrades imply feature upgrades, not upgrades for reliability.
9
SOFTWARE RELIABILTY EVOLUTION
in the last phase, software does not have an
increasing failure rate as hardware does. In this phase,
software is approaching obsolescence; there are no
motivations for any upgrades or changes to the software.
Therefore, the failure rate will not change.
10
Reliability upgrades drop in software failure rate, if redesign or
reimplementation of some modules with better engineering
approaches
11
12
Software Reliability Growth Models
Disadvantages:
Do not consider that correct a bug may introduce new bugs
Do not consider specification errors (only implementation faults)
13
Reliability growth characterization
T1 T2 Tk
0
14
Reliability growth characterization
0 x xx x x xx x x
N(1) N(2)
N(k)
15
Jelinski and Moranda Model
(the earliest and the most commonly used model)
16
Schick and Wolver ton Model
Software failure rate is proportional to the current fault content of the
program as well as to the time elapsed since the last failure
Other models ….
17
Dependency analysis
Workload/failure dependency
workload appers to act as a stress factor: the failure rate increases as
the workload increases
18
DEFENSE against application sw CCF
19
Software Reliability Engineering
20
A global software reliability analysis method
22
Descriptive statistics
make syntheses of the observed phenomena
Analyses Fault typology, Fault density of components, Failure /
fault distribution among software components (new, modified,
reused)
Analyses Relationships Fault density / size / complexity;
Nature of faults / components; Number of components affected by
changes made to resolve an FR .
…….
Trend tests
Control the efficiency of test activities
- Reliability decrease at the beginning of a new activity: OK
- Reliability grow after reliability decrese: OK
- Sudden reliability grow CAUTION!
- .......
Model application
Trend in accordance with model assumptions
23
Software Reliability
Due to the nature of software, no general accepted mechanisms
exist to predict software reliability
24