论文摘要
随着信息技术的不断发展,软件产品的应用日益广泛,软件的规模及其复杂度不断增长,软件系统存在的潜在错误也越来越多。因此,如何提高软件质量和可靠性已成为当前软件技术领域的重要任务。软件测试是保证软件质量和可靠性的重要手段。但是,它也是一个复杂的过程,需要耗费巨大的人力、物力和时间,其测试成本约占整个软件开发过程成本的40%-50%。由此可见,提高软件测试的自动化程度是确保软件开发质量、降低开发成本重要手段。同时,提高软件测试工作效率的关键就是提高生成测试用例的自动化程度。因此,本文针对测试用例的自动化生成进行了深入的研究和具体设计。本文首先介绍了软件测试的基本理论和自动化软件测试,又介绍了软件测试用例的基本概念和方法,重点阐述了功能测试用例和结构测试用例的生成方法。随后,本文介绍了遗传算法的基本原理,阐述了遗传算法的一般流程,分析了影响遗传算法的主要因素。本文采用遗传算法为核心算法,对遗传算法在软件测试环境中的优缺点进行了分析,并针对课题的设计内容对算法的缺点进行了改进。首先,设计了更适用于本系统的路径测试的适应度函数;其次,采用了多点交叉并均分交叉点的方法,避免了参数的位串被破坏过大;最后,设计了自适应的变异概率,确保了最优个体在进化的过程中能够保留,通过改进不但加快了算法的收敛速度,还提高了搜索的效率。最后,本文以改进后的遗传算法作为核心算法,设计和实现了基于路径的测试用例自动生成系统,并以判断三角形的程序作为例子,利用该系统自动生成测试用例。实验结果表明,该系统能够完成一组目标路径的测试用例的自动生成,并能准确地生成满足指定路径的测试用例。同时,记录哪些程序路径被覆盖及哪些路径未被覆盖,当不能完全覆盖时将给出最优解。