[PDF][PDF] Checking patch behaviour against test specification
arXiv preprint arXiv:2107.13296, 2021•researchgate.net
Recently, the literature has proposed various heuristics to predict patch correctness. Csuvik
et al.[9] translate some empirical observations into a simple assumption for ranking valid
patches: correct patches apply fewer changes than incorrect ones. Xiong et al.[68] build on
the hypothesis that test case dynamic execution behaviours are different between correct
and incorrect patches. Other researchers propose to focus on learning, with static features of
patches, to filter out incorrect patches. For example, Ye et al.[73] proposed such a …
et al.[9] translate some empirical observations into a simple assumption for ranking valid
patches: correct patches apply fewer changes than incorrect ones. Xiong et al.[68] build on
the hypothesis that test case dynamic execution behaviours are different between correct
and incorrect patches. Other researchers propose to focus on learning, with static features of
patches, to filter out incorrect patches. For example, Ye et al.[73] proposed such a …
Recently, the literature has proposed various heuristics to predict patch correctness. Csuvik et al.[9] translate some empirical observations into a simple assumption for ranking valid patches: correct patches apply fewer changes than incorrect ones. Xiong et al.[68] build on the hypothesis that test case dynamic execution behaviours are different between correct and incorrect patches. Other researchers propose to focus on learning, with static features of patches, to filter out incorrect patches. For example, Ye et al.[73] proposed such a supervised learning-based approach after investing in careful engineering of patch features. In contrast, Tian et al.[59] relied on deep representation learning of code changes for yielding patch embeddings that are fed to a supervised learning system.
Overall, existing research in patch correctness prediction has provided promising performance [62]. Nevertheless, they suffer from various caveats. On the one hand, the state of the art dynamic-based approaches require expensive execution campaigns of the test suite, which unfavorably impacts the efficiency of the patch assessment process. Besides, such approaches are challenged in practice by the oracle problem: given a test case, we do not always have an accurate specification of what the output should be [60]. On the other hand, static-based approaches often require a substantial analysis effort to identify adequate features and properties. In addition, trending machine learning approaches are contingent on their need for sufficient labeled patch samples (ie, correct as well as overfitting ones). They further exhibit issues of generalization beyond the projects they have been trained on [62].
researchgate.net
以上显示的是最相近的搜索结果。 查看全部搜索结果