Skip to main content
Log in

A debugging and testing tool for supporting software evolution

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

This paper describes a tool for debugging programs which develop faults after they have been modified or are ported to other computer systems. The tool enhances the traditional debugging approach by automating the comparison of data structures between two running programs. Using this technique, it is possible to use early versions of a program which are known to operate correctly to generate values for comparison with the new program under development. The tool allows the reference code and the program being developed to execute on different computer systems by using open distributed systems techniques. A data visualisation facility allows the user to view the differences in data structures. By using the data flow of the code, it is possible to locate faulty sections of code rapidly. An evaluation is performed by using three case studies to illustrate the power of the technique.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  • Abramson, D., Foster, I., Michalakes, J., and Sosic, R. 1995. Relative debugging and its application to the development of large numerical models. IEEE Supercomputing, San Diego.

  • Abramson, D.A., Dix, M., and Whiting, P. 1991. A study of the shallow water equations on various parallel architectures. 14th Australian Computer Science Conference, 6:1–12, Sydney.

    Google Scholar 

  • Abramson, D.A. and Sosic, R. 1995. A debugging tool for software evolution. CASE-95, 7th International Workshop on Computer-Aided Software Engineering, Toronto, Ontario, Canada, pp 206–214. Also appeared in Proceedings of 2nd Working Conference on Reverse Engineering, Toronto, Ontario, Canada.

  • Abramson, D.A., Sosic, R., and Watson, G. Implementation techniques for a parallel relative debugger, to appear, Internatinal Conference on Parallel Architectures and Compilation Techniques—PACT'96, October 20–23, 1996, Boston, Massachusetts, USA.

  • Adams, E. and Muchnick, S. 1986. Dbxtool: A window-based symbolic debugger for Sun workstations. Software-Practice & Experience, 16(7):653–669.

    Google Scholar 

  • Anthes, R. 1986. 1986 summary of workshop on the NCAR community climate/Forecast models. Bull. Amer. Meteor. Soc., 67:194–198.

    Google Scholar 

  • Cheng, D. and Hood, R. 1994. A portable debugger for parallel and distributed programs. Proceedings of Supercomputing 94, Washington, DC, pp. 723–732.

  • Foster, I. and Michalakes, J. 1993. MPMM: A massively parallel mesoscale model. In Parallel Supercomputing in Atmospheric Science, Geered-R Hoffmann and Tuomo Kauranne (Eds.), pp. 354–363. World Scientific, River Edge, NJ 07661.

    Google Scholar 

  • Galbreath, N., Gropp, W., and Levine, D. 1993. Applications-driven parallel I/O. Proceedings Supercomputing-93, Portland, Oregon, pp. 462–471, IEEE.

    Google Scholar 

  • Grell, G., Dudhia, J., and Stauffer, D. 1994. A description of the fifth-generation penn state/NCAR mesoscale model (MM5). Technical Report NCAR/TN-398+STR, National Center for Atmospheric Research, Boulder, Colorado.

    Google Scholar 

  • Linton, M. 1990. The evolution of Dbx. Proceedings of the Summer 1990, USENIX Conference, pp. 211–220.

  • McRae, G.J., Russell, A.G., and Harley, R.A. 1992. CIT photochemical airshed model—Users manual. Carnegie Mellon University, Pittsburgh, PA and California Institute of Technology, Pasadena, CA.

    Google Scholar 

  • Michalakes, J., Canfield, T., Nanjundiah, R., Hammond, S., and Grell, G. Parallel implementation, validation, and performance of MM5. In Parallel Supercomputing in Atmospheric Science, World Scientific, River Edge, NJ 07661.

  • Moher, T. 1988. PROVIDE: A process visualization and debugging environment. IEEE Transactions on Software Engineering, 14(6):849–857.

    Google Scholar 

  • Olsson, R., Crawford, R., and Ho, W. 1991. A dataflow approach to event-based debugging. Software-Practice and Experience, 21(2):209–229.

    Google Scholar 

  • Ramsey, N. and Hanson, D. 1992. A retargetable debugger. Proceedings of SIGPLAN'92 Conference on Programming Language Design and Implementation, pp. 22–31, ACM.

  • Satterthwaite, E. 1972. Debugging tools for high level languages. Software-Practice and Experience, 2(3): 197–217.

    Google Scholar 

  • Sosic, R. and Abramson, D.A. GUARD: A Relative Debugger, to appear, Software-Practice Experience.

  • Sosic, R. 1995. Design and Implementation of Dynascope, a Directing Platform for Compiled Programs. Computing Systems, Spring, 8(2):107–134.

    Google Scholar 

  • Sosic, R.A. 1995. Procedural Interface for Program Directing, Software-Practice and Experience, 25(7):767–787.

    Google Scholar 

  • Stallman, R. M. and Pesch, R. H. 1994. Debugging with GDB. Free Software Foundation, Boston.

    Google Scholar 

  • Stevens, W.R. 1990. Unix Networking Programming. Englewood Cliffs, NJ: Prentice-Hall.

    Google Scholar 

  • Sun Microsystems, 1990. Debugging Tools Manual. Sun Release 4.1.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Abramson, D., Sosic, R. A debugging and testing tool for supporting software evolution. Autom Software Eng 3, 369–390 (1996). https://doi.org/10.1007/BF00132573

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00132573

Keywords

Navigation