Software Quality Engineering - Unit 3
Software Quality Engineering - Unit 3
Engineering
You can’t control what you can’t measure – Tom Demacro
KCA-035
Unit-3 Contents
Bathtub curve for hardware reliability Revised bathtub curve for software reliability
Software Reliability Models
It articulates the points on defect prevention and early defect removal. Based on the
model, if the error injection rate is reduced, the entire area under the Rayleigh curve
becomes smaller, leading to a smaller projected field defect rate. Also, more defect
removal at the front end of the development process will lead to a lower defect rate
at later testing phases and during maintenance. Both scenarios aim to lower the
defects in the latter testing phases, which in turn lead to fewer defects in the field.
Rayleigh Model
The goal is to shift the peak of the Rayleigh
curve to the left while lowering it as much
as possible. Strategy is to achieve the defect
injection/removal pattern represented by
the lowest curve, one with an error
injection rate. In the figure RHS, the Y-axis
represents the defect rate. The development
phases represented by the X-axis are high-
level design review (I0), low-level design
review (I1), code inspection (I2), unit test
(UT), component test (CT), system test
(ST), and product general availability
(GA).
Exponential Distribution Model
Exponential Distribution Model
In software reliability the exponential distribution is one of the better-known
software reliability growth models and is often the basis of many other software
reliability growth models. Following should be taken into consideration when
applying the exponential distribution for reliability projection or estimating the
number of software defects:
• With all types of modeling and estimation, the more accurate and precise the input
data, the better the outcome
• Data tracking for software reliability estimation is done either in terms of precise
CPU execution time or on a calendar-time basis.
• Normally execution-time tracking is for small projects or special reliability studies;
calendar-time tracking is common for commercial development. When calendar-
time data are used, a basic assumption for the exponential model is that the testing
effort is homogeneous throughout the testing phase
Exponential Distribution
Exponential Distribution Model
For instance, in the example shown in Figures from
Model
RHS, the testing effort remained consistently high and
homogeneous throughout the system test phase; a
separate team of testers worked intensively based on a
predetermined test plan. The product was also large
(>100 KLOC) and therefore the trend of the defect
arrival rates tended to be stable even though no Exponential Model Cumulative Distribution
execution-time data were available.
To verify the assumption, indicators of the testing
effort, such as the person-hours in testing for each time
unit (e.g., day or week), test cases run, or the number of
variations executed, are needed. If the testing effort is
clearly not homogeneous, some sort of normalization
must be made. Otherwise, models other than the
exponential distribution should be considered .
Example 1: Consider we have data on 1,650 units that have operated for an average
of 400 hours. Overall, there have been 145 failures. Calculate the reliability at 850
hours
Exponential Distribution Model
We’re given 1,650 its ran on average 400 hours, thus 400 time 1,650 provides the
total time.
With the failure rate we can calculate the reliability at 850 hours
Example 2: For λ=0.001 or 1 failure for 1000 hours, reliability (R) is around
_____ for 8 hours of operation.
Answer: 0.992
Advantages of Reliability Growth Models
• Predicting Reliability: Reliability growth models are used to predict the reliability
of a system over time, which can help organizations to make informed decisions
about the allocation of resources and the prioritization of improvements to the
system.
• Guiding the Testing Process: Reliability growth models can be used to guide the
testing process, by helping organizations to determine which tests should be run,
and when they should be run, in order to maximize the improvement of the
system’s reliability.
• Improving the Allocation of Resources: Reliability growth models can help
organizations to make informed decisions about the allocation of resources, by
providing an estimate of the expected reliability of the system over time, and by
helping to prioritize improvements to the system.
• Identifying Problem Areas: Reliability growth models can help organizations to
identify problem areas in the system, and to focus their efforts on improving these
areas in order to improve the overall reliability of the system.
Disadvantages of Reliability Growth Models
• Predictive Accuracy: Reliability growth models are only predictions, and
actual results may differ from the predictions. Factors such as changes in the
system, changes in the environment, and unexpected failures can impact the
accuracy of the predictions.
• Model Complexity: Reliability growth models can be complex and may
require a high level of technical expertise to understand and use effectively.
• Data Availability: Reliability growth models require data on the system’s
reliability, which may not be available or may be difficult to obtain.
Reliability Allocation Models
Reliability Allocation deals with the setting of reliability goals for individual
subsystems such that a specified reliability goal is met, and the hardware and
software subsystem goals are well-balanced among themselves. It involves a
balancing act of determining how to allocate reliability to the components in the
system so the system will meet its reliability goal while at the same time
ensuring that the system meets all of the other associated performance
specifications.
Three allocation methods: equal allocation, weighted reliability allocation and
cost optimization allocation.
Reliability Allocation Models
Semi-Customized Model:
• Use general characteristics and historical information about product,
process or environment
• Example: Defect Removal Models (DRMs) provide defect distribution
profile over development phases based on previous releases of the same
product
• Information from these semi-customized models can be directly used to
predict defect distribution for the current release
Software Quality Assessment Models
Observation-based models:
• Relate observations of the software system behavior to information about
related activities for more precise quality assessments
• Examples of such models include various software reliability growth
models (SRGMs)
• Usually use data from current projects
Software Quality Assessment Models
Measurement-driven predictive Model
• Establish predictive relations between quality and other measurements
based on historical data
• Provide entry predictions of quality
• Identify problems early for timely actions
• Use statistical analysis techniques/ learning algorithms
• Developers use predictive relations from this model to focus their
inspection effort on selected modules to effectively utilize limited
resources.
Software Reliability Engineering Process.
End of Unit-3