Software testing techniques (2nd ed.)
Software testing techniques (2nd ed.)
Markov analysis of software specifications
ACM Transactions on Software Engineering and Methodology (TOSEM)
A Markov Chain Model for Statistical Software Testing
IEEE Transactions on Software Engineering
Handbook of software reliability engineering
Handbook of software reliability engineering
Software defect and operational profile modeling
Software defect and operational profile modeling
Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
Linear System Theory and Design
Linear System Theory and Design
The Effect of Imperfect Error Detection on Reliability Assessment via Life Testing
IEEE Transactions on Software Engineering
Software testing processes as a linear dynamic system
Information Sciences: an International Journal
Does software reliability growth behavior follow a non-homogeneous Poisson process
Information and Software Technology
A layer-based method for rapid software development
Computers & Mathematics with Applications
Information Sciences: an International Journal
Accurate Prediction of Coronary Artery Disease Using Reliable Diagnosis System
Journal of Medical Systems
Hi-index | 0.09 |
Software reliability testing is concerned with the quantitative relationship between software testing and software reliability. Our previous work develops a mathematically rigorous modeling framework for software reliability testing. However the modeling framework is confined to the case of perfect debugging, where detected defects are removed without introducing new defects. In this paper the modeling framework is extended to the case of imperfect debugging and two models are proposed. In the first model it is assumed that debugging is imperfect and may make the number of remaining defects reduce by one, remain intact, or increase by one. In the second model it is assumed that when the number of remaining defects reaches the upper bound, the probability that the number of remaining defects is increased by one by debugging is zero. The expected behaviors of the cumulative number of observed failures and the number of remaining defects in the first model show that the software testing process may induce a linear or nonlinear dynamic system, depending on the relationship between the probability of debugging introducing a new defect and that of debugging removing a detected defect. The second-order behaviors of the first model also show that in the case of imperfect debugging, although there may be unbiased estimator for the initial number of defects remaining in the software under test, the cumulative number of observed failures and the current number of remaining defects are not sufficient for precisely estimating the initial number of remaining defects. This is because the variance of the unbiased estimator approaches a non-zero constant as the software testing process proceeds. This may be treated as an intrinsic principle of uncertainty for software testing. The expected behaviors of the cumulative number of observed failures and the number of remaining defects in the second model show that the software testing process may induce a nonlinear dynamic system. However theoretical analysis and simulation results show that, if defects are more often removed from than introduced into the software under test, the expected behaviors of the two models tend to coincide with each other as the upper bound of the number of remaining defects approaches infinity.