MODELLING THE SOFTWARE TESTING PROCESS Kazimierz Worwa Faculty of Cybernetics, Military University of Technology, 00-908 Warszawa, Kaliskiego 2, Poland kworwa@wat.edu.pl Abstract. An approach to formal modelling the program testing process is proposed in the paper. Considerations are based on some program reliability-growth model that is constructed for assumed scheme of the program testing process. In this model the program under the testing is characterized by means of so-called characteristic matrix and the program testing process is determined by means of so-called testing strategy. The formula for determining the mean value of the predicted number of errors encountered during the program testing is obtained. This formula can be used if the characteristic matrix and the testing strategy are known. Formulae for evaluating this value when the program characteristic matrix is not known are also proposed in the paper. Keywords: software testing, software reliability, software reliability models. 1. Introduction The testing of a newly developed program, prior to its practical use, is a commonly followed practice. The program testing process involves the execution of the program with many sets of input data with the inten- tion of finding errors. Testing is done to lower the chances of in-service failures which are defined as an unacceptable departure from a program operation. A long period of testing results in increasing the chances of de- tecting program errors and decreasing the chances of in-service failures, but it also results in increasing the cost of the program testing process. It is known that testing is the most significant money consuming stage of the program development. A cost of the program testing process can make even more than 50% of the total cost of the program development, especially for complex program systems [12, 17]. Considering the essential impact of the testing cost on the whole program development cost, the testing process ought to be prudently planned and organized. Decisions relative to the testing process organization should be made on the basis of results of testing efficiency analysis. In order to make such analysis easier it may be convenient to evaluate the number of program errors that could be encountered during the program testing process. The knowledge of this evaluation results makes it possible to evaluate the duration and the cost of the program testing process, e.g. by means of formal, mathematical expres- sions. Such estimations can be very useful in practice, e.g. for comparing