利用源代码嵌入探索可信补丁(JavaScript 中)
软件工程
2021-04-01 v1 人工智能
摘要
尽管自动化程序修复(APR)领域极受欢迎,补丁验证问题仍悬而未决。当今多数方法遵循所谓的生成-验证途径,先生成候选解,再针对预言机进行验证。然而,后者可能因此类预言机(通常为测试套件)的不完善而无法给出可靠结果。尽管(重新)运行测试套件近在眼前,在实际应用中过拟合与欠拟合问题频发,导致不当补丁。为应对该问题已作出的努力包括补丁过滤、测试套件扩充、审慎生成补丁等。迄今多数方法采用基于测试执行轨迹或利用所生成补丁上某种相似性度量的后过滤。我们的目标在于探究这些基于相似性的方法的本质。为此,我们在一个开源 JavaScript 项目上训练了 Doc2Vec 模型,并为其 10 个缺陷生成了 465 个补丁。这些可信补丁与开发者修复一起,依据其与原始程序的相似性进行排序。我们分析了这些相似性列表,发现朴素文档嵌入可能导致误分类——其未能捕捉细微的代码语义。尽管如此,在某些情况下它也提供了有用信息,从而有助于更好地理解自动化程序修复领域。
引用
@article{arxiv.2103.16846,
title = {Exploring Plausible Patches Using Source Code Embeddings in JavaScript},
author = {Viktor Csuvik and Dániel Horváth and Márk Lajkó and László Vidács},
journal= {arXiv preprint arXiv:2103.16846},
year = {2021}
}
备注
Paper accepted in APR2021 conference