SEJun 6, 2013

MintHint: Automated Synthesis of Repair Hints

arXiv:1306.1286v287 citations
AI Analysis

This addresses the problem of inefficient program repair for developers, offering a novel approach that is incremental by focusing on hints rather than full automation.

The paper tackles the challenge of automatic program repair by introducing MintHint, a technique that generates repair hints through statistical correlation analysis and pattern-matching synthesis, showing in a user study that it improves developer productivity manyfold compared to traditional fault localization.

Being able to automatically repair programs is an extremely challenging task. In this paper, we present MintHint, a novel technique for program repair that is a departure from most of today's approaches. Instead of trying to fully automate program repair, which is often an unachievable goal, MintHint performs statistical correlation analysis to identify expressions that are likely to occur in the repaired code and generates, using pattern-matching based synthesis, repair hints from these expressions. Intuitively, these hints suggest how to rectify a faulty statement and help developers find a complete, actual repair. MintHint can address a variety of common faults, including incorrect, spurious, and missing expressions. We present a user study that shows that developers' productivity can improve manyfold with the use of repair hints generated by MintHint -- compared to having only traditional fault localization information. We also apply MintHint to several faults of a widely used Unix utility program to further assess the effectiveness of the approach. Our results show that MintHint performs well even in situations where (1) the repair space searched does not contain the exact repair, and (2) the operational specification obtained from the test cases for repair is incomplete or even imprecise.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes