ABSTRACT
Recent software systems usually feature an automated failure reporting system, with which a huge number of failing traces are collected every day. In order to prioritize fault diagnosis, failing traces due to the same fault are expected to be grouped together. Previous methods, by hypothesizing that similar failing traces imply the same fault, cluster failing traces based on the literal trace similarity, which we call trace proximity. However, since a fault can be triggered in many ways, failing traces due to the same fault can be quite different. Therefore, previous methods actually group together traces exhibiting similar behaviors, like similar branch coverage, rather than traces due to the same fault. In this paper, we propose a new type of failure proximity, called R-Proximity, which regards two failing traces as similar if they suggest roughly the same fault location. The fault location each failing case suggests is automatically obtained with Sober, an existing statistical debugging tool. We show that with R-Proximity, failing traces due to the same fault can be grouped together. In addition, we find that R-Proximity is helpful for statistical debugging: It can help developers interpret and utilize the statistical debugging result. We illustrate the usage of R-Proximity with a case study on the grep program and some experiments on the Siemens suite, and the result clearly demonstrates the advantage of R-Proximity over trace proximity.
- I. Borg and P. Groenen. Modern Multidimensional Scaling: Theory and Applications. Springer, first edition, 1996.Google Scholar
- J. F. Bowring, J. M. Rehg, and M. J. Harrold. Active learning for automatic classification of software behavior. In ISSTA'04. Google ScholarDigital Library
- H. Cleve and A. Zeller. Locating causes of program failures. In ICSE'05. Google ScholarDigital Library
- W. Dickinson, D. Leon, and A. Podgurski. Finding failures by cluster analysis of execution profiles. In ICSE'01. Google ScholarDigital Library
- W. Dickinson, D. Leon, and A. Podgurski. Pursuing failure: the distribution of program failures in a profile space. In ESEC/FSE'01. 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
- N. Gupta, H. He, X. Zhang, and R. Gupta. Locating faulty code using failure-inducing chops. In ASE'05. Google ScholarDigital Library
- M. Haran, A. Karr, A. Orso, A. Porter, and A. Sanil. Applying classification techniques to remotely collected program execution data. In ESEC/FSE'05. Google ScholarDigital Library
- J. A. Jones and M. J. Harrold. Empirical evaluation of the tarantula automatic fault-localization technique. In ASE'05. Google ScholarDigital Library
- M. Kendall and J. D. Gibbons. Rank Correlation Methods. Edward Arnold, 1990.Google Scholar
- B. Liblit, A. Aiken, A. Zheng, and M. Jordan. Bug isolation via remote program sampling. In PLDI'03. Google ScholarDigital Library
- B. Liblit, M. Naik, A. Zheng, A. Aiken, and M. Jordan. Scalable statistical bug isolation. In PLDI'05. Google ScholarDigital Library
- C. Liu, X. Yan, L. Fei, J. Han, and S. P. Midkiff. SOBER: statistical model-based bug localization. In ESEC/FSE'05. Google ScholarDigital Library
- J. I. Marden. Analyzing and Modeling Rank Data. Chapman & Hall/CRC, first edition, 1996.Google Scholar
- G. Misherghi and Z. Su. HDD: Hierarchical delta debugging. In ICSE'06. Google ScholarDigital Library
- A. Podgurski, D. Leon, P. Francis, W. Masri, M. Minch, J. Sun, and B. Wang. Automated support for classifying software failure reports. In ICSE'03. Google ScholarDigital Library
- M. Renieris and S. Reiss. Fault localization with nearest neighbor queries. In ASE'03.Google Scholar
- A. Zeller. Isolating cause-effect chains from computer programs. In FSE'02. Google ScholarDigital Library
- X. Zhang, R. Gupta, and N. Gupta. Locating faults through automated predicate switching. In ICSE'06. Google ScholarDigital Library
Index Terms
- Failure proximity: a fault localization-based approach
Recommendations
A Systematic Study of Failure Proximity
Software end-users are the best testers, who keep revealing bugs in software that has undergone rigorous in-house testing. In order to leverage their testing efforts, failure reporting components have been widely deployed in released software. Many ...
Evolving Ranking-Based Failure Proximities for Better Clustering in Fault Isolation
ASE '22: Proceedings of the 37th IEEE/ACM International Conference on Automated Software EngineeringFailures that are not related to a specific fault can reduce the effectiveness of fault localization in multi-fault scenarios. To tackle this challenge, researchers and practitioners typically cluster failures (e.g., failed test cases) into several ...
CrashLocator: locating crashing faults based on crash stacks
ISSTA 2014: Proceedings of the 2014 International Symposium on Software Testing and AnalysisSoftware crash is common. When a crash occurs, software developers can receive a report upon user permission. A crash report typically includes a call stack at the time of crash. An important step of debugging a crash is to identify faulty functions, ...
Comments