[发明专利]含随机数软件测试数据生成问题的优化模型及进化求解有效
申请号: | 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个测试目标λ1,λ2,…,λ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-α,只要保证 这里
基于以上讨论,算法的终止条件为:达到给定的阈值,或者算法运行到最大代数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410139311.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:测试脚本处理装置、系统及方法
- 下一篇:配置松缩管带的雨衣