Optimizing test to reduce maintenance

A software package evolves in time through various maintenance release steps whose effectiveness depends mainly on the number of faults left in the modules. Software testing is one of the most demanding and crucial phases to discover and reduce faults. In real environment, time available to test a software release is a given finite quantity. The purpose of this paper is to identify a criterion to estimate an efficient time repartition among software modules to enhance fault location in testing phase and to reduce corrective maintenance. The fundamental idea is to relate testing time to predicted risk level of the modules in the release under test. In our previous work we analyzed several kinds of risk prediction factors and their relationship with faults; moreover, we thoroughly investigated the behavior of faults on each module through releases to find significant fault proneness tendencies. Starting from these two lines of analysis, in this paper we propose a new approach to optimize the use of available testing time in a software release. We tuned and tested our hypotheses on a large industrial environment.

[1]  Tadashi Dohi,et al.  Optimal testing/maintenance design in a software development project , 2004 .

[2]  Tadashi Dohi,et al.  Optimal software release policies with debugging time lag , 1997 .

[3]  Alaa F. Sheta,et al.  Prediction of software reliability: a comparison between regression and neural network non-parametric models , 2001, Proceedings ACS/IEEE International Conference on Computer Systems and Applications.

[4]  Maurizio Pighin,et al.  Influence of structural complexity on fault persistence , 2004, IASTED Conf. on Software Engineering.

[5]  Vili Podgorelec,et al.  Program risk definition via linear programming techniques , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[6]  Taghi M. Khoshgoftaar,et al.  Prediction of software faults using fuzzy nonlinear regression modeling , 2000, Proceedings. Fifth IEEE International Symposium on High Assurance Systems Engineering (HASE 2000).

[7]  Audris Mockus,et al.  Predicting risk of software changes , 2000, Bell Labs Technical Journal.

[8]  W.M. Evanco Prediction Models for Software Fault Correction Effort , 2001, CSMR.

[9]  Elaine J. Weyuker,et al.  The distribution of faults in a large industrial software system , 2002, ISSTA '02.

[10]  Maurizio Pighin,et al.  Reducing corrective maintenance effort considering module's history , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[11]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[12]  Norman E. Fenton,et al.  Quantitative Analysis of Faults and Failures in a Complex Software System , 2000, IEEE Trans. Software Eng..

[13]  Elaine J. Weyuker,et al.  Where the bugs are , 2004, ISSTA '04.

[14]  Maurizio Pighin,et al.  An empirical analysis of fault persistence through software releases , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..