论文
往返突变测试:将代码翻译为自然语言意图并返回
Round-Trip Mutation Testing: Translating Code to Natural Language Intent and back
摘要
本文提出了往返突变测试 (RTM),这是一种根据程序代码与其意图之间的 LLM 误译生成突变体的新颖方法。利用 LLM 在编程和自然语言之间的生成能力,并给定一个输入程序,我们的方法预测其意图,即用于生成程序,当该程序与原始程序不同时,构成输出突变体。该方法通过在最终程序(突变体)生成之前改变意图,产生额外的突变体,这是由于人为引起的误译而产生的。源于意图中的微小变化向代码的传播,我们的直觉是这些程序将呈现与原始程序细微的语义差异,模拟可能因规范误解而导致的可能发生的故障,并启用突变测试。为了评估 RTM,我们在 40 个真实存在错误的方法上运行它,并评估其在指导测试检测错误方面的有效性和成本效率。我们的结果证明了往返突变测试产生语法上更加多样化的突变体的潜力,可能会暴露传统突变算子无法揭示的错误。更有趣的是,RTM 在生成更小、更强的测试套件方面优于传统的基于模式的突变,当仅选择 4 个和 30 个测试时,平均检测到的错误分别多出 4 倍和 1.7 倍以上。