A Formal Evaluation of Data Flow Path Selection Criteria
IEEE Transactions on Software Engineering
Improving the accuracy of dynamic branch prediction using branch correlation
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria
ICSE '94 Proceedings of the 16th international conference on Software engineering
The use of program profiling for software maintenance with applications to the year 2000 problem
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
Automatic test data generation using constraint solving techniques
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
An efficient relevant slicing method for debugging
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Static correlated branch prediction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
An empirical study of regression test selection techniques
ACM Transactions on Software Engineering and Methodology (TOSEM)
Finding failures by cluster analysis of execution profiles
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Simplifying and Isolating Failure-Inducing Input
IEEE Transactions on Software Engineering
Machine Learning
Machine Learning
Visualization of test information to assist fault localization
Proceedings of the 24th International Conference on Software Engineering
Isolating cause-effect chains from computer programs
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
A Tutorial on Support Vector Machines for Pattern Recognition
Data Mining and Knowledge Discovery
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Measuring Distance between Program Features
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
Visualization of program-execution data for deployed software
Proceedings of the 2003 ACM symposium on Software visualization
Automated support for classifying software failure reports
Proceedings of the 25th International Conference on Software Engineering
Bug isolation via remote program sampling
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Building a Better Backtrace: Techniques for Postmortem Program Analysis
Building a Better Backtrace: Techniques for Postmortem Program Analysis
Finding Latent Code Errors via Machine Learning over Program Executions
Proceedings of the 26th International Conference on Software Engineering
Active learning for automatic classification of software behavior
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
PSE: explaining program failures via postmortem static analysis
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Locating causes of program failures
Proceedings of the 27th international conference on Software engineering
Proceedings of the 27th international conference on Software engineering
Scalable statistical bug isolation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
CCured: type-safe retrofitting of legacy software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Applying classification techniques to remotely-collected program execution data
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
SOBER: statistical model-based bug localization
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Experimental evaluation of using dynamic slices for fault location
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Locating faulty code using failure-inducing chops
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Empirical evaluation of the tarantula automatic fault-localization technique
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
Failure proximity: a fault localization-based approach
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Statistical debugging using compound boolean predicates
Proceedings of the 2007 international symposium on Software testing and analysis
Proceedings of the 2007 international symposium on Software testing and analysis
LIBSVM: A library for support vector machines
ACM Transactions on Intelligent Systems and Technology (TIST)
Exploiting traces in program analysis
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Path optimization in programs and its application to debugging
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Reflections on the Role of Static Analysis in Cooperative Bug Isolation
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Profile-guided program simplification for effective testing and analysis
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
HOLMES: Effective statistical debugging via efficient path profiling
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Identifying bug signatures using discriminative graph mining
Proceedings of the eighteenth international symposium on Software testing and analysis
Rapid: Identifying Bug Signatures to Support Debugging Activities
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Learning universal probabilistic models for fault localization
Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
On test repair using symbolic execution
Proceedings of the 19th international symposium on Software testing and analysis
Memory indexing: canonicalizing addresses across executions
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Monitoring, analysis, and testing of deployed software
Proceedings of the FSE/SDP workshop on Future of software engineering research
Execution-aware fault localization based on the control flow analysis
ICICA'10 Proceedings of the First international conference on Information computing and applications
ICICA'10 Proceedings of the First international conference on Information computing and applications
Scalable graph analyzing approach for software fault-localization
Proceedings of the 6th International Workshop on Automation of Software Test
Camouflage: automated anonymization of field data
Proceedings of the 33rd International Conference on Software Engineering
Software fault localization via mining execution graphs
ICCSA'11 Proceedings of the 2011 international conference on Computational science and its applications - Volume Part II
A novel framework for locating software faults using latent divergences
ECML PKDD'11 Proceedings of the 2011 European conference on Machine learning and knowledge discovery in databases - Volume Part III
Bug localization in test-driven development
Advances in Software Engineering
Statistical debugging using a hierarchical model of correlated predicates
AICI'11 Proceedings of the Third international conference on Artificial intelligence and computational intelligence - Volume Part I
Software fault localization using feature selection
Proceedings of the International Workshop on Machine Learning Technologies in Software Engineering
Inferred dependence coverage to support fault contextualization
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Localizing SQL faults in database applications
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Isolating failure causes through test case generation
Proceedings of the 2012 International Symposium on Software Testing and Analysis
BugRedux: reproducing field failures for in-house debugging
Proceedings of the 34th International Conference on Software Engineering
A general noise-reduction framework for fault localization of Java programs
Information and Software Technology
Reproducing and debugging field failures in house
Proceedings of the 2013 International Conference on Software Engineering
Automatically describing software faults
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
DeltaPath: Precise and Scalable Calling Context Encoding
Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization
Hi-index | 0.00 |
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