Automated Program Repair (APR) techniques have drawn wide attention from both academia and industry. Meanwhile, one main limitation with the current state-of-the-art APR tools is that patches passing all the original tests are not necessarily the correct ones wanted by developers, i.e., the plausible patch problem. To date,various Patch-Correctness Checking (PCC) techniques have been proposed to address this important issue. However, they are only evaluated on very limited datasets as the APR tools used for generating such patches can only explore a small subset of the search space of possible patches, posing serious threats to external validity to existing PCC studies. In this paper, we construct an extensive PCC dataset (the largest labeled PCC dataset to our knowledge) to revisit all state-of-the-art PCC techniques. More specifically, our PCC dataset includes 1,988 patches generated from the recent PraPR APR tool, which leverages highly-optimized bytecode-level patch executions and can exhaustively explore all possible plausible patches within its large predefined search space (including wellknown fixing patterns from various prior APR tools). Our extensive study of representative PCC techniques on the new dataset has revealed various surprising findings, including: 1) the assumption made by existing static PCC techniques that correct patches are more similar to buggy code than incorrect plausible patches no longer holds, 2) state-of-the-art learning-based techniques tend to suffer from the dataset overfitting problem, and 3) while dynamic techniques overall retain their effectiveness on our new dataset, their performance drops substantially on patches with more complicated changes. Based on our findings, we also provide various guidelines/suggestions for advancing PCC in the near future.
翻译:自动程序修理技术引起了学术界和业界的广泛关注。 与此同时,目前最先进的同行审议机制工具的一个主要限制是,通过所有最初测试的补丁不一定是开发者所希望的正确测试,即可信的补丁问题。迄今为止,提出了各种补丁更正检查技术,以解决这一重要问题。然而,这些技术只是根据非常有限的数据集进行评估,因为用于生成此类补丁的同行审议机制工具只能探索少量可能的补丁搜索空间,对现有的PCC研究的外部有效性构成严重威胁。在本文件中,我们建造了广泛的PCC数据集(我们知识中最大的贴标签的PCC数据集),以重新审视所有最先进的PCC技术。更具体地说,我们的PPRARRA工具生成了1 988个补丁,它利用了高度精选的调级补丁级补丁,并且能够详尽地探索其大预定义搜索空间中的所有可能的补丁(包括非常清楚的固定的PCC系统测试系统),我们从先前的变现技术中获取了更精确的系统更新数据,我们从各种变现工具中获取了更多的数据。