论文部分内容阅读
随着软件技术的发展和软件项目规模的不断扩大,软件测试的作用越来越重要。在软件测试中,测试数据的选择是进行结构测试的一个难题,测试数据合适与否直接关系到错误能否被预期测出。对于测试数据自动化生成方法,目前虽然有一些方法被提出并使用,但由于其局限性,在实际中还没有完善的解决方法,只能凭借工程经验判断。在此背景下,本文使用遗传算法进行了对测试数据自动生成方法的研究。 本文首先介绍了软件测试技术和遗传算法。对于软件测试技术,介绍了软件测试的概念、分类、阶段划分及测试用例的选择方法,并着重介绍了现有的各种面向路径覆盖的测试数据生成方法。对于遗传算法,介绍了它的产生发展、基本概念、特点和基本术语,阐述了遗传算法的一般过程,分析了影响遗传算法的重要因素。 接着,文章提出了遗传算法在测试数据生成中的应用方法。首先分析了使用遗传算法生成测试数据的理论依据,指出了应用遗传算法的可行性。其次研究了使用遗传算法生成测试数据所要考虑的若干问题,特别在路径表示和选择、适应度函数设计和程序插装方式上,根据实际应用的需要作出了改进,提出了适用于实际的应用算法。最后用一个简单的实例说明了使用遗传算法生成基本数据类型测试数据的过程。 本文详细研究了在面向对象程序中遗传算法生成测试数据的一个难点:类对象测试数据的生成。首先设计了一种新的类对象编码方法,使其能够适合于遗传操作。其次分析研究了广义海明距离法,在此基础上提出了适用于本系统的类对象生成适应度函数,并用一个简单的实例说明了使用遗传算法生成类对象测试数据的过程。 最后,本文将该方法应用于交通银行数据大集中项目个贷子系统的单元测试中,创建了一个工具模型,使其根据需要自动生成测试数据,最后给出实验结果和结果分析与比较。实验证明,使用遗传算法进行面向路径覆盖的测试数据生成方法,是灵活、有效、具有一定实用价值的。