论文来自 2023 IEEE Transactions on Software Engineering (TSE 2023) 的《Challenging Machine Learning-based Clone Detectors via Semantic-preserving Code Transformations》。
摘要
软件克隆检测可识别相似或相同的代码片段。在过去的二十年里,它一直是一个活跃的研究课题,引起了广泛的关注。近年来,基于机器学习(ML)的检测器,特别是基于深度学习的检测器,在克隆检测方面表现出了令人印象深刻的能力。由于机器学习技术的进步,这个长期存在的问题似乎已经得到了解决。在这项工作中,我们想通过代码语义保持转换来挑战最近基于机器学习的克隆检测器的鲁棒性。我们首先利用十五个简单的代码转换运算符结合常用的启发式方法(即随机搜索、遗传算法和马尔可夫链蒙特卡洛)来执行等效的程序转换。此外,我们提出了一种基于深度强化学习的序列生成(DRLSG)策略,以有效地指导生成可能逃脱检测的克隆的搜索过程。然后,我们使用原始和生成的克隆对评估基于ML的检测器。我们在一个名为CLONEGEN(代表克隆生成器)的框架中实现了我们的方法。
2025年9月23日大约 54 分钟