论文部分内容阅读
软件测试的目的是为了发现软件中存在的缺陷甚至错误,从而提高软件的质量。已有的统计结果表明,软件测试占开发成本的50%以上。软件测试的核心是测试数据的自动生成,路径覆盖测试是一种重要的测试数据自动生成手段。传统的基于路径覆盖的测试数据进化生成是将数据生成问题转化为优化问题,对每个测试数据,都要运行插桩后的程序获得分支距离、层接近度等信息,从而计算其适应值,这样就需要消耗大量的时间。为了降低计算成本,减少运行程序带来的时间消耗,本文做了以下研究。本文第三章提出了一种基于BP神经网络的路径覆盖测试数据生成方法。具体是指,用BP神经网络模拟插桩后的适应值的计算过程,将随机生成的输入数据运行插桩程序获得分支距离、层接近度等信息,并计算适应值;然后将输出数据和适应值作为训练样本训练BP神经网络;最后结合训练好的BP神经网络使用遗传算法自动生成测试数据。实验证明,使用BP神经网络可以在一定程度上节省测试数据集生成的时间。本文第四章考虑到BP神经网络具有收敛速度慢,训练失败可能性大等特点,提出了一种改进的RBF神经网络模拟适应值函数,在设置隐层结构时,使用了添加策略和删除策略,保证了较高的隐层性能。实验证明,基于RBF神经网络自动生成的测试数据性能优于BP神经网络,它能进一步提高测试数据自动生成的效率。本文第五章研究了大数量路径覆盖测试数据生成问题,用RBF神经网络模拟所有目标路径的适应值函数,并采用一种改进的相似度分组策略对目标路径分组,然后通过不断删除路径覆盖目标生成测试数据。在实验部分通过与Ahmed方法、随机法、巩的方法进行比较,证明了该方法具有一定的有效性。本文的研究成果丰富了神经网络技术在软件测试领域的应用,减少了运行插桩程序带来的时间消耗,从而提高了测试的效率,因此,具有一定的理论意义和现实价值。