1. Field of the Invention
The present invention relates to a method and system for assessing and analyzing software reliability, and more particularly, to a method and system for assessing and analyzing software reliability with a reliability model having a testing compression factor.
2. Description of the Related Art
In recent years, due to the growing significance of software applications, professional testing of software has become an increasingly important task. The dependency between faults may exist. For example, as shown in
Software reliability has important relations with many aspects of software, including the structure, the operational environment, and the amount of testing. In fact, software reliability analysis is a key factor of software quality and can be used for planning and controlling the testing resources during development. Over the past three decades, many software reliability growth models have been proposed. For most traditional software reliability growth models, one common assumption is that the fault detection rate is a constant over time. However, the fault detection process in the operational phase is different from that in the testing phase.
The present invention proposes a method for assessing and analyzing software reliability, and one embodiment of the method comprises the steps of: collecting failure data from a software system during a testing period; providing a reliability model having a testing compression factor, wherein the reliability model is used to fit the failure data; providing an estimation function derived from the reliability model; obtaining the value of the testing compression factor in accordance with the estimation function; and using the testing compression factor to determine the efficiency of test cases.
Another embodiment of the present invention comprises the steps of: collecting failure data from a software system during a testing period; providing a reliability model having a testing compression factor, wherein the reliability model is used to fit the failure data; providing an estimation function derived from the reliability model; obtaining unknown values of parameters of the reliability model in accordance with the estimation function; and using the parameters to analyze the software reliability.
The software testing system according to one embodiment of the present invention includes a reliability model, which has a reliability model with a testing compression factor, wherein the reliability model includes a validation phase, a field trial phase and an operation phase, and the testing compression factor is used to evaluate the characteristic of the field trial and operation phases.
The invention will be described according to the appended drawings in which:
Normally, the testing period includes three phases, i.e., validation, field trial and operation. The reliability model of one embodiment of the present invention is expressed as follows:
Wherein m1(t) represents the validation phase characteristic, m2(t) represents the field trial and operation phase characteristic, the parameter α represents a quantified ratio of faults to failures in the software system, τ represents a change point when the validation phase ends, the parameter α represents the expected number of initial faults, the parameter c represents the testing compression factor used to determine the efficiency of test cases during the test period, and the parameter r represents a fault detection rate during the validation phase.
Unknown parameters of the reliability model can be obtained by an estimation function, like Maximum Likelihood Estimation (MLE) or Least Square Estimation (LSE). Here, MLE is taken as an example. First, a likelihood function L is sought.
Second, the likelihood function L is differentiated by each unknown parameter, and the partial derivatives are set to zero, where m(t) is the expected number of faults during (0, t) and y is the actual number of faults during (0, t).
Third, the nonlinear equations are solved.
When the operational profile is not fully developed, the application of a testing compression factor (TCF) can assist in estimating field reliability. A TCF is defined as the ratio of execution time required in the operational phase to execution time required in the test phase to cover the input space of the program. Since testers during testing are quickly searching through the input space for both normal and abnormal execution conditions, while users during operation only execute the software with a regular pace, this factor represents the reduction of failure rate (or increase in reliability) during operation with respect to that observed during testing. For example, assuming that the number of input spaces of a software program is 1000, if a programmer elaborately designs test cases, which can fully cover the input spaces of the software by taking only ten days in contrast with manual operation taking fifty days, the TCF factor will be 50/10=5. In other words, the more efficient the test cases are, the higher the factor TCF is. Consequently, the factor TCF can be used to evaluate the efficiency of the test cases.
As shown in
The failure data collected during the validation phase and field trail phase are used to estimate the parameters and then use the estimates to forecast the operational failure data. Table I gives the estimated parameters of the present invention and other known models, and the performance comparisons are shown in Table II, which includes the comparison of using 1-42, 43-81, and 1-81 time unit data.
As shown in Table II, the present invention has the lowest MSE and KS values. Consequently, the present invention gives a good fit to the failure data during the testing phase.
The above-described embodiments of the present invention are intended to be illustrative only. Numerous alternative embodiments may be devised by persons skilled in the art without departing from the scope of the following claims.
Number | Date | Country | |
---|---|---|---|
60943956 | Jun 2007 | US |