Information Processing Letters
Explaining type errors in polymorphic languages
ACM Letters on Programming Languages and Systems (LOPLAS)
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Explaining Type Errors by Finding the Source of a Type Conflict
SFP '99 Selected papers from the 1st Scottish Functional Programming Workshop (SFP99)
ICSE '81 Proceedings of the 5th international conference on Software engineering
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PSE: explaining program failures via postmortem static analysis
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Testing, abstraction, theorem proving: better together!
Proceedings of the 2006 international symposium on Software testing and analysis
Proceedings of the 5th international conference on Generative programming and component engineering
Automated Fault Localization for C Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Searching for type-error messages
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Sound, complete and scalable path-sensitive analysis
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
The Yogi Project: Software Property Checking via Static Analysis and Testing
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
A few billion lines of code later: using static analysis to find bugs in the real world
Communications of the ACM
Compositional may-must program analysis: unleashing the power of alternation
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type error slicing in implicitly typed higher-order languages
ESOP'03 Proceedings of the 12th European conference on Programming
Software verification with BLAST
SPIN'03 Proceedings of the 10th international conference on Model checking software
Small formulas for large programs: on-line constraint simplification in scalable static analysis
SAS'10 Proceedings of the 17th international conference on Static analysis
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Precise reasoning for programs using containers
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Cause clue clauses: error localization using maximum satisfiability
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Precise and compact modular procedure summaries for heap manipulating programs
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Fluid updates: beyond strong vs. weak updates
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Minimum satisfying assignments for SMT
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Minimum satisfying assignments for SMT
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Modular and verified automatic program repair
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Synthesis of circular compositional program proofs via abduction
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Thresher: precise refutations for heap reachability
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Almost-correct specifications: a modular semantic framework for assigning confidence to warnings
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Dynamically validating static memory leak warnings
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Inductive invariant generation via abductive inference
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Explain: a tool for performing abductive inference
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Validating library usage interactively
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Toward general diagnosis of static errors
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Alias analysis: beyond the code
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
When program verification tools fail to verify a program, either the program is buggy or the report is a false alarm. In this situation, the burden is on the user to manually classify the report, but this task is time-consuming, error-prone, and does not utilize facts already proven by the analysis. We present a new technique for assisting users in classifying error reports. Our technique computes small, relevant queries presented to a user that capture exactly the information the analysis is missing to either discharge or validate the error. Our insight is that identifying these missing facts is an instance of the abductive inference problem in logic, and we present a new algorithm for computing the smallest and most general abductions in this setting. We perform the first user study to rigorously evaluate the accuracy and effort involved in manual classification of error reports. Our study demonstrates that our new technique is very useful for improving both the speed and accuracy of error report classification. Specifically, our approach improves classification accuracy from 33% to 90% and reduces the time programmers take to classify error reports from approximately 5 minutes to under 1 minute.