ACM Home Page
Please provide us with feedback. Feedback
Effective identification of failure-inducing changes: a hybrid approach
Full text PdfPdf (530 KB)
Source Workshop on Program Analysis for Software Tools and Engineering archive
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering table of contents
Atlanta, Georgia
SESSION: Change analysis table of contents
Pages 77-83  
Year of Publication: 2008
ISBN:978-1-60558-382-2
Authors
Sai Zhang  Shanghai Jiao Tong University, Shanghai, China
Yu Lin  Shanghai Jiao Tong University, Shanghai, China
Zhongxian Gu  Shanghai Jiao Tong University, Shanghai, China
Jianjun Zhao  Shanghai Jiao Tong University, Shanghai, China
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): n/a,   Downloads (12 Months): n/a,   Citation Count: 0
Additional Information:

abstract   references   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1512475.1512492
What is a DOI?

ABSTRACT

When regression tests fail unexpectedly after a long session of editing, it may be tedious for programmers to find out the failure-inducing changes by manually inspecting all code edits. To eliminate the expensive effort spent on debugging, we present a hybrid approach, which combines both static and dynamic analysis techniques, to automatically identify the faulty changes. Our approach first uses static change impact analysis to isolate a subset of responsible changes for a failed test, then utilizes the dynamic test execution 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 AspectJ programs in our AutoFlow prototype. In our evaluation with two third-party applications, we demonstrate that this hybrid approach 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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
AspectJ compiler 1.5, May 2005. http://www.eclipse.org/aspectj//.
 
2
AspectJ Development Tools (AJDT). http://www.eclipse.org/ajdt//.
 
3
GDB: The GNU Project Debugger. http://gnu.org/software/gdb.
 
4
The Eclipse Development Platform. http://www.eclipse.org/.
 
5
The XML-Security Project. http://santuario.apache.org/.
 
6
7
 
8
9
 
10
M. D. Ernst. Static and dynamic analysis: Synergy and duality. In ICSE Workshop on Dynamic Analysis, pages 24--27, May 2003.
 
11
12
13
14
 
15
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proc. 11th European Conference on Object-Oriented Programming, pages 220--242. 1997.
16
17
 
18
19
20
 
21
M. Renieris and S. Reiss. Fault localization with nearest neighbor queries. In In Automated Software Engineering, 2003., 2003.
22
23
24
 
25
 
26
M. Young. Symbiosis of static analysis and program testing. In Proc. 6th International Conference on Fundamental Approaches to Software Engineering., pages 1--5, April 2003.
27
 
28
 
29
S. Zhang, Z. Gu, Y. Lin, and J. Zhao. Autoflow: An automatic debugging tool for AspectJ software. In Proc. 24th International Conference on Software Maintenance (ICSM 2008 demo), Oct 2008.
 
30
S. Zhang, Z. Gu, Y. Lin, and J. Zhao. Autoflow: An automatic framework for AspectJ programs. In Technical Report, SJTU-CSE-08-03, Jan 2008.
31
 
32
S. Zhang, Z. Gu, Y. Lin, and J. Zhao. Change impact analysis for AspectJ programs. In Proc. 24th International Conference on Software Maintenance (ICSM 2008), Oct 2008.
33
 
34
35
Collaborative Colleagues:
Sai Zhang: colleagues
Yu Lin: colleagues
Zhongxian Gu: colleagues
Jianjun Zhao: colleagues