当前位置:问答库>论文摘要

题目:软件测试数据智能化生成研究

关键词:软件测试;人工智能;遗传算法;蚁群算法;神经网络;贝叶斯网络;测试数据自动生成;软件运行剖面

  摘要

在整个软件开发过程中,软件测试占有举足轻重的地位。为了缩短软件开发周期,降低软件开发费用,必须提高软件测试的测试效率,而提高测试效率的关键是软件测试数据的自动生成问题。软件测试数据的自动生成问题可归结为组合优化问题,具有不连续、不可微和非线性等复杂特征,用常规方法解决遇到较大的困难和挑战。因此,为了解决这些问题,研究基于人工智能技术的测试数据自动生成具有较大意义。本文对基于人工智能技术的测试数据自动生成进行了研究,将其规范化为测试数据智能化生成,提出测试数据智能化生成的一些概念和方法,研究内容包括:(1) 对软件测试数据智能化生成进行系统地分析和总结,探讨存在的问题和未来发展方向。将软件测试数据智能化生成,按照遗传算法、模拟退火算法、禁忌搜索算法、智能规划、神经网络、专家系统等人工智能子领域进行了分类,分别评述了各自在软件测试中的应用方法。(2) 提出了软件测试数据生成智能体的概念和结构,以构建软件测试数据智能化生成的基本原理与框架。从智能体程序的角度,将测试数据生成智能体分为三种类型:基于条件—行为规则的测试数据智能体,基于目标的测试数据智能体和基于效用的测试数据智能体。三种智能体均可以通过智能体映射模块的学习,完善测试数据智能化生成。(3) 提出一种基于模拟退火遗传算法的软件测试数据自动生成方法。该方法针对测试数据自动生成的特点将遗传算法和模拟退火有机结合,充分发挥遗传算法的全局搜索和模拟退火的局部搜索优势,克服了遗传算法局部搜索能力弱的缺点,提高了测试数据的生成能力。实验结果表明,该算法在测试数据自动生成的效率和效果方面,优于改进的遗传算法。(4) 提出了一种基于蚁群算法的测试数据自动生成方法。该方法采用位串和顺序二种形式编码,实现了被测程序输入空间到蚂蚁路径网络的映射模型。根据程序插装函数定义的路径信息素轨迹强度,蚂蚁进行群体协作搜索最佳路径,并生成测试数据。在基本蚁群算法基础上,通过引入变异算子和自适应挥发系数,提高了路径的多样性,克服了早熟停滞的缺陷。和模拟退火遗传算法进行了对比实验研究,实验结果表明了该方法的可行性,生成位串形式测试数据的效率优于模拟退火遗传算法,但生成顺序形式测试数据的效率低于模拟退火遗传算法。所以,蚁群算法可以用于位串形式测试数据的自动生成。(5) 提出了一种应用于软件功能测试中的基于自组织神经网络的测试数据自动生成方法。该方法以发现程序功能故障为导向,采用小生境遗传算法搜索少量导致功能故障的测试数据集。在此基础上,利用自适应结构的自组织特征映射神经网络的分类和联想能力,自动生成大量新的揭示功能故障的测试数据集。该方法有效模拟了人类搜索发现问题的能力,具有方法简单、无监督学习、搜索效率高等优点。导弹发射控制实例说明了该方法实现软件功能测试数据自动生成的可行性和有效性,生成效率高于小生境遗传算法和随机法。(6) 提出一种软件运行剖面的贝叶斯网络模型构建方法。该方法利用软件文档和专家经验等先验知识构建软件运行剖面的先验贝叶斯网络,然后根据软件的试用记录等后验使用知识形成软件使用的测试数据集,利用此数据集训练先验贝叶斯网络得到后验贝叶斯网络。该网络模型较为准确地表达了软件的实际使用情况,并解决了软件运行剖面的学习与训练问题。用某型空空导弹发射控制软件进行了实验,表明了该方法的可行性与有效性。