基于规则与学习的变异技术对比研究.pdf
软件学报ISSN1000-9825,CODENRUXUEWE-mail:jos@
JournalofSoftware,2024,35(7):3093−3114[doi:10.13328/ki.jos.007113]
©中国科学院软件研究所版权所有.Tel:+86-10
∗
基于规则与学习的变异技术对比研究
1,21,231,2
贡志豪,陈逸洲,陈俊洁,郝丹
1(高可信软件技术教育部重点实验室(北京大学),北京100871)
2(北京大学计算机学院,北京100871)
3(天津大学智能与计算学部,天津300350)
通信作者:郝丹,E-mail:haodan@
摘要:变异测试是一种有效的软件测试技术,通过生成变异体来模拟软件缺陷,帮助提升现有测试套件的缺陷
检测能力.变异体的质量对于变异测试的有效性具有显著影响.传统的变异测试方法通常采用人工设计的基于语
法规则的变异算子生成变异体,并已取得一定的研究成果.近年来,许多研究开始结合深度学习技术,通过学习
开源项目历史代码生成变异体.目前,该新方法在变异体生成方面取得了初步的成果.基于语法规则和基于学习
的两种变异技术,其机理不同,但其目标均是通过生成变异体来提高测试套件的缺陷检测能力,因此,全面比较
这两种变异技术对于变异测试及其下游任务至关重要.针对这一问题,设计实现了一项针对基于语法规则和基于
学习的变异技术的实证研究,旨在了解不同机理的变异技术在变异测试任务上的性能以及生成的变异体在程序语
义上的差异性.具体地,以Defect4Jv1.2.0数据集为实验对象,比较以MAJOR和PIT为代表的基于语法规则的变
异技术和以DeepMutation、μBERT和LEAM为代表的基于深度学习的变异技术.实验结果表明:基于规则与学习
的变异技术均可有效支持变异测试实践,但MAJOR的测试效果最优,能够检测85.4%的真实缺陷.在语义表示
上,MAJOR具有最强的语义代表能力,基于其构造的测试套件能够杀死其余变异技术生成的超过95%占比的变异
体.在缺陷表征上,两类技术均具有独特性.
关键词:变异测试;变异分析;实证研究;缺陷检测
中图法分类号:TP311
中文引用格式:贡志豪,陈逸洲,陈俊洁,郝丹.基于规则与学习的变异技术对比研究.软件学报,2024,35(7):3093–3114.
/1000-9825/7113.htm
英文引用格式:GongZH,ChenYZ,ChenJJ,HaoD.ComparisonResearchonRule-basedandLearning-basedMutationTechniques.
RuanJianXueBao/JournalofSoftware,2024,35(7):3093−3114(inChinese)./1000-9825/7113.htm
ComparisonResearchonRule-basedandLearning