PROUST: Knowledge-Based Program Understanding
IEEE Transactions on Software Engineering
A theory of diagnosis from first principles
Artificial Intelligence
Artificial Intelligence
Algorithms for clustering data
Algorithms for clustering data
A correction to the algorithm in Reiter's theory of diagnosis
Artificial Intelligence
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
An empirical investigation of program spectra
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Automatic Program DeBugging for Intelligent Tutoring Systems
Automatic Program DeBugging for Intelligent Tutoring Systems
Intention-Based Diagnosis of Errors in Novice Programs
Intention-Based Diagnosis of Errors in Novice Programs
Algorithmic Program DeBugging
Model-Based Debugging or How to Diagnose Programs Automatically
IEA/AIE '02 Proceedings of the 15th international conference on Industrial and engineering applications of artificial intelligence and expert systems: developments in applied artificial intelligence
Empirical Software Engineering
Empirical evaluation of the tarantula automatic fault-localization technique
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Error explanation with distance metrics
International Journal on Software Tools for Technology Transfer (STTT)
Statistical Debugging: A Hypothesis Testing-Based Approach
IEEE Transactions on Software Engineering
Under-constrained execution: making automatic code destruction easy and scalable
Proceedings of the 2007 international symposium on Software testing and analysis
A Crosstab-based Statistical Method for Effective Fault Localization
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Using Redundancies to Find Errors
IEEE Transactions on Software Engineering
Refining spectrum-based fault localization rankings
Proceedings of the 2009 ACM symposium on Applied Computing
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A practical evaluation of spectrum-based fault localization
Journal of Systems and Software
Evaluating Models for Model-Based Debugging
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Spectrum-Based Multiple Fault Localization
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Using Mutation to Automatically Suggest Fixes for Faulty Programs
ICST '10 Proceedings of the 2010 Third International Conference on Software Testing, Verification and Validation
Fault Localization Based on Dynamic Slicing and Hitting-Set Computation
QSIC '10 Proceedings of the 2010 10th International Conference on Quality Software
Diagnosing multiple intermittent failures using maximum likelihood estimation
Artificial Intelligence
A Dynamic Fault Localization Technique with Noise Reduction for Java Programs
QSIC '11 Proceedings of the 2011 11th International Conference on Quality Software
Prioritizing tests for fault localization through ambiguity group reduction
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Hi-index | 0.00 |
A considerable amount of time in software engineering is spent in debugging. In practice, mainly debugging tools which allow for executing a program step-by-step and setting break points are used. This debugging method is however very time consuming and cumbersome. There is a need for tools which undertake the task of narrowing down the most likely fault locations. These tools must complete this task with as little user interaction as possible and the results computed must be beneficial so that such tools appeal to programmers. In order to come up with such tools, we present three variants of the well-known spectrum-based fault localization technique that are enhanced by using methods from Artificial Intelligence. Each of the three combined approaches outperforms the underlying basic method concerning diagnostic accuracy. Hence, the presented approaches support the hypothesis that combining techniques from different areas is beneficial. In addition to the introduction of these techniques, we perform an empirical evaluation, discuss open challenges of debugging and outline possible solutions.