What is the difference between estimation and prediction models?
Predictions do not use observed testing defect data as inputs. Estimation
models do. There are many many estimation models available today, however, they
are derived from a small number of probabilistic models, namely:
- Exponential (Binomial, Poisson)
- Weibull
- Logarithmic
Within these probabilistic models there are also variations on whether the model is
based on a
- Time domain (failure rate changes as time passes) or
- Defect domain (failure rate changes when a new defect is observed).
To use estimation models one must:
- A. collect and input testing defect data such as the defects per day
- B. calculate some basic parameters such as the rate at which defects
are increasing
- C. determine if the defect rate is applicable for the model at hand
(exponential models require a decreasing defect rate for example)
- D. if the model is applicable then the estimate model parameters which
are usually the predicted number of inherent defects and the initial failure rate are
computed.
- E.solve for failure rate and MTTF by inputting the total number of
observed defects and testing time into the model formula.
- F. compute the relative error between this estimation and the actual
observed failure rate or MTTF and determine which model has the lowest relative error for
this phase of the project. (Keep in mind that as the project progresses, the defect
rate may change and the model with the lowest relative error may change also.)
- G. determine how many defects or how much testing time is required to reach some
objective failure rate or MTTF.
- H. determine the resources required to meet this objective
Frestimate's WhenToStop module provides an EASY to use interface for step A and
automates steps B through H so that the user simply views the results and makes the
decisions.
- Software testing managers use this to determine time and resources required to test
software
- Software managers use estimation models to determine a suitable MTTF objective for
delivery as well as resources required for maintaining software.
- Reliability engineers use this model to update their system reliability predictions
based on actual data as opposed to empirical data.
|