Debugging into Examples Leveraging Tests for Program Comprehension

Enhancing and maintaining a complex software system re- quires detailed understanding of the underlying source code. Gaining this understanding by reading source code is difficult. Since software systems are inherently dynamic, it is complex and time consuming to imagine, for example, the effects of a method's source code at run-time. The inspec- tion of software systems during execution, as encouraged by debugging tools, contributes to source code comprehension. Leveraged by test cases as entry points, we want to make it easy for developers to experience selected execution paths in their code by debugging into examples. We show how links between test cases and application code can be estab- lished by means of dynamic analysis while executing regular tests.

[1]  Norman Wilde,et al.  Maintenance support for object oriented programs , 1991, Proceedings. Conference on Software Maintenance 1991.

[2]  M. Roper,et al.  Object-oriented inspection in the face of delocalisation , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[3]  Robert Hirschfeld,et al.  AspectS - Aspect-Oriented Programming with Squeak , 2002, NetObjectDays.

[4]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[5]  Mark N. Wegman,et al.  Execution Patterns in Object-Oriented Visualization , 1998, COOTS.

[6]  Oscar Nierstrasz,et al.  Exploiting Runtime Information in the IDE , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[7]  Thomas Gschwind,et al.  Improving dynamic data analysis with aspect-oriented programming , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[8]  Orla Greevy,et al.  Enriching Reverse Engineering with Feature Analysis , 2007 .

[9]  Oscar Nierstrasz,et al.  Feature driven browsing , 2007, ICDL '07.

[10]  Brad A. Myers,et al.  Debugging reinvented , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[11]  Erik Arisholm Dynamic coupling measures for object-oriented software , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[12]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .

[13]  Thomas Ball,et al.  The concept of dynamic analysis , 1999, ESEC/FSE-7.

[14]  Stéphane Ducasse,et al.  Recovering high-level views of object-oriented applications from static and dynamic information , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[15]  Michele Lanza,et al.  Higher Abstractions for Dynamic Analysis , 2006 .

[16]  Markus Gaelli,et al.  Modeling Examples to Test and Understand Software , 2006 .

[17]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.