[发明专利]含随机数软件测试数据生成问题的优化模型及进化求解有效

专利信息
申请号: 201410139311.6 申请日: 2014-04-08
公开(公告)号: CN103902455A 公开(公告)日: 2014-07-02
发明(设计)人: 姚香娟;巩敦卫;王文亮;李彬;张功杰;田甜 申请(专利权)人: 中国矿业大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 暂无信息 代理人: 暂无信息
地址: 221116 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 随机数 软件 测试数据 生成 问题 优化 模型 进化 求解
【权利要求书】:

1.含随机数软件测试数据生成问题的优化模型及进化求解,其特征在于如下步骤: 

步骤1.1:提出含随机数软件测试充分性准则,保障每个测试目标被测试数据集覆盖的概率大于设定的阈值; 

步骤1.2:给出含随机数软件测试数据生成问题的随机优化模型,保障测试数据满足给定的测试充分性准。 

步骤1.3:设计了一种个体适应值的近似计算方法,用遗传算法来对随机性软件测试数据生成问题进行进化求解。 

2.权利要求1中步骤1.1所述的含随机数软件测试充分性准则,其特征在于本发明对给定的测试目标(语句,分支,路径等)集,在程序的输入空间寻找测试数据集,使得以该测试数据集为输入运行程序时,每个测试目标被执行的概率达到给定的阈值。这样,对于内部含有随机数软件,避免了测试数据覆盖目标语句受随机数影响带来的不确定性。 

例如,以下列程序片段为例: 

如果选取测试数据集{-18,-27,-10,-23,-2,-15,-9,15,3,5,19,19},就可以保证每个目标被覆盖的概率至少为0.9,而且对目标语句1和2,平均被覆盖的次数为5×0.5=2.5;目标语句3平均被覆盖的次数为7×0.3=2.1;目标语句4平均被覆盖的次数为7×0.7=4.9。虽然得到的测试数据集不能保证每个测试目标一定会被覆盖,但可以保证每个测试目标被覆盖的概率大于设定的阈值。 

3.权利要求1中步骤1.2所述的含随机数软件测试数据生成问题的随机优化模型,其特征在于给出了目标函数和约束条件,从而保证可以保障满足给定的测试充分性准则。 

设被测程序为G,程序G的的输入变量分别为x1,x2,…,xl,则程序G的输入向量X=(x1,x2,…,xl),G包含m个测试目标λ12,…,λm,是一个包含n个测 试数据的集合。若以{X1,X2,…,Xn}为输入数据运行程序,每个测试目标被覆盖的概率至少为q,则称该测试数据集的可信度为q。对给定的阈值1-α,{X1,X2,…,Xn}是满足测试准则1的测试数据,当且仅当其可信度q≥1-α。另外,q的值越大,该测试数据集就越接近测试充分性准则1的要求。因此,测试数据集{X1,X2,…,Xn}的可信度是需要进行优化的目标。 

设以Xi为输入运行程序时,Tj被执行的概率为那么运行测试数据集{X1,X2,…,Xn}的所有元素后,Tj至少被执行一次的概率:测试数据集{X1,X2,…,Xn}的可信度为我们就把q的值作为决策变量S={X1,X2,…,Xn}的目标函数,记为f(X1,X2,…,Xn),即 

对给定的测试目标T1,T2,…,Tm,满足步骤1.1的准则的测试数据生成问题优化模型如下: 

其中。

4.权利要求1中步骤1.3所述对随机性软件测试数据生成问题的进化求解方法,其特征在于以下步骤: 

步骤4.1:个体表示方法 

在遗传算法中,所求问题的一个可能解称为一个个体。在本发明中,优化问题(3)的决策变量是一个包含n个测试数据的集合{X1,X2,…,Xn},因此,使用进化方法对该问题进行求解时,{X1,X2,…,Xn}就是一个个体,其中每个Xi对应被测程序的一个输入。设Xi=(xi1,xi2,…,xil),那么个体{X1,X2,…,Xn}可以用一个n×s的矩阵来表示: 

其中,每个输入变量xij采用实数或二进制编码,根据输入变量的类型决定。 

步骤4.2:个体适应值 

个体{X1,X2,…,Xn}的目标函数如式(3)所示。但是,一般情况下要确定的值并不容易,因此,直接利用式(3)计算个体适应值不太现实。下面给出个体适应值的近似计算方法。 

我们由以下引理和定理: 

引理1其中0≤xi≤1,i=1,…,n。 

定理1其中

令表示随机从{X1,X2,…,XN}中任取一个测试数据运行程序后能够覆盖测试目标Tj的概率,则

由定理1,个体{X1,X2,…,XN}的可信度因此,可以用q'代替q作为对个体{X1,X2,…,XN}的评价。但是,q'的真值依然不好得到。下面给出q'的估计值。 

设Yj表示集合{X1,X2,…,XN}中能够覆盖测试目标Tj的元素个数。令 

则Yj=Z1j+Z2j+…+ZNj。故 

因此,是的无偏估计量,记为fe(Tj)。我们可以用fe(Tj)作为对p(Tj)的估计值。这样,个体{X1,X2,…,XN}的适应值就转化为 

步骤4.3:遗传操作 

(1)交叉算子 

这里采用单点交叉的方式。设M1和M2是两个个体,随机选择两个随机数H和L,其中1≤H≤n,1≤L≤l。令 

其中,M(i,j)表示矩阵M的第i行第j列元素。这样,可以得到两个新个体M'1和M'2。 

(2)变异算子 

这里采用两种变异方式,一种是常规变异,一种是拉伸变异。 

常规变异:设M是一个个体,随机选择四个随机数H1、H2、L1和L2,其中1≤H1,H2≤n,1≤L1,L2≤l。对满足H1≤i≤H2且L1≤j≤L2的个体xij实施变异。具体的变异方式根据个体的编码方式决定。 

拉伸变异:设M={X1,X2,…,Xn}是一个包含n个输入的测试数据集,随机生成k个新的输入数据Xn+1,…,Xn+k,令M'={X1,X2,…,Xn,Xn+1,…,Xn+k},则称这种变异方法为拉伸变异,而M'是由M经过拉伸变异得到的新个体,k称为拉伸强度。 

需要指出的是,本算法中,每一代个体都要实施常规变异,而拉伸变异用于改变测试数据集的容量,只有在合适的时机才会实施该种变异。 

(3)选择算子 

本算法中的个体是一个集合。为了减少计算量并加快算法收敛速度,我们采用贪心方式对个体进行选择。设第i代种群为Popi,经过交叉、变异后得到的新个体组成的集合为Pop'i,令Total=Popi∪Pop'i,再从Total中选择最好的个体组成下一代种群Popi+1。 

步骤4.4:算法终止条件 

对给定的阈值1-α,由4.2节讨论可知,要使个体{X1,X2,…,Xn}的可信度q≥1-α,只需令则得到 

(1-(1-p)n)≥1-α 

解得: 

也就是说,对给定的n,要使个体{X1,X2,…,Xn}的可信度达到给定的阈值1-α,只要保证 这里

基于以上讨论,算法的终止条件为:达到给定的阈值,或者算法运行到最大代数。 

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410139311.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top