Off-campus UMass Amherst users: To download campus access dissertations, please use the following link to log into our proxy server with your UMass Amherst user name and password.
Non-UMass Amherst users: Please talk to your librarian about requesting this dissertation through interlibrary loan.
Dissertations that have an embargo placed on them will not be available to anyone until the embargo expires.
Author ORCID Identifier
https://orcid.org/0000-0001-5129-3980
AccessType
Open Access Dissertation
Document Type
dissertation
Degree Name
Doctor of Philosophy (PhD)
Degree Program
Computer Science
Year Degree Awarded
2022
Month Degree Awarded
September
First Advisor
Yuriy Brun
Second Advisor
Arjun Guha
Third Advisor
George S. Avrunin
Fourth Advisor
Claire Le Goues
Subject Categories
Software Engineering
Abstract
Software developers spend significant time and effort fixing bugs. Automatic program repair promises to significantly reduce bug-fixing costs. Program repair requires: fault localization — identifying program elements that cause the bug, patch generation — identifying modifications to those program elements to attempt to repair the bug, and patch validation — verifying that the modification actually repairs the bug. Most automatic program repair techniques use the developer-written tests for the repair process and produce seemingly good patches for 11–19% of the bugs in real-world software. However, most of these patches are not correct, as they overfit to the developer-written tests and break undertested functionality. The goal of this dissertation is to address this patch overfitting problem.
We improve automatic program repair techniques by augmenting developer tests with additional constraints from natural language software artifacts. While most existing techniques ignore such artifacts, we show that they can significantly improve the quality of program repair. We make the following contributions: (1) Methodologies to objectively evaluate repair techniques’ repair applicability and repair quality; (2) Swami, a technique that uses natural language processing to improve the developer-written tests by generating executable tests with oracles from software specifications; (3) Blues, a technique that uses information-retrieval-based approach to identify suspicious program statements using bug reports; (4) RAFL, an unsupervised technique that uses rank-aggregation algorithms to combine multiple fault localization techniques; and (5) An evaluation demonstrating that automatic program repair can improve significantly when using both tests and bug reports, together.
DOI
https://doi.org/10.7275/30288519
Recommended Citation
Motwani, Manish, "High-Quality Automatic Program Repair" (2022). Doctoral Dissertations. 2696.
https://doi.org/10.7275/30288519
https://scholarworks.umass.edu/dissertations_2/2696
Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.