Publication Type

Conference Proceeding Article

Version

publishedVersion

Publication Date

11-2007

Abstract

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

Keywords

bug localization, machine learning, statistical debugging, control flow analysis

Discipline

Software Engineering

Research Areas

Software and Cyber-Physical Systems

Publication

ASE'07: Proceedings of the 22nd ACM/IEEE International Conference on Automated Software Engineering: Atlanta, Georgia, November 5-9, 2007

First Page

184

Last Page

193

ISBN

9781595938824

Identifier

10.1145/1321631.1321660

Publisher

ACM

City or Country

New York

Copyright Owner and License

Authors

Additional URL

http://doi.org/10.1145/1321631.1321660

Share

COinS