Faculty Recruiting Support CICS

High-Quality Automated Program Repair

01 Apr
Friday, 04/01/2022 10:00am to 12:00pm
Zoom
PhD Thesis Defense
Speaker: Manish Motwani

Abstract: Software developers spend significant time and effort fixing bugs. Automated 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 automated 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.

I improve automated program repair techniques by augmenting developer tests with additional constraints from natural language software artifacts. While most existing techniques ignore such artifacts, I show that they can significantly improve the quality of program repair. I 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 an unsupervised learning and information retrieval for fault localization using bug reports; (4) RAFL, a technique that uses rank-aggregation algorithms to combine multiple fault localization techniques; and (5) An evaluation demonstrating that automated program repair can improve significantly when using both tests and bug reports, together.

Advisor: Yuriy Brun

Join via Zoom