论文部分内容阅读
随着软件项目规模的不断增大,整个庞大的软件项目能否高质量的完成,不仅仅取决于软件的开发过程,在软件开发的前期和后期,软件项目的测试起着举足轻重的作用。而在软件测试的过程中,软件漏洞能否有效的被发现很大程度上取决于软件测试用例数据的选择和生成。因此,软件测试的测试用例的生成在软件测试中起着关键作用。现阶段,基于遗传算法的软件测试用例的生成一直受到了广泛的关注和研究,但是,传统的遗传算法在数据搜索上有一定的盲目性,同时在进化过程中“早熟”和收敛速度慢等缺点。本文对传统遗传算法指导软件测试测试用例生成的方法进行了分析和研究,针对传统遗传算法在数据搜索上具有一定的盲目性以及进化过程中的“早熟”和收敛速度慢的缺点,提出一种基于多种群遗传算法指导模糊测试测试用例生成的方法。本方法通过对程序的二进制文件进行静态分析和动态分析,从而得到遗传算法中适应度函数的计算参数,并计算出多种群遗传算法中每个个体的适应度;根据适应度值得大小对不同的个体以及海明码距离划分不同种群,并进行种内进化和种间杂交交替进行的操作,最终将适应度较高的个体输送到一个固定种群中形成输出种群。为了更好的加快算法的收敛速度,在输出种群的进化过程中采用精英保留的策略,输出种群即为模糊测试的测试用例集合。该方法通过静态分析和动态分析使得多种群遗传算法在数据生成上能够基于关键路径,有效的减少了传统遗传算法在数据搜索上的盲目性,多种群杂交的可以有效的避免传统遗传算法中的“早熟”现象,而最终的输出种群的设置可以有效的提高传统遗传算法的收敛速度。在提出基于多种群遗传算法指导模糊测试测试用例生成方法后,本文实现了基于多种群遗传算法的模糊测试生成工具模型,该模型包括三个模块:静态分析模块、动态分析模块、测试用例生成器。并且,本文在提出的基于多种群遗传算法的模糊测试生成工具模型的基础上,进行了开发实现。并利用该实现的工具对三个基本程序(冒泡程序、最大值最小值程序、三角形判定程序)以及MATLAB函数找最值进行试验。试验表明,多种群遗传算法在生成最优解的过程中,代数和所用时间均优于传统遗传算法,更适合指导模糊测试测试用例生成。