Poracle: Testing Patches under Preservation Conditions to Combat the Overfitting Problem of Program Repair

  • Ismayilzada, Elkhan; 
  • Rahman, Md Mazba Ur; 
  • Kim, Dongsun; 
  • Yi, Jooyong
Citations

WEB OF SCIENCE

6
Citations

SCOPUS

6

초록

To date, the users of test-driven program repair tools suffer from the overfitting problem; a generated patch may pass all available tests without being correct. In the existing work, users are treated as merely passive consumers of the tests. However, what if they are willing to modify the test to better assess the patches obtained from a repair tool? In this work, we propose a novel semi-automatic patch-classification methodology named Poracle. Our key contributions are three-fold. First, we design a novel lightweight specification method that reuses the existing test. Specifically, the users extend the existing failing test with a preservation condition-the condition under which the patched and pre-patched versions should produce the same output. Second, we develop a fuzzer that performs differential fuzzing with a test containing a preservation condition. Once we find an input that satisfies a specified preservation condition but produces different outputs between the patched and pre-patched versions, we classify the patch as incorrect with high confidence. We show that our approach is more effective than the four state-of-the-art patch classification approaches. Last, we show through a user study that the users find our semi-automatic patch assessment method more effective and preferable than the manual assessment.

키워드

Automated program repair; overfitting problem; patch validation; patch classification; preservation condition; GENERATION
제목
Poracle: Testing Patches under Preservation Conditions to Combat the Overfitting Problem of Program Repair
저자
Ismayilzada, Elkhan; Rahman, Md Mazba Ur; Kim, Dongsun; Yi, Jooyong
DOI
10.1145/3625293
발행일
2024-02
유형
Article
저널명
ACM Transactions on Software Engineering and Methodology
권
33
호
2