Abstract
Software reliability is an important metric that quantifies the quality of a software product and is inversely related to the residual number of faults in the system. Fault removal is a critical process in achieving desired level of quality before software deployment in the field. Conventional software reliability models assume that the time to remove a fault is negligible and that the fault removal process is perfect. In this paper we examine various kinds of fault removal policies, and analyze their effect on the residual number of faults at the end of the testing process, using a non-homogeneous continuous time Markov chain. The fault removal rate is initially assumed to be constant, and it is subsequently extended to cover time and state dependencies. We then extend the non-homogeneous continuous time Markov chain (NHCTMC) framework to include imperfections in the fault removal process. A method to compute the failure intensity of the software in the presence of explicit fault removal is also proposed. The fault removal scenarios can be easily incorporated using the state-space view of the non-homogeneous Poisson process.
Similar content being viewed by others
References
Dalal, S.R. and Mallows, C.L. 1990. Some graphical aids for deciding when to stop testing software, IEEE Trans. on Software Engineering 8(2): 169-175.
Defamie, M., Jacobs, P., and Thollembeck, J. 1999. Software reliability: Assumptions, realities and data, Proc. of International Conference on Software Maintenance, September.
Farr, W. 1996. Software reliability modeling survey: Handbook of Software Reliability Engineering, ed. M.R. Lyu, pp. 71-117, New York, McGraw-Hill.
Goel, A.L. and Okumoto, K. 1979. Time-dependent error-detection rate models for software reliability and other performance measures, IEEE Trans. on Reliability R-28(3): 206-211.
Goel, A.L. 1985. Software reliability models: Assumptions, limitations and applicability, IEEE Trans. on Software Engineering SE-11(12): 1411-1423.
Gokhale, S. and Trivedi, K.S. 1998. Log-logistic software reliability growth model, Proc. of High Assurance Systems Engineering (HASE 98), Washington, DC, November, pp. 34-41.
Gokhale, S. and Trivedi, K.S. 1999. A time/structure based software reliability model, Annals of Software Engineering 8: 85-121.
Gokhale, S., Philip, T., Marinos, P.N., and Trivedi, K.S. 1996. Unification of finite failure non-homogeneous Poisson process models through test coverage, Proc. of Intl. Symposium on Software Reliability Engineering (ISSRE 96), White Plains, NY, October, pp. 289-299.
Gokhale, S., Marinos, P.N., Trivedi, K.S. and Lyu, M.R. 1997. Effect of repair policies on software reliability, Proc. of Computer Assurance (COMPASS 97), Gatheirsburg, MD, June, pp. 105-116.
Gokhale, S. 2003. Optimal software release time incorporating fault correction, Proc. of 28th IEEE/NASA Workshop on Software Engineering, Annapolis, MD, December.
Jelinski, Z. and Moranda, P.B. 1972. Software reliability research: Statistical Computer Performance Evaluation, ed. W. Freiberger, pp. 465-484, New York, Academic Press.
Kapur, P.K., Sharma, K.D., and Garg, R.B. 1992. Transient solutions of software reliability model with imperfect debugging and error generation, Microelectronics and Reliability 32(1): 475-478.
Kenney, G.Q. 1993. Estimating defects in commercial software during operational use, IEEE Trans. on Reliability 42(1): 107-115.
Kremer, W. 1983. Birth and death bug counting, IEEE Trans. on Reliability R-32(1): 37-47.
Kulkarni, V.G. 1995. Modeling and Analysis of Stochastic Systems. New York, Chapman-Hall.
Levendel, Y. 1990. Reliability analysis of large software systems: Defect data modeling, IEEE Trans. on Software Engineering 16(2): 141-152.
Lyu, M.R. and Nikora, A.P. 1992. CASRE—a computer-aided software reliability estimation tool, CASE '92 Proceedings, Montreal, Canada, July, pp. 264-275.
Ohba, M. and Chou, X. 1989. Does imperfect debugging affect software reliability growth?, Proc. of Intl. Conference on Software Engineering, April, pp. 237-244.
Ramani, S., Gokhale, S., and Trivedi, K.S. 1998. SREPT: Software reliability estimation and prediction tool, 10th International Conference on Modelling Techniques and Tools for Computer Performance Evaluation—Performance Tools 98, Palma de Mallorca, Spain, September, pp. 27-36.
Sahner, R.A., Trivedi, K.S., and Puliafito, A. 1996. Performance and Reliability Analysis of Computer Systems: An Example-Based Approach Using the SHARPE Software Package. Boston, Kluwer Academic.
Scheidewind, N.F. 2003. Fault correction profiles, Proc. of Intl. Symposium on Software Reliability Engineering, Denver, CO, November, pp. 257-267.
Schneidewind, N.F. 2002. An integrated failure detection and fault correction model, Proc. of Intl. Conference on Software Maintenance, December, pp. 238-241.
Sumita, U. and Shantikumar, G. 1986. A software reliability model with multiple-error introduction and removal, IEEE Trans. on Reliability R-35(4): 459-462.
Trivedi, K.S. 2001. Probability and Statistics with Reliability, Queuing and Computer Science Applications. Wiley.
Wood, A. 1997. Software reliability growth models: Assumptions vs. reality, Proc. of 8th Intl. Symposium on Software Reliability Engineering, Albuquerque, NM, November, pp. 136-141.
Yamada, S., Ohba, M., and Osaki, S. 1983. S-shaped reliability growth modeling for software error detection, IEEE Trans. on Reliability R-32(5): 475-485.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Gokhale, S.S., Lyu, M.R. & Trivedi, K.S. Analysis of Software Fault Removal Policies Using a Non-Homogeneous Continuous Time Markov Chain. Software Quality Journal 12, 211–230 (2004). https://doi.org/10.1023/B:SQJO.0000034709.63615.8b
Issue Date:
DOI: https://doi.org/10.1023/B:SQJO.0000034709.63615.8b