Conference Proceeding Article
Effective bug localization is important for realizing automated debugging. One attractive approach is to apply statistical techniques on a collection of evaluation profiles of program properties to help localize bugs. Previous research has proposed various specialized techniques to isolate certain program predicates as bug predictors. However, because many bugs may not be directly associated with these predicates, these techniques are often ineffective in localizing bugs. Relevant control flow paths that may contain bug locations are more informative than stand-alone predicates for discovering and understanding bugs. In this paper, we propose an approach to automatically generate such faulty control flow paths that link many bug predictors together for revealing bugs. Our approach combines feature selection (to accurately select failure-related predicates as bug predictors), clustering (to group correlated predicates), and control flow graph traversal in a novel way to help generate the paths. We have evaluated our approach on code including the Siemens test suite and rhythmbox (a large music management application for GNOME). Our experiments show that the faulty control flow paths are accurate, useful for localizing many bugs, and helped to discover previously unknown errors in rhythmbox
bug localization, machine learning, statistical debugging, control flow analysis
Software and Cyber-Physical Systems
ASE'07: Proceedings of the 22nd ACM/IEEE International Conference on Automated Software Engineering: Atlanta, Georgia, November 5-9, 2007
City or Country
JIANG, Lingxiao and SU, Zhendong.
Context-aware statistical debugging: From bug predictors to faulty control flow paths. (2007). ASE'07: Proceedings of the 22nd ACM/IEEE International Conference on Automated Software Engineering: Atlanta, Georgia, November 5-9, 2007. 184-193. Research Collection School Of Information Systems.
Available at: http://ink.library.smu.edu.sg/sis_research/945
Copyright Owner and License
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.