Conference Paper

AutoFlow: An automatic debugging tool for AspectJ software

Sch. of Software, Shanghai Jiao Tong Univ., Shanghai
DOI: 10.1109/ICSM.2008.4658109 Conference: Software Maintenance, 2008. ICSM 2008. IEEE International Conference on
Source: IEEE Xplore

ABSTRACT Aspect-oriented programming (AOP) is gaining popularity with the wider adoption of languages such as AspectJ. During AspectJ software evolution, when regression tests fail, it may be tedious for programmers to find out the failure-inducing changes by manually inspecting all code editing. To eliminate the expensive effort spent on debugging, we developed AutoFlow, an automatic debugging tool for AspectJ software. AutoFlow integrates the potential of delta debugging algorithm with the benefit of change impact analysis to narrow down the search for faulty changes. It first uses change impact analysis to identify a subset of responsible changes for a failed test, then ranks these changes according to our proposed heuristic (indicating the likelihood that they may have contributed to the failure), and finally employs an improved delta debugging algorithm to determine a minimal set of faulty changes. The main feature of AutoFlow is that it can automatically reduce a large portion of irrelevant changes in an early phase, and then locate faulty changes effectively.

0 Bookmarks
 · 
170 Views
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: When regression tests fail unexpectedly after a long session of edit- ing, it may be tedious for programmers to find out the failure- inducing changes by manually inspecting all code edits. To elimi- nate the expensive effort spent on debugging, we present a hybrid approach, which combines both static and dynamic analysis tech- niques, to automatically identify the faulty changes. Our approach first uses static change impact analysis to isolate a subset of respon- sible changes for a failed test, then utilizes the dynamic test execu- tion information to rank these changes according to our proposed heuristic (indicating the likelihood that they may have contributed to the failure), and finally employs an improved Three-Phase delta debugging algorithm, working from the coarse method level to the fine statement level, to find a minimal set of faulty statements. We implemented the proposed approach for both Java and As- pectJ programs in our AutoFlow prototype. In our evaluation with two third-party applications, we demonstrate that this hybrid ap- proach can be very effective: at least for the subjective programs we investigated, it takes significantly (almost 4X ) fewer tests than the original delta debugging algorithm to locate the faulty code.
    Proceedings of the 8th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE'08, Atlanta, Georgia, November 9-10, 2008; 01/2008
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Change impact analysis is a useful technique for soft- ware evolution. It determines the effects of a source edit- ing session and provides valuable feedbacks to the pro- grammers for making correct decisions. Recently, many techniques have been proposed to support change impact analysis of procedural or object-oriented software, but sel- dom effort has been made for aspect-oriented software. In this paper we propose a new change impact analysis tech- nique for AspectJ programs. At the core of our approach is the atomic change representation which captures the se- mantic differences between two versions of an AspectJ pro- gram. We also present an impact analysis model, based on AspectJ call graph construction, to determine the af- fected program fragments, affected tests and their respon- sible changes. The proposed techniques have been imple- mented in Celadon, a change impact analysis framework for AspectJ programs. We performed an empirical evalua- tion on 24 versions of eight AspectJ benchmarks. The result shows that our proposed technique can effectively perform change impact analysis and provide valuable information in AspectJ software evolution.
    24th IEEE International Conference on Software Maintenance (ICSM 2008), September 28 - October 4, 2008, Beijing, China; 01/2008

Full-text

View
5 Downloads
Available from