混合多级交叉在基于搜索的单元测试用例生成中的应用
1. 背景与相关工作
在软件开发中,基于搜索的单元测试生成(SBST)是一个重要的研究领域。它利用元启发式算法(如遗传算法)来自动生成不同测试级别的测试用例,包括单元测试、集成测试和系统级测试。
- 单目标单元测试生成 :单目标技术指定一个或多个适应度函数,以引导搜索过程根据所需标准覆盖搜索目标。例如,Rojas等人提出了一种方法,使用加权和标量化聚合每个标准的所有适应度函数,并执行单目标优化来生成测试。Gay通过实验表明,在单目标中结合不同标准比单独使用每个标准能检测到更多的故障。
- 动态多目标排序算法(DynaMOSA) :与单目标单元测试生成不同,DynaMOSA是一种基于多目标进化的方法。它将来自多个标准的每个覆盖目标视为一个独立的搜索目标,并利用不同覆盖目标之间的依赖层次结构在搜索过程中动态选择搜索目标。最近的研究表明,DynaMOSA的多标准变体在结构和变异覆盖方面优于单目标基于搜索的单元测试生成,因此可以实现更高的故障检测率。目前,DynaMOSA是EvoSuite中的默认算法。
- 交叉算子 :像其他基于进化的算法一样,DynaMOSA的所有变体都需要交叉和变异算子来进化当前种群中的个体,以生成下一代。DynaMOSA在测试用例级别对测试进行编码,变异算子根据给定的变异概率改变所选测试用例中的语句。该搜索算法使用单点交叉将两个选定的个体(父代)重新组合成新的测试(子代)。
2. 混合多级交叉(HMX)方法
为了改进
超级会员免费看
订阅专栏 解锁全文
1014

被折叠的 条评论
为什么被折叠?



