Estimation
The Estimation module trends actual test data against classic software reliability growth models to estimate current MTBF and forecast into the future.
System-level testing only
The Estimation module is used during software system-level testing. It should not be used in developer unit-level testing, since the failure rate is typically increasing during unit-level testing.
Anchoring the fault rate to a start date
The estimation models require the fault rate to be computed with respect to software and system-level testing. The first day of testing and the current date are required inputs.
Entering defect & usage-time data
For each day of testing starting with the first day (per your setup), enter how many software faults were observed and how many usage hours were experienced. These instructions must be followed for the estimation results to be normalized. If testing occurred on a day but no faults were observed, enter 0 for f and the usage hours in x(hrs).
Collecting data
You’ll need regular access to the software problem reports recorded during testing. Filter reports before entering any data:
- Include only problem reports for a particular product/release — don’t merge reports from multiple products or field releases.
- Do not include new feature requests, since these aren’t failures.
- Do not include hardware failures.
- Include only problem reports serious enough to warrant a corrective action.
- If one problem report covers multiple software defects, count each defect individually.
- Enter the number of software faults (per the above filtering) per day in the “f” column.
You’ll also need to track testing performed per time interval, across all individuals — calendar time is not a normalized measure, so don’t use it as the unit of time.
- Determine how many people are testing each day.
- Determine how many hours per day each person is testing.
- Determine how many hours of automated testing occur each day.
- Total test hours per day is the cumulative hours across each person and automated test suite.
Enter the total usage hours per day in the x(hrs) column.
Reading the fault rate status
The status indicates whether there are enough data points to compute fault rate, and if so, whether it’s increasing or decreasing. Too few data points disables the remaining Estimation tabs. If the fault rate is increasing, most models are unable to generate a result.
Pressing “Defect and time primitives for all data points” displays the cumulative data below, used by every reliability model to predict MTBF and failure rate.
Exponential models group
Beneath this grouping is a graph of fault rate (n/t, x-axis) versus cumulative faults (n, y-axis) for every day of testing. A negative slope means fault rate is decreasing; positive means increasing. The Y-intercept (inherent defects), X-intercept (initial failure rate), and slope (−1/K) feed the Exponential models. Press “Exponential model parameters for all data points” to see the estimated inherent defects, initial failure rate, and K for each day of testing.
Logarithmic model group
Beneath this grouping is a graph of n (y-axis) versus ln(n/t) (x-axis) for every day of testing; Theta = 1/slope. Press “Logarithmic model parameters for all data points” to see the estimated theta and slope for each day of testing.
Six estimated failure rates per day of testing
This page shows six results for each day of testing, starting with the most recent.
The tabular display shows estimates for the most recent test day, plus prior days; the graphical button plots the table.
Which model is trending closest
Shows the relative accuracy of each model, averaged over all data points — the model with the smallest relative error is trending closest to actual time between failures. A second table shows relative accuracy for the most recent N data points, where you choose N — entering 1 shows the accuracy of the very last estimate; entering 5 shows the last five. Since the fault rate trend can change direction during testing, it’s useful to know which model tracks best against the most recent data.
Upper & lower bounds per model
Illustrates upper and lower bounds for each model at a selectable confidence value. 95% confidence gives the widest bound range; 50% gives the narrowest. A confidence interval is a range x ± bounds around the mean: for any population mean outside that range, the probability of a sample mean further from it than x is less than alpha (e.g. alpha = .05 ⇒ 95% confidence). The bound is computed from the selected alpha, the standard deviation of the N₀ estimates, and the total number of estimates.
Projecting MTBF forward
One of the most common reasons to use software reliability growth models: forecasting what MTBF will be after Δt more hours of testing.
How much more testing is needed
The other common reason to use these models: forecasting how many more test hours or defects are needed to reach a specific objective, using the exponential models.
Compare against your predictions.
Trended estimation data pairs with the Dashboard’s predicted-versus-actual comparison.