含随机数软件测试数据生成问题的优化模型及进化求解的制作方法

文档序号:6543197阅读:368来源:国知局
含随机数软件测试数据生成问题的优化模型及进化求解的制作方法
【专利摘要】本发明公布了含随机数软件测试数据生成问题的优化模型及进化求解方法。软件测试的核心,是要在短时间内生成有效的测试数据。对于内部含有随机数等不确定参数的复杂软件,传统的测试数据生成方法往往难以奏效。本文首先给出含随机数软件的测试充分性准则,在此基础上建立了含随机数软件测试数据生成问题的数学模型,并提出相应的进化优化求解方法。
【专利说明】含随机数软件测试数据生成问题的优化模型及进化求解
【技术领域】
[0001]本发明涉及含随机数软件的测试问题,设计了含随机数软件测试数据生成问题的优化模型及进化求解方法。含随机数软件在运行时行为具有很大的不确定性,因此,必须采用全新的方法进行研究。采用进化优化方法建立含随机数软件的数学模型时,个体适应值的表示和优劣比较都变得更为困难,生成有效测试数据的难度更大。本发明拟通过不确定优化、概率论和模糊数学等相关知识,给出含随机数软件的测试充分性原则,依此建立含随机数软件测试数据生成问题的不确定优化模型,并提出相应的进化求解方法,这些都将为复杂性软件的测试提供理论和方法上的支持,从而有效提高含随机数软件测试的质量,具有重要的推广应用价值。计算机软件有非常明确的产业需求,对国民经济和社会发展,以及国家安全具有非常重要的作用,其质量一直是业内非常关注且难以有效解决的问题。本发明的研究成果将应用于含随机数软件测试中,以提高软件测试效率,从而产生高可信度的软件,具有明显的经济效益和社会效益。
【背景技术】
[0002]计算机软件是信息产业的重要组成部分,对国民经济和社会发展起着至关重要的作用,其质量一直是人们非常关注的问题。这是因为,劣质软件不但导致高昂的维护成本,而且还可能导致用户的巨额财产损失甚至严重的国家安全和环境问题。千年虫问题、迪斯尼的狮子王问题、阿丽亚娜5型火箭爆炸事件,以及风云一号卫星问题等就是最有力的说明。
[0003]软件测试是提高和保障软件质量的重要手段,在软件生命周期中占据重要的地位。已有研究数据显示,软件测试占开发成本的50%以上,包括:明确测试需求、准备测试数据、执行被测软件,以及评价与分析测试结果等诸多环节。对于一些要求高可靠、高安全的软件,测试费用可能相当于整个软件项目开发所有费用的3至5倍。由此可见,要成功开发出高质量的软件产品,必须加强和重视对软件的测试工作。而软件测试的核心,是采用有针对性的理论和方法,生成有效的测试数据,以满足既定的测试充分性准则。
[0004]现有的软件测试方法都是针对常规软件的。而现实中的软件内部往往含有随机数或其它不确定因素,从而导致软件在运行时行为具有很大的不确定性,具体表现为:利用相同输入多次执行程序,可能会穿越不同的路径、覆盖不同的语句,具有不同的输出等。对于内部含有随机数等不确定因素的复杂软件,传统的测试数据生成方法往往难以奏效。
[0005]目前,也有学者对运行结果具有不确定性的软件测试问题展开了研究,并产生了许多相关研究成果,但却很少是针对含随机数软件的。另一方面,随机数又广泛存在于实际的软件中,小至Windows包含的小游戏,大到Windows操作系统,以及各种网络软件等都需用到随机数,因此对含随机数软件测试数据生成问题的研究具有普遍的现实意义。

【发明内容】

