Automatic Test Generation for Program Repair


August 2023


Journal Title

Journal ISSN

Volume Title



Software bugs negatively impact product quality and user experience, necessitating efficient debugging. Manual debugging is time-consuming and requires programmers’ expertise, making automated program repair technologies essential as they offer potential solutions by automatically identifying and fixing program bugs but face various limitations, such as low repair capability and patch overfitting. This dissertation addresses these challenges in test-suite based automated program repair by proposing and evaluating novel methods to improve test suite adequacy, patch search space, algorithm search efficiency, and repair capability. The key contributions are: (1) an novel patch generation module for search-based program repair that integrates repair templates and a multi-population differential elite group strategy, improving candidate search space and patch search capability, respectively; (2) the ARJANMT framework, which combines search- based and neural-machine-translation-based repair techniques, resulting in superior repair capability and patch correctness; (3) a local search strategy for automatic test case generation utilizing adaptive simulated annealing and symbolic path constraints, generating high coverage test cases within a limited time budget; (4) the PCA-DynaMOSA, an improved many-objective optimization algorithm for test case generation based on dimensionality reduction, capable of decomposing numerous objectives under different coverage criterion to address DynaMOSA's limitations and enhance test case generation performance; (5) an investigation into the feasibility and effectiveness of employing automatically generated test cases to mitigate patch overfitting issues and boost the repair capability of automated program repair frameworks. These contributions of this dissertation lead to advancements in the field of automated program repair and test case generation, providing valuable insights and potential solutions to the program repair and patch overfitting problem.



Computer Science