The concept assignment problem in program understanding
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Visualization of test information to assist fault localization
Proceedings of the 24th International Conference on Software Engineering
A Little Knowledge Can Go a Long Way Towards Program Understanding
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Empirical Software Engineering
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Bug localization using latent Dirichlet allocation
Information and Software Technology
Are automated debugging techniques actually helping programmers?
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Can Better Identifier Splitting Techniques Help Feature Location?
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
Fault interaction and its repercussions
ICSM '11 Proceedings of the 2011 27th IEEE International Conference on Software Maintenance
Automatically describing software faults
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
Before a fault can be fixed, it first must be understood. However, understanding why a system fails is often a difficult and time consuming process. While current automated-debugging techniques provide assistance in knowing where a fault is, developers are left unaided in understanding what a fault is, and why the system is failing. We present Semantic Fault Diagnosis (SFD), a technique that leverages lexicographic and dynamic information to automatically capture natural-language fault descriptors. SFD utilizes class names, method names, variable expressions, developer comments, and keywords from the source code to describe a fault. SFD can be used immediately after observing a failing execution and requires no input from developers or bug reports. In addition we present motivating examples and results from a SFD prototype to serve as a proof of concept.