Dr. Kathryn Stolee has been awarded a $72,950 EAGER grant from the National Science Foundation for her proposal, Demonstrating the Feasibility of Automatic Program Repair Guided by Semantic Code Search. This grant is in collaboration with Dr. Claire Le Goues at Carnegie Melon University and Dr. Yuriy Brun at the University of Massachusetts-Amherst. The high-level goal of this work is to use semantic code search to identify software patches that can be applied to automatically fix bugs in source code.
Software is an integral part of our everyday lives, and our economy relies heavily on software working correctly. However, bugs in software cause security breaches, and cost our economy billions of dollars annually. While these high costs of bugs are well known, the software industry struggles to remedy the situation because the inherent complexity of the software makes bugs so common that new bugs are typically reported faster than developers can fix them. The global cost of fixing bugs in 2013 is estimated to have been $312 billion. The goal of this project is to develop a technique that fixes bugs automatically, greatly reducing the cost of fixing the bugs, improving quality of software, and reducing the negative effects on the economy and society.
Because so much software has already been written, many subroutines, data structures, and algorithm implementations already exist as part of open-source software. Therefore, for many software bugs, there already exist subroutines, data structures, and algorithm implementations in other open-source software that implement the correct behavior and can be substituted into buggy systems to fix the bugs. This project verifies two key properties necessary to build such a bug fixing technique: First, that code candidates for bugs in real-world software actually exist in open-source software. Second, that semantic code search can effectively find these code candidates. Altogether, this project demonstrates the feasibility of automated bug fixing through semantic search of open-source software. The broader impact of this work is the advancement of techniques that improve software quality, which, in turn, reduces the negative economic and societal effects of software bugs.