- 简介本文描述了Meta的ACH系统,该系统基于变异引导的大型语言模型(LLM)进行测试生成。与传统的变异测试相比,ACH生成的变异体(即模拟故障)数量较少。相反,它专注于生成当前未被检测到且特定于某一问题的故障。从这些当前未被捕获的故障中,ACH生成能够捕捉这些故障的测试用例,从而“消灭”变异体,并因此增强平台对抗回归的能力。我们以隐私问题为例来说明我们的方法,但ACH可以增强代码对抗任何类型的回归。总共,ACH应用于Meta部署的7个软件平台中的10,795个Android Kotlin类,从中生成了9,095个变异体和571个增强隐私的测试用例。ACH还部署了一个基于LLM的等效变异体检测代理,其精度达到0.79,召回率为0.47(经过简单预处理后,精度和召回率分别提升至0.95和0.96)。ACH在Messenger和WhatsApp的测试马拉松中得到了应用,工程师们接受了其生成的测试用例的73%,并认为其中36%与隐私相关。我们得出结论,ACH能够针对特定问题增强代码的健壮性,即使其测试用例并未直接解决特定问题,工程师们也发现它们在其他方面具有实用性。
-
- 图表
- 解决问题该论文试图解决软件测试中如何更有效地检测和防止特定类型的回归问题,特别是隐私相关的漏洞。这是一个在软件工程和安全领域中长期存在的问题,但通过使用基于大型语言模型(LLM)的自动化测试生成方法来专门针对未被现有测试覆盖的故障进行优化,则是一个创新的方向。
- 关键思路关键思路在于开发了一种名为ACH的系统,它利用突变测试的思想,但专注于生成少量、高针对性的突变体(即模拟错误),这些突变体是当前测试未能捕捉到且与特定问题(如隐私问题)相关的。然后,ACH会自动生成能够检测这些突变体的测试用例。这种方法不仅提高了测试效率,还增强了代码对特定类型回归的抵抗力。相较于传统的全面突变测试,这种方法更加聚焦和高效。
- 其它亮点论文展示了ACH系统在Meta部署的7个Android平台上成功应用,处理了超过10,000个类,并生成了数千个突变体和数百个测试用例。此外,ACH引入了一个基于LLM的等效突变体检测代理,显著提升了突变体检测的准确性和召回率。实验结果表明,工程师们对ACH生成的测试用例接受度很高,尤其是在Messenger和WhatsApp的测试活动中。这证明了即使测试不是直接针对特定问题,它们仍然具有很高的实用价值。论文没有提及是否开源代码,但从其应用效果来看,后续研究可以进一步探索不同领域或更大规模的应用场景。
- 近年来,在自动化软件测试方面有许多相关研究,例如《DeepBugs: A Learning Approach for Finding Software Bugs》探讨了深度学习在发现软件缺陷中的应用;《Mutation Testing with Deep Learning》则讨论了将深度学习应用于传统突变测试的方法。另外,《Automated Test Case Generation Using Transformer Models》介绍了使用转换器模型自动生成测试用例的技术。这些研究都旨在提高软件测试的自动化程度和有效性,而ACH的独特之处在于它结合了LLM和突变测试,以更精准地应对特定类型的回归问题。
NEW
提问交流
提交问题,平台邀请作者,轻松获得权威解答~
向作者提问

提问交流