- Programmers spend a significant amount of their time debugging programs in order to reduce the number of delivered faults in software releases. Among the tasks required to reduce the number of delivered faults, locating the errors is the most difficult component of the debugging process. In modern software development, coding and testing are interleaved activities to ensure code quality. When new program functionality is implemented, or an existing program is modified, the updated software version needs to be regress tested to validate these changes. In this phase, any test case which produces unexpected result may indicate potential defects in the updated software. When attempting to fix an exhibited bug, programmers usually: (1) identify statements involved in failed tests, (2) narrow the search by selecting suspicious changes which might contain faults, (3) hypothesize about the suspicious faults, and (4) restore the program variables to a specific state. However, the search of suspicious changes is an arduous, highly involved and manual process. This phase can be quite time-consuming.
- Aspect-oriented programming (AOP) has been proposed as a technique for improving separation of concerns in software design and implementation. it is gaining popularity with the wider adoption of languages such as AspectJ. AspectJ is a seamless extension of java. An AspectJ program can be divided into two parts: base code which includes classes, interfaces, and other language constructs as in java, and aspect code which includes aspects for modelling crosscutting concerns in the program. However, when locating failure-inducing changes in aspect-oriented software evolution, it involves more complex situations than in the traditional programming languages.
- AutoFlow is a project that aims at developing techniques and tools to support automatic debugging of aspect-oriented programs.
- Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao. AutoFlow: An Automatic Debugging Tool for AspectJ Programs. In Proc. 24th IEEE International Conference on Software Maintenance (ICSM 2008), Tool Demonstration Track, Beijing, China, Sep 28-Oct 4, 2008.
- Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao. AutoFlow: An Automatic Debugging Framework for AspectJ Programs. To appear as a student poster in International Symposium on Software Testing and Analysis (ISSTA 2008), Seattle, WA, July 20-24 2008. (Acceptance rate: 35% 26 full + 9 poster out of 100)
- Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao. Flota: A Programmer Assistant for Locating Faulty Changes in AspectJ Software Evolution. In Proc. 4th International Linking Aspect Technology and Evolution workshop (LATE 2008), April 1, Brussels, Belgium.
- Related Links