Automated program repair reduces the manual effort in fixing program errors. However, existing repair techniques modify a buggy program such that it passes given tests. Such repair techniques do not discriminate between correct patches and patches that overfit the available tests (breaking untested but desired functionality). We propose an integrated approach for detecting and discarding overfitting patches via systematic co-exploration of the patch space and input space. We leverage concolic path exploration to systematically traverse the input space (and generate inputs), while ruling out significant parts of the patch space. Given a long enough time budget, this approach allows a significant reduction in the pool of patch candidates, as shown by our experiments. We implemented our technique in the form of a tool called ‘CPR’ and evaluated its efficacy in reducing the patch space by discarding overfitting patches from a pool of plausible patches. We evaluated our approach for fixing real-world software vulnerabilities and defects, for fixing functionality errors in programs drawn from SV-COMP benchmarks used in software verification, as well as for test-suite guided repair. In our experiments, we observed a patch space reduction due to our concolic exploration of up to 74% for fixing software vulnerabilities and up to 63% for SV-COMP programs. Our technique presents the viewpoint of gradual correctness - repair run over longer time leads to less overfitting fixes.
Tue 16 AprDisplayed time zone: Lisbon change
11:00 - 12:30 | Program Repair & KeynoteKLEE at Maria Helena Vieira da Silva Chair(s): Martin Nowack Imperial College London | ||
11:00 22mTalk | Concolic Program Repair KLEE P: Ridwan Salihin Shariffdeen National University of Singapore, Yannic Noller Singapore University of Technology and Design, Lars Grunske Humboldt-Universität zu Berlin, Abhik Roychoudhury National University of Singapore Link to publication DOI Pre-print | ||
11:22 22mTalk | Program Repair Guided by Datalog-defined Static Analysis KLEE Yu Liu National University of Singapore, P: Sergey Mechtaev University College London, Pavle Subotic Fantom Foundation, Abhik Roychoudhury National University of Singapore | ||
11:44 46mKeynote | Symbolic PathFinder: Symbolic Execution for Java KLEE Corina S. Pasareanu Carnegie Mellon University Silicon Valley, NASA Ames Research Center |