Identifying Faulty Modifications in Software Maintenance

Software maintenance involves making changes to a program to correct errors, to improve efficiency, or to extend the program functionality. The existing algorithmic debuggers generally only take into account the modified software, i.e., they do not take into account the original software and modifications being made. However, in software maintenance the original software has been tested and analyzed previously. In software maintenance the goal of debugging is to identify those modifications that cause incorrect program behavior, rather than to identify faulty statements. In this paper we present an approach that uses the information about the original software and determines those modifications that more likely contain fault. In this approach, the modifications that are made to the program are first identified. Then, forward dynamic dependence analysis is used to determine the most suspicious modifications.

[1]  Bogdan Korel,et al.  PELAS - Program Error-Locating Assistant System , 1988, IEEE Trans. Software Eng..

[2]  Peter Fritzson,et al.  Generalized Algorithmic Debugging and Testing , 1991, PLDI.

[3]  Janusz W. Laski,et al.  Dynamic slicing of computer programs , 1990, J. Syst. Softw..

[4]  F. J. Lukey Understanding and debugging programs , 1980 .

[5]  John A. Gould,et al.  Some Psychological Evidence on How People Debug Computer Programs , 1975, Int. J. Man Mach. Stud..

[6]  Eugene H. Spafford,et al.  An execution-backtracking approach to debugging , 1991, IEEE Software.

[7]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[8]  Jong-Deok Choi,et al.  Techniques for debugging parallel programs with flowback analysis , 1991, TOPL.

[9]  Norman F. Schneidewind,et al.  The State of Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[10]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[11]  Peter Fritzson,et al.  Semi-automatic bug localization in software maintenance , 1990, Proceedings. Conference on Software Maintenance 1990.

[12]  Janusz W. Laski,et al.  Dynamic Program Slicing , 1988, Inf. Process. Lett..

[13]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[14]  Bogdan Korel,et al.  Algorithmic software fault localization , 1991, Proceedings of the Twenty-Fourth Annual Hawaii International Conference on System Sciences.