Efficient Specification-Assisted Error Localization and Correction
We present a new error localization tool, Archie, that accepts aspecification of key data structure consistency constraints, then generatesan algorithm that checks if the data structures satisfy theconstraints. We also present a set of specification analyses and optimizationsthat (for our benchmark software system) improve theperformance of the generated checking algorithm by over a factorof 3,900 as compared with the initial interpreted implementation,enabling Archie to efficiently support interactive debugging.We evaluate ArchieÂ s effectiveness by observing the actions oftwo developer populations (one using Archie, the other using standarderror localization techniques) as they attempted to localize andcorrect three errors in a benchmark software system. With Archie,the developers were able to localize each error in less than 10 minutesand correct each error in (usually much) less than 20 minutes.Without Archie, the developers were, with one exception, unableto locate each error after more than an hour of effort. These resultsillustrate ArchieÂ s potential to substantially improve current errorlocalization and correction techniques.