用于单元测试用例生成的混合多级交叉算子
软件工程
2021-08-13 v1
摘要
最先进的基于搜索的测试用例生成方法在测试用例级别工作,其中测试被表示为语句序列。这些方法利用遗传算子(即变异和交叉),通过从现有测试中添加、更改和删除语句来创建测试变体。虽然这种编码方案已被证明对多目标测试用例生成非常有效,但标准交叉算子(单点)仅改变测试用例的结构而不改变输入数据。在本文中,我们认为同时改变测试用例结构和输入数据对于增加遗传变异并改进搜索过程是必要的。因此,我们提出一种混合多级交叉(HMX)算子,将传统的测试级交叉与数据级重组相结合。前者演化并改变测试用例结构,而后者使用数值和基于字符串的重组算子演化输入数据。我们通过在一个来自开源Java数值运算和字符串处理库的100多个类上进行的实证研究来评估我们的新交叉算子。我们将HMX与EvoSuite中使用的单点交叉在结构覆盖率和故障检测能力方面进行比较。我们的结果表明,与单点交叉相比,HMX在30%的类上实现了统计显著的结构覆盖率提升,最高达19%。此外,使用强变异分数衡量的故障检测能力提高了最高达12%。
引用
@article{arxiv.2108.05466,
title = {Hybrid Multi-level Crossover for Unit Test Case Generation},
author = {Mitchell Olsthoorn and Pouria Derakhshanfar and Annibale Panichella},
journal= {arXiv preprint arXiv:2108.05466},
year = {2021}
}