Human-in-the-loop automatic program repair

Marcel Böhme, Charaka Geethal, Van Thuan Pham

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

Abstract

We introduce LEARN2FIX, the first human-in-the-loop, semi-automatic repair technique when no bug oracle-except for the user who is reporting the bug-is available. Our approach negotiates with the user the condition under which the bug is observed. Only when a budget of queries to the user is exhausted, it attempts to repair the bug. A query can be thought of as the following question: 'When executing this alternative test input, the program produces the following output; is the bug observed'? Through systematic queries, LEARN2FIX trains an automatic bug oracle that becomes increasingly more accurate in predicting the user's response. Our key challenge is to maximize the oracle's accuracy in predicting which tests are bug-revealing given a small budget of queries. From the alternative tests that were labeled by the user, test-driven automatic repair produces the patch. Our experiments demonstrate that LEARN2FIX learns a sufficiently accurate automatic oracle with a reasonably low labeling effort (lt. 20 queries). Given LEARN2FIX's test suite, the GenProg test-driven repair tool produces a higher-quality patch (i.e., passing a larger proportion of validation tests) than using manual test suites provided with the repair benchmark.

Original languageEnglish
Title of host publicationProceedings - 2020 IEEE 13th International Conference on Software Testing, Verification and Validation, ICST 2020
EditorsCorina Pasareanu, Andreas Zeller
Place of PublicationPiscataway NJ USA
PublisherIEEE, Institute of Electrical and Electronics Engineers
Pages274-285
Number of pages12
ISBN (Electronic)9781728157771, 9781728157788
ISBN (Print)9781728157795
DOIs
Publication statusPublished - 2020
EventInternational Conference on Software Testing, Verification and Validation 2020 - Porto, Portugal
Duration: 24 Oct 202028 Oct 2020
Conference number: 13th
https://ieeexplore.ieee.org/xpl/conhome/9149738/proceeding (Proceedings)
https://icst2020.info (Website)

Conference

ConferenceInternational Conference on Software Testing, Verification and Validation 2020
Abbreviated titleICST 2020
CountryPortugal
CityPorto
Period24/10/2028/10/20
Internet address

Cite this