Fixing software bugs is a difficult and time-consuming process, accounting for up to 90% of the lifetime cost of a typical program. Because the number of defects outstrips the resources available for repairing them, most software is shipped with both known and unknown bugs. All previous approaches to debugging multiple types of defects have been manual. This research will develop a fully automated method for repairing bugs in existing software, thus reducing some of the cost of software maintenance.

The research will be broadly applicable, targeting off-the-shelf, legacy applications created without program annotations or special coding practices. The technical focus of the work is an automated repair approach using evolutionary algorithms. Program variants are evolved, using analogues of biological processes such as mutation, until one is found that both retains required functionality and avoids the defect. Standard software test cases are used to represent the bug and to encode program requirements. Generated repairs can be presented to developers or applied to the program directly. Significant potential outcomes include: an automated program repair methodology and freely available tools; advances in program analyses; advances in evolutionary algorithms; significant efforts in outreach and education; and dissemination of the results.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
0905373
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2009-10-01
Budget End
2014-09-30
Support Year
Fiscal Year
2009
Total Cost
$300,000
Indirect Cost
Name
University of Virginia
Department
Type
DUNS #
City
Charlottesville
State
VA
Country
United States
Zip Code
22904