Pergamon Mk~ror/rct,v~~~. Reficrh.. Vol. 36. No. 5. pp. 645-650. 1996 Copyright c 1996 Elsevrer Science Ltd Printed in Great Britain. All rights reserved 002662714/96 $15.00+.00 0026-2714(95)00157-3 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK MODELLING A N IMPERFECT DEBUGGING PHENOMENON IN SOFTWARE RELIA BILITY P. K. KAPUR Department of Operational Research, University of Delhi, Delhi, India SAID YOUNES Department of Information Engineering, Faculty of Electrical and Electronics Engineering, University of Aleppo, Syria Abstract-Several Software Reliability Growth Models (SRGMs) have been developed in the literature assuming the debugging process to be perfect and thus implying that there is one-to-one correspondence between the number of failures observed and errors removed. However, in reality it is possible that the error which is supposed to have been removed may cause a failure again. It may be due to the spawning of a new error because of imperfect debugging. If such a phenomenon exists then the Software Reliability Growth IS S-shaped. In this paper, we develop a model which can describe imperfect debugging process and has the inbuilt flexibility of capturing a wide class of growth curves. Earlier attempts of modelling such a process were able to capture only a particular curve. In other words, if a failure observation phenomenon is exponential then the error removal IS again modelled by an exponential growth curve. Applicability ofthe model has been shown on several data sets obtained from different softwaredevelopment projects.. 1. INTRODUCTION The rapid advancements in the technology of com- puter hardware production have made computer systems easily available for a wide range of applica- tions in our daily life. The cost of computer hardware has been declining while on the contrary, the cost of computer software is increasing. The production of computer software systems is seen to be the most prominent industry for this decade and the foreseeable future. Due to the vitality of computer software systems and the manifold increase in their develop- ment cost, it is of utmost importance to develop high quality software systems. The quality of the software system is described by many metrics such as: com- plexity, portability, maintainability, availability, re- liability, etc. The software reliability which is a user oriented metric is considered to be the only metric which can physically quantify the quality of the software system. The software reliability is defined as the probability that the system will work without failure for a specified span of time under a given usage environment. The software failure is the departure of the software output from the system specification. The software failures are the manifestation of the software errors which are introduced by the system analysers, designers, programmers and managers during the different phases of software development cycle. In order to detect and remove these errors, the software system is tested. The quality of the software system in terms of its reliability is measured by the removal of these errors. The Software Reliability Growth Model (SRGM) is defined as the mathematical relationship between the number of software errors removed and the testing time. The SRGM can be used to monitor the error removal process and to measure and predict the reliability of the software system and some other operational metrics such as the testing cost and the software release time. The first attempt to model the software error removal process is attributed to Jelinski and Moranda [l]. Their model has a simple structure and assumptions. Musa [2] proposed the Basic Execution Time Model which has assumptions similar to those of the JJM Model. This model made a major contribution to the under- standing of the error removal phenomenon and its relation to the calendar and execution time. Goel and Okumoto [3] (G-0) proposed the first Non Homo- geneous Poisson Process (NHPP) SRGM. They assumed that the failure observation (error removal) phenomenon follows NHPP. But for the assumption of NHPP, G-O model is similar to the Basic Execution Time model of Musa. In all the three models, the cumulative number of errors removed grows exponentially with the testing time. The exponential growth curve is due to the assumption that the error removal intensity is linearly related to the remaining number of software errors. In many software development projects it was observed that the relation between the cumulative number of errors removed and the testing time is S-shaped. The causes of S-shapedness are many and have been disscussed 645