2016, 27(4):785-801.DOI: 10.13328/j.cnki.jos.004966
摘要:适应度函数的设计在基于搜索的测试用例生成技术中占据重要的位置,然而在某些特殊的程序中,如存在嵌套、非结构性跳转或因return,break等语句跳出循环的程序,已有的适应度函数无法评价到所有的分支.目前的方法是修改程序的源代码,以使每个分支得到评价.但修改源代码不但可能影响程序的原有结构、引入错误,而且很难实现自动化.针对这一问题,提出一种基于模式组合的粒子群优化测试用例生成方法.首先,将分支条件定义为模式,即,一类具有相同特征且能提高适应度值的个体集合,并改变其分支函数的插桩方式,可解决分支条件不完全评价的问题;然后,设计一种新的交叉算子,寻找到所有使模式的分支函数值最小的个体,将这些个体中含有模式的部分通过交叉算子组合到一个个体上,既可防止模式在进化过程中被破坏,又可因多种模式的组合而提高个体的适应度值;最后,使用局部搜索策略对种群中的最优个体进行搜索,提高粒子群优化算法的局部搜索精度,进一步提高测试用例生成效率.为了评价该方法的有效性,基于一组基准程序和开源程序进行实验.实验结果表明:对于含有模式的程序,该测试用例生成方法与已有方法相比,在覆盖率和平均进化代数上均有明显优势.
2009, 20(4):890-901.
摘要:通过分析交叉点规模对交叉算子空间搜索性能的影响,可以发现在遗传算法的搜索过程中,其对交叉点规模的需求是随群体状态的演变而动态变化的.为实现对交叉点规模的优化,提出使用分阶段调整策略、随机分配策略以及自适应进化策略3 种方法来完成对交叉点规模的动态调控.对典型高维函数的优化实验表明,上述方法可以显著提高交叉操作的搜索效率,其中,自适应进化策略利用搜索机制可以发现一类高维函数交叉点规模的控制知识,实验结果证实了此类知识的有效性.此外,该研究也为对进化算法中算子和参数的优化提供了新思路.