Evaluating Program Repair with Semantic-Preserving Transformations: A Naturalness Assessment
<|reference_start|>Evaluating Program Repair with Semantic-Preserving Transformations: A Naturalness Assessment: In this paper, we investigate the naturalness of semantic-preserving transformations and their impacts on the evaluation of NPR. To achieve this, we conduct a two-stage human study, including (1) interviews with senior software developers to establish the first concrete criteria for assessing the naturalness of code transformations and (2) a survey involving 10 developers to assess the naturalness of 1178 transformations, i.e., pairs of original and transformed programs, applied to 225 real-world bugs. Our findings reveal that nearly 60% and 20% of these transformations are considered natural and unnatural with substantially high agreement among human annotators. Furthermore, the unnatural code transformations introduce a 25.2% false alarm rate on robustness of five well-known NPR systems. Additionally, the performance of the NPR systems drops notably when evaluated using natural transformations, i.e., a drop of up to 22.9% and 23.6% in terms of the numbers of correct and plausible patches generated by these systems. These results highlight the importance of robustness testing by considering naturalness of code transformations, which unveils true effectiveness of NPR systems. Finally, we conduct an exploration study on automating the assessment of naturalness of code transformations by deriving a new naturalness metric based on Cross-Entropy. Based on our naturalness metric, we can effectively assess naturalness for code transformations automatically with an AUC of 0.7.<|reference_end|>
@article{le-cong2024towards,
    title={Towards Reliable Evaluation of Neural Program Repair with Natural
  Robustness Testing},
    author={Thanh Le-Cong, Dat Nguyen, Bach Le, Toby Murray},
    journal={arXiv preprint arXiv:2402.11892},
    year={2024},
    archivePrefix={arXiv},
    eprint={2402.11892},
    primaryClass={cs.SE cs.AI}
}