ABSTRACT
We present an automatic fault localization technique which leverages time spectra as abstractions for program executions. Time spectra have been traditionally used for performance debugging. By contrast, we use them for functional correctness debugging by identifying pieces of program code that take a "suspicious" amount of time to execute. The approach can be summarized as follows: Time spectra are collected from passing and failing runs, observed behavior models are created using the time spectra collected from passing runs, and deviations from these models in failing runs are identified and scored as potential causes of failures. Our empirical evaluations conducted on three real-life projects suggest that the proposed approach can effectively reduce the space of potential root causes for failures, which can in turn improve the turn around time for fixes.
- ej-technologies. http://www.ej-technologies.com.Google Scholar
- The Rstat Project. http://cran.r-project.org.Google Scholar
- H. Agrawal, J. Horgan, S. London, and W. Wong. Fault localization using execution slices and dataflow tests. In ISSRE '95, pages 143--151, 1995.Google ScholarCross Ref
- V. Dallmeier, C. Lindig, and A. Zeller. Lightweight defect localization for java. In ECOOP'05, pages 528--550, 2005. Google ScholarDigital Library
- H. Do, S. G. Elbaum, and G. Rothermel. Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Software Engineering: An International Journal, 10(4):405--435, 2005. Google ScholarDigital Library
- D. R. Engler, B. Chelf, A. Chou, and S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In OSDI'00, pages 1--16, 2000. Google ScholarDigital Library
- S. Hangal and M. S. Lam. Tracking down software bugs using automatic anomaly detection. In ICSE '02, pages 291--301, 2002. Google ScholarDigital Library
- M. J. Harrold, G. Rothermel, K. Sayre, R. Wu, and L. Yi. An empirical investigation of the relationship between fault-revealing test behavior and differences in program spectra. STVR Journal of Software Testing, Verification, and Reliability, (3):171--194, 2000.Google Scholar
- D. Hovemeyer and W. Pugh. Finding bugs is easy. SIGPLAN Not., 39(12):92--106, 2004. Google ScholarDigital Library
- J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In ICSE '02, pages 467--477, 2002. Google ScholarDigital Library
- B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. In PLDI '03, pages 141--154, 2003. Google ScholarDigital Library
- C. Mateis, M. Stumptner, D. Wieland, and F. Wotawa. Model-based debugging of java programs. In AADEBUG '00, 2000.Google Scholar
- H. Pan and E. Spafford. Heuristics for automatic localization of software faults. Technical Report SERC-TR-116-P, Purdue University, 1992.Google Scholar
- M. Renieris and S. Reiss. Fault localization with nearest neighbor queries. In ASE '03, pages 30--39, 2003.Google ScholarCross Ref
- T. Reps, T. Ball, M. Das, and J. Larus. The use of program profiling for software maintenance with applications to the year 2000 problem. Softw. Eng. Notes, 22(6):432--449, 1997. Google ScholarDigital Library
- P. N. Tan, M. Steinbach, and V. Kumar. Introduction to data mining. Addison Wesley, 2006. Google ScholarDigital Library
- C. Yilmaz, M. B. Cohen, and A. Porter. Covering arrays for efficient fault characterization in complex configuration spaces. SIGSOFT Softw. Eng. Notes, 29(4):45--54, 2004. Google ScholarDigital Library
- C. Yilmaz and C. Williams. An automated model-based debugging approach. In ASE '07, pages 174--183, 2007. Google ScholarDigital Library
- A. Zeller. Isolating cause-effect chains from computer programs. In SIGSOFT '02/FSE-10, pages 1--10, 2002. Google ScholarDigital Library
Index Terms
- Time will tell: fault localization using time spectra
Recommendations
Empirical evaluation of the tarantula automatic fault-localization technique
ASE '05: Proceedings of the 20th IEEE/ACM International Conference on Automated Software EngineeringThe high cost of locating faults in programs has motivated the development of techniques that assist in fault localization by automating part of the process of searching for faults. Empirical studies that compare these techniques have reported the ...
Improving the effectiveness of spectra-based fault localization using specifications
ASE '12: Proceedings of the 27th IEEE/ACM International Conference on Automated Software EngineeringFault localization i.e., locating faulty lines of code, is a key step in removing bugs and often requires substantial manual effort. Recent years have seen many automated localization techniques, specifically using the program’s passing and failing ...
Software fault localization using feature selection
MALETS '11: Proceedings of the International Workshop on Machine Learning Technologies in Software EngineeringManually locating and fixing faults can be tedious and hard. Recent years have seen much progress in automated techniques for fault localization. A particularly promising approach is to analyze passing and failing runs to compute how likely each ...
Comments