[0006]软件测试自动化可以提高软件测试的效率和质量,自动生成测试数据是软件测试自动化的核心。对于内部含有随机数等不确定参数的复杂软件,传统的测试数据生成方法
往往难以奏效。
[0007]本发明针对含随机数被测软件,研究其基于进化优化的测试数据生成理论与方法,通过研究,拟给出含随机数软件可靠性测试充分性准则,为该类软件的测试提供理论依据和方法;建立含随机数软件测试数据生成问题的数学模型,把测试数据生成问题转化为不确定优化问题;提出相应的进化优化求解方法。
[0008]本发明所要解决的技术问题:本发明针对内部含有随机数的软件,给出了一种基于进化优化的测试数据生成理论与方法。首先,建立了含随机数软件的测试充分性准则;在此基础上,给出含随机数软件测试数据生成问题的随机规划模型,并提出了相应的进化求解方法;最后,把相应方法应用于实际的含有随机数的软件测试中,实验结果表明该方法生成的测试数据具有很高的覆盖率及检错能力。
[0009]本发明的技术解决方案:一种基于进化优化的测试数据生成理论与方法,其特征包含以下步骤:
[0010]步骤1:含随机数软件测试充分性理论研究。
[0011]首先,研究含随机数软件测试充分性基础理论与方法,为该类软件的测试提供支持。一个软件系统是否被充分测试依赖于所选取的测试充分性准则。如果软件内部包含随机数,那么测试数据所能覆盖的语句、穿越的路径以及输出的结果等都将变成随机的。因此,传统的测试充分性准则将不再适用。本发明拟以概率统计为工具,研究基于覆盖的含随机数软件测试充分性准则的合理描述方法,建立了立含随机数软件测试充分性准则的可靠性评价体系。
[0012]准则1:对给定的测试目标(语句、分支、路径等)集,在程序的输入空间寻找测试数据集,使得以该测试数据集为输入程序运行时,每个测试目标被执行的概率达到给定的阈值。
[0013]步骤2:含随机数软件测试数据生成问题的优化模型。
[0014]在步骤I给出的测试充分性准则的基础上,本部分研究含随机数软件测试数据生成问题的数学模型。鉴于含随机数软件测试数据生成问题的复杂性,我们拟采用优化算法对其进行求解,为此,需要把含随机数软件的测试数据生成问题建模为函数优化问题。
[0015]设以Xi为输入运行程序时,Tj被执行的概率为PriPQ 。那么运行测试数据集(X1, X2,…,XJ的所有元素后,Tj至少被执行一次的概率:
[0016]
【权利要求】
1.含随机数软件测试数据生成问题的优化模型及进化求解,其特征在于如下步骤: 步骤1.1:提出含随机数软件测试充分性准则,保障每个测试目标被测试数据集覆盖的概率大于设定的阈值; 步骤1.2:给出含随机数软件测试数据生成问题的随机优化模型,保障测试数据满足给定的测试充分性准。 步骤1.3:设计了一种个体适应值的近似计算方法,用遗传算法来对随机性软件测试数据生成问题进行进化求解。
2.权利要求1中步骤1.1所述的含随机数软件测试充分性准则,其特征在于本发明对给定的测试目标(语句,分支,路径等)集,在程序的输入空间寻找测试数据集,使得以该测试数据集为输入运行程序时,每个测试目标被执行的概率达到给定的阈值。这样,对于内部含有随机数软件,避免了测试数据覆盖目标语句受随机数影响带来的不确定性。 例如,以下列程序片段为例:
3.权利要求1中步骤1.2所述的含随机数软件测试数据生成问题的随机优化模型,其特征在于给出了目标函数和约束条件,从而保证可以保障满足给定的测试充分性准则。 设被测程序为G,程序G的的输入变量分别为Xl,X2,…,X1,则程序G的输入向量X=U1, X2,…,X1) ,G 包含 m 个测试目标 λ1, λ 2,..., λ m, ρ = {Χ2,X,..',XN}是一个包含 N 个测试数据的集合。若以{Χ”Χ2,…,XJ为输入数据运行程序,每个测试目标被覆盖的概率至少为q,则称该测试数据集的可信度为q。对给定的阈值l-α,(X1, X2,…,X1J是满足测试准则I的测试数据,当且仅当其可信度q ≥ l-α。另外,Q的值越大,该测试数据集就越接近测试充分性准则I的要求。因此,测试数据集H…,XJ的可信度是需要进行优化的目标。设以Xi为输入运行程序时,L被执行的概率为Pr (A)。那么运行测试数据集(X1, X2,…,XJ的所有元素后,Tj至少被执行一次的概率:
4.权利要求1中步骤1.3所述对随机性软件测试数据生成问题的进化求解方法,其特征在于以下步骤: 步骤4.1:个体表示方法 在遗传算法中,所求问题的一个可能解称为一个个体。在本发明中,优化问题(3)的决策变量是一个包含η个测试数据的集合{X” X2,…,XJ,因此,使用进化方法对该问题进行求解时,{Xi,X2,…,XJ就是一个个体,其中每个Xi对应被测程序的一个输入。设Xi=Uil, Xi2,…,Xil),那么个体(X1, X2,…,Xj可以用一个nX S的矩阵来表示:
【文档编号】G06F11/36GK103902455SQ201410139311
【公开日】2014年7月2日 申请日期:2014年4月8日 优先权日:2014年4月8日
【发明者】姚香娟, 巩敦卫, 王文亮, 李彬, 张功杰, 田甜 申请人:中国矿业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1