ACM Home Page
Please provide us with feedback. Feedback
Locating faulty code using failure-inducing chops
Full text PdfPdf (238 KB)
Source Automated Software Engineering archive
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering table of contents
Long Beach, CA, USA
SESSION: Testing II table of contents
Pages: 263 - 272  
Year of Publication: 2005
ISBN:1-59593-993-4
Authors
Neelam Gupta  University of Arizona, Tucson, AZ
Haifeng He  University of Arizona, Tucson, AZ
Xiangyu Zhang  University of Arizona, Tucson, AZ
Rajiv Gupta  University of Arizona, Tucson, AZ
Sponsors
ACM: Association for Computing Machinery
SIGART: ACM Special Interest Group on Artificial Intelligence
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 57,   Citation Count: 15
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1101908.1101948
What is a DOI?

ABSTRACT

Software debugging is the process of locating and correcting faulty code. Prior techniques to locate faulty code either use program analysis techniques such as backward dynamic program slicing or exclusively use delta debugging to analyze the state changes during program execution. In this paper, we present a new approach that integrates the potential of delta debugging algorithm with the benefit of forward and backward dynamic program slicing to narrow down the search for faulty code. Our approach is to use delta debugging algorithm to identify a minimal failure-inducing input, use this input to compute a forward dynamic slice and then intersect the statements in this forward dynamic slice with the statements in the backward dynamic slice of the erroneous output to compute a failure-inducing chop. We implemented our technique and conducted experiments with faulty versions of several programs from the Siemens suite to evaluate our technique. Our experiments show that failure-inducing chops can greatly reduce the size of search space compared to the dynamic slices without significantly compromising the capability to locate the faulty code. We also applied our technique to several programs with known memory related bugs such as buffer overflow bugs. The failure-inducing chop in several of these cases contained only 2 to 4 statements which included the code causing memory corruption.


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
 
2
 
3
 
4
H. Agrawal, J. Horgan, S. London, and W. Wong, "Fault localization using execution slices and dataflow tests," Sixth IEEE International Symposium on Software Reliability Engineering (ISSRE), pages 143--151, 1995.
 
5
AskIgor, Automated Debugging Service. http://www.st.cs.uni-sb.de/askigor/
 
6
7
 
8
Diablo Is A Better Link-time Optimizer. http://www.elis.ugent.be/diablo/
9
10
 
11
M. J. Harrold,, G. Rothermel, K. Sayre, R. Wu, and L. Yi, "An empirical investigation of the relationship between spectra differences and regression faults,"Journal of Software Testing Verification and Reliability, 10(3):171--194, 2000.
 
12
H. He and N. Gupta, "Automated Debugging using Path-Based Weakest Preconditions," Fundamental Approaches to Software Engineering (FASE), ETAPS Joint Conference, Barcelona, Spain, March 29--31, 2004.
 
13
 
14
 
15
Information Week, Issue on Software Quality, Jan 21, 2002.
16
 
17
 
18
B. Korel and J. Rilling, "Application of dynamic slicing in program debugging," 3rd International Workshop on Automatic Debugging (AADEBUG), Linkoping, 1997.
19
20
 
21
M. Renieris and S. Reiss, "Fault localization with nearest neighbor queries,"Automated Software Engineering (ASE), 2003.
 
22
The Unravel Project. http://hissa.nist.gov/unravel/
 
23
Valgrind. http://valgrind.org/
 
24
M. Weiser, "Program slicing," IEEE Transactions on Software Engineering (TSE), Vol. SE-10, No. 4, pages 352--357, 1982.
25
26
27
 
28
 
29
 
30
31
32
 
33

CITED BY  15
 
 

Collaborative Colleagues:
Neelam Gupta: colleagues
Haifeng He: colleagues
Xiangyu Zhang: colleagues
Rajiv Gupta: colleagues