一种基于神经网络的测试数据生成方法

文档序号:6547030阅读:676来源:国知局
一种基于神经网络的测试数据生成方法
【专利摘要】本发明提供一种基于神经网络的测试数据生成方法,其具体实现过程如下:测试数据生成器生成的测试数据一方面通过度量分析提取测试数据指数,另一方面通过评价器得到测试数据揭示的故障类别;由一系列测试数据指数及对应的故障类别组成神经网络的学习样本,采用学习算法实施神经网络训练,训练完毕得到训练好的神经网络;由评价器生成测试数据,经过度量分析提取测试数据指数,将其输入到训练好的神经网络,得到测试数据的揭错等级,并据此对测试数据进行取舍处理。该一种基于神经网络的测试数据生成方法和现有技术相比,能够生成高质量的测试数据,并尽可能的降低测试数据总数,从而降低软件开发成本,实用性强,易于推广。
【专利说明】一种基于神经网络的测试数据生成方法
[0001]
【技术领域】
[0002]本发明涉及计算机【技术领域】,具体的说是一种动态的对网页进行创建和加载,实现实时更新功能的基于神经网络的测试数据生成方法。
【背景技术】
[0003]Kore对测试数据生成问题的定义是:给定一个程序元素,找到一个程序的输入,使它能执行这个程序元素。生成测试数据的方法有的面向路径,有的面向非标准路经。方法有三类:随机方法、面向目标和面向路径的测试数据生成方法,每一类方法有可分为静态或动态的测试数据生成方法。
[0004]一、静态和动态测试数据生成方法。静态测试数据生成,不基于程序的输入数据而是采用程序的符号执行以及表达式的消解和变换的方法。动态测试数据生成,是利用程序的实际输入数据来执行程序的方法。
[0005]二、随机测试数据生成方法。随机方法,是最简单的测试数据生成方法,可以生成任一类型输入变量的值,但找出程序的错误的概率较低,一般常用随机方法作为其他测试数据生成方法的比较对象。
[0006]三、面向目标的测试数据生成方法。给定程序控制流图中的一条非标准路经,面向目标的方法生成测试数据来遍历该路经。因此该方法事实上是生成测试数据来遍历经过该非标准路径的所有路径,其效果比随机方法强得多。
[0007]在软件开发过程中,软件测试占有举足轻重的地位。一般意义上,软件测试是为了发现错误而执行的过程。其中,设计和生成有效地测试数据是决定软件测试质量的重要因素之一。测试数据生成可以被理解为一个抽样过程,即根据相应的测试覆盖标准,采用一定的方法,在测试数据全集中进行抽样,选取出一批错误敏感的测试数据,它们具有较高的发现软件错误的可能性。一个有效的测试数据设计方法可以生成高质量的测试数据,并尽可能的降低测试数据总数,从而降低软件开发成本。所以,为了缩短开发周期,降低费用,研究者们正在研究软件测试数据的自动生成问题。由于此问题极其复杂,通常属于组合优化问题,用常规方法解决遇到困难,因此软件测试数据的智能化生成问题成为软件测试的研究热点。人工神经网络具有自适应、自组织和实时学习的特点,在软件测试数据智能化生成的研究中较为活跃,技术也日趋成熟。因此,基于神经网络的测试数据生成显然已经成为研究测试数据智能化生成问题的一种方法。
[0008]人工神经网络(ANN)是一种运算模型,由大量的节点(或称神经元)和之间相互联接构成。每个节点代 表一种特定的输出函数,称为激励函数。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。人工神经网络是并行分布式系统,采用了与传统人工智能和信息处理技术完全不同的机理,克服了传统的基于逻辑符号的人工智能在处理直觉、非结构化信息方面的缺陷,具有自适应、自组织和实时学习的特点。
[0009]学习是神经网络研究的一个重要内容,它的适应性是通过学习实现的。根据环境的变化,对权值进行调整,改善系统的行为根据学习环境不同,神经网络的学习方式可分为监督学习和非监督学习。在监督学习中,将训练样本的数据加到网络输入端,同时将相应的期望输出与网络输出相比较,得到误差信号,以此控制权值连接强度的调整,经多次训练后收敛到一个确定的权值。当样本情况发生变化时,经学习可以修改权值以适应新的环境。非监督学习时,事先不给定标准样本,直接将网络置于环境之中,学习阶段与工作阶段成为一体。此时,学习规律的变化服从连接权值的演变方程。
[0010]基于此,现提供一种可生成高质量的测试数据,降低测试数据总数并能降低软件开发成本的基于神经网络的测试数据生成方法。

【发明内容】

