Test Case Generation for Program Repair: A Study of Feasibility and Effectiveness
Zhongxing Yu, Matias Martinez, Benjamin Danglot, Thomas Durieux and, Martin Monperrus

TL;DR
This study explores the use of test case generation to improve test suite-based program repair, finding it can alter patches but does not reliably fix overfitting issues or correct faulty patches.
Contribution
The paper proposes two approaches for integrating test case generation into program repair and evaluates their effectiveness on 224 bugs from Defects4J.
Findings
Test case generation can change repair patches.
It is ineffective at converting incorrect patches into correct ones.
Identifies challenges and future directions for tailored test case generation.
Abstract
Among the many different kinds of program repair techniques, one widely studied family of techniques is called test suite based repair. Test-suites are in essence input-output specifications and are therefore typically inadequate for completely specifying the expected behavior of the program under repair. Consequently, the patches generated by test suite based program repair techniques pass the test suite, yet may be incorrect. Patches that are overly specific to the used test suite and fail to generalize to other test cases are called overfitting patches. In this paper, we investigate the feasibility and effectiveness of test case generation in alleviating the overfitting issue. We propose two approaches for using test case generation to improve test suite based repair, and perform an extensive evaluation of the effectiveness of the proposed approaches in enabling better test suite…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Reliability and Analysis Research · Software Engineering Research
