论文部分内容阅读
随着IT产业的持续发展,大量的软件产品已经广泛应用在各行各业,为了提高软件产品的质量,越来越多的人力、物力用于软件测试。软件测试的重点是设计测试用例,如果测试用例能够自动生成,软件测试开销将显著降低。有些大型软件,软件的输出域端有一些重要点需要检测,对于这些软件的测试用例的开发,需要从软件的输出域端进行设计,然而给定被测试软件的输出,通过软件的规格说明书生成相应的输入较为困难。因此,研究一种从被测试软件的输出域端出发自动生成测试用例的方法,提高测试用例的生成效率,降低测试开销,具有重要的理论意义和实用价值。本文针对如何使用神经网络和遗传算法技术实现基于输出域测试用例自动生成这一问题进行了详细的研究和设计。首先,为了模仿软件实现的功能,本文使用BP神经网络建立软件的功能模型,从而可以表达软件输入与输出之间的关系;然后在建立的软件功能模型上,采用本文改进的多种群遗传算法来搜索预先给定的输出相对应的输入,从而实现从输出域端出发自动生成测试数据,并对本文改进的多种群遗传算法的个体编码形式、适应度函数、遗传算子和迁移操作等进行了详细研究。在对遗传算法的改进中,首先本文提出了一种改进的多种群遗传算法,该算法采用三个具有不同进化规律的种群,第一个种群作为探测子种群,侧重全局搜索,第二个种群作为开发子种群,侧重局部搜索,第三个种群通过与前两个种群的迁移操作来平衡局部搜索和全局搜索,三个种群之间定期进行最优个体的迁移和种群初始化操作,从而提高遗传算法的搜索效率;接着在编码方式上采用了实数编码,使得个体精度高并且算法不需要编码和解码过程,提高了工作效率。随后,对利用神经网络和遗传算法实现基于输出域测试用例生成方法进行验证,对三个程序进行实验,结果表明:神经网络可以建立被测试软件的功能模型,改进的多种群遗传算法可以实现基于输出域测试用例自动生成,并通过与标准遗传算法和双种群遗传算法进行对比,改进的多种群遗传算法在很大程度上提高了测试用例生成的效率和成功率。