[0011]本发明的技术任务是解决现有技术的不足,提供一种可生成高质量的测试数据、基于神经网络的测试数据生成方法。
[0012]本发明的技术方案是按以下方式实现的,该一种基于神经网络的测试数据生成方法,其具体实现过程如下:
1)训练阶段:
测试数据生成器生成的测试数据一方面通过度量分析提取测试数据指数,另一方面通过评价器得到测试数据揭示的故障类别;由一系列测试数据指数及对应的故障类别组成神经网络的学习样本,采用学习算法实施神经网络训练,训练完毕得到训练好的神经网络;
2)预测阶段:
由评价器生成测试数据,经过度量分析提取测试数据指数,将其输入到训练好的神经网络,得到测试数据的揭错等级,并据此对测试数据进行取舍处理。
[0013]所述测试数据是测试数据生成器使用随机法生成,该测试数据输入到被测软件后得到相应的输出结果,大量输入输出结果组成步骤I)中所述的学习样本。
[0014]所述评价器用于正确判断一个测试数据是否导致被测软件出现故障,若出现故障属于何种类别的故障,该评价器通过软件故障模式分析、构建测试数据故障模型库实现。
[0015]所述学习算法为BP算法。
[0016]本发明与现有技术相比所产生的有益效果是:
本发明的一种基于神经网络的测试数据生成方法通过训练和测试后,能够生成高质量的测试数据,并尽可能的降低测试数据总数,从而降低软件开发成本,实用性强,易于推广。
【专利附图】

【附图说明】
[0017]附图1为本发明的训练阶段流程图。
[0018]附图2是本发明的预测阶段流程图。
【具体实施方式】[0019]下面结合附图对本发明的一种基于神经网络的测试数据生成方法作以下详细说明。
[0020]如附图1、图2所示,现提供一种基于神经网络的测试数据生成方法,该方法中的人工神经网络用英文缩写ANN表示,通过ANN预测得到测试数据的揭错能力选用测试数据,以减少测试数据数量。
[0021]其具体实现过程如下:
一、训练阶段。
[0022]测试数据生成器生成的测试数据一方面通过度量分析提取测试数据指数,另一方面通过评价器得到测试数据揭示的故障类别。由一系列测试数据指数及对应的故障类别组成ANN的学习样本,采用学习算法实施ANN训练,训练完毕得到训练好的ANN。这里的学习算法是指BP算法。
[0023]预测阶段。
[0024]由评价器生成测试数据,经过度量分析提取测试数据指数,将其输入到训练好的ANN,得到测试数据的揭错等级,并据此对测试数据进行取舍处理。
[0025]训练阶段是对评价器的学习概括,预测阶段是对评价器的推广。评价器是ANN预测测试数据的关键。评价器能正确判断一个测试数据是否导致被测软件出现故障,若出现故障属于何种类别的故障。评价器可以通过软件故障模式分析,构建测试数据故障模型库实现。
[0026]上述方法中通过使用随机法生成大量测试数据,输入到被测软件得到相应的输出结果。将此大量输入输出结果组成学习样本,通过对ANN进行构建、训练、裁减和规则抽取,析取出输入和输出的相互影响,得到精简的测试数据集。如果生成测试数据需要不断运行被测系统。单元测试时,驱动单元的运行比较可行,但对复杂的系统测试,不断运行目标系统,存在效率低、成本高、甚至不可行的问题。为解决该问题,可采用ANN构建系统模型,替代目标系统,评价测试数据。学习样本集通过随机法生成的功能测试数据及其输出获得。
[0027]ANN在软件测试中的应用主要体现在两个方面:
(I)将ANN作为分类器,预测测试数据的揭错能力,据此选用、精简测试数据集。
[0028](2) ANN用作系统逼近器,代替真实的被测系统实施软件测试。ANN无论是作为分类器,还是作为逼近器,都需要准备大量的学习样本,精心的评价器设计、网络结构选取和复杂的学习训练,只有通过训练才能得到精简的测试数据集,生成高质量的测试数据集,测试数据的自动生成对软件测试显然是非常重要的,同样对整个软件开发过程也是关系密切的。
[0029]以上所述仅为本发明的实施例而已,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于神经网络的测试数据生成方法,其特征在于其具体实现过程如下: 1)训练阶段: 测试数据生成器生成的测试数据一方面通过度量分析提取测试数据指数,另一方面通过评价器得到测试数据揭示的故障类别;由一系列测试数据指数及对应的故障类别组成神经网络的学习样本,采用学习算法实施神经网络训练,训练完毕得到训练好的神经网络; 2)预测阶段: 由评价器生成测试数据,经过度量分析提取测试数据指数,将其输入到训练好的神经网络,得到测试数据的揭错等级,并据此对测试数据进行取舍处理。
2.根据权利要求1所述的一种基于神经网络的测试数据生成方法,其特征在于:所述测试数据是测试数据生成器使用随机法生成,该测试数据输入到被测软件后得到相应的输出结果,大量输入输出结果组成步骤I)中所述的学习样本。
3.根据权利要求1所述的一种基于神经网络的测试数据生成方法,其特征在于:所述评价器用于正确判断一个测试数据是否导致被测软件出现故障,若出现故障属于何种类别的故障,该评价器通过软件故障模式分析、构建测试数据故障模型库实现。
4.根据权利要求1所述的一种基于神经网络的测试数据生成方法,其特征在于:所述学习算法为BP算法。
【文档编号】G06N3/02GK103995775SQ201410214122
【公开日】2014年8月20日 申请日期:2014年5月20日 优先权日:2014年5月20日
【发明者】曹玲玲, 杨晋博, 潘睿 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1