论文部分内容阅读
自动化测试是软件测试发展的一种必然趋势,它通过自动化测试工具进行脚本录制、回放和其他一些操作手段,大大减少重复性的手工操作,降低错误率。但是目前大部分自动化测试工具主要是针对测试的执行、管理等方面的工作,在测试用例自动化生成方面还不完善。测试人员在进行软件测试过程中,特别是在单元测试中仍然采用手工方法设计和生成所需测试用例。当开发程序规模大及程序执行路径复杂时,手工编写测试用例的工作量很大,构造路径全覆盖测试用例非常困难且容易出错,造成测试效率不高,极大地影响了软件开发进程。测试用例自动化生成是在这样的背景下产生的,它改善了手工编写测试用例的一些缺陷,其中使用人工智能算法自动生成的测试用例以覆盖度高、生成用例效率高等优点,成为近年来研究的热点。但是由于测试用例的产生是一个不可判定性问题,再加上被测程序的规模和复杂性,一般的搜索算法受到了极大的限制。遗传算法在处理不确定搜索问题时有着非常明显的优势。遗传算法是一种借鉴生物界自然选择和进化机制而发展起来的高度并行、随机、自适应的搜索算法。它具有良好的全局搜索能力,但是对于局部空间搜索却不是很有效,容易产生早熟收敛问题,陷入局部最优。为了改进以上遗传算法的缺点,本文在前人研究的基础上改进了基于遗传算法的测试用例自动生成系统模型;针对遗传算法容易早熟收敛的缺点,对遗传算法的选择、交叉算子进行了改进,并将改进后的选择算子和最优保存策略相结合,提高了遗传算法在局部空间的搜索能力和整体的运行效率;把改进后的算法应用到测试用例自动生成过程中,结合具体实例,对比改进遗传算法和传统遗传算法在自动生成测试用例方面的效率和效果。实验数据证明,改进后的遗传算法用于测试用例自动生成是可行的、高效的,与传统遗传算法相比,它在生成测试用例的效率和效果上都有着明显优势。