[发明专利]一种软件测试数据扩增方法在审
申请号: | 201610027217.0 | 申请日: | 2016-01-15 |
公开(公告)号: | CN105718368A | 公开(公告)日: | 2016-06-29 |
发明(设计)人: | 王曙燕;孙家泽;温春琰;王小银;王燕 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710061 陕西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种软件测试数据扩增方法,针对原有测试数据集难以满足新版本软件测试需求的问题,首先分析新版本程序的代码,提取出待测程序的所有路径和路径条件;然后根据路径条件判定原有测试数据的穿越路径,并与新版本程序需要覆盖的目标路径构建相似矩阵,依据相似矩阵在原有测试数据中选择合适的测试数据作为初始的进化种群;最后再根据原有测试数据的穿越路径和目标路径不同子路径节点所对应的输入分量,确定自适应粒子群算法操作进化个体的位置,进而生成新的测试数据。本发明结合白盒测试技术与自适应粒子群算法进行软件测试数据扩增,从而在测试数据集的扩增方面具有较高的效率和稳定性。 | ||
搜索关键词: | 一种 软件 测试数据 扩增 方法 | ||
【主权项】:
一种软件测试数据扩增方法,其特征在于包括以下步骤:(1)使用Soot代码分析工具,将新版本程序P转化成一种类型化的三地址码Jimple,从中提取出程序P中的所有路径Ppath和路径条件PC;(2)根据路径条件PC判定测试数据集T的穿越路径Pcross,并由Ppath‑Pcross得到新版本程序P需要覆盖的目标路径Ptarget;(3)采用路径的相似性来衡量测试数据之间的相似度:对于程序P的路径pi和pj穿越的节点序列分别为
和
其中|pi|为路径pi穿越的节点个数,|pj|为路径pj穿越的节点个数,记路径pi和pj穿越的相同节点个数记为Nsame,则路径pi相对于pj的路径相似度记为S(pi,pj),可表示为:S(pi,pj)=Nsmae/|pj|所得的路径相似度即为测试数据之间的相似度;(4)根据步骤(3)中路径相似度计算方法,构建目标路径Ptarget与穿越路径Pcross的相似度矩阵
其中,m=|Pcross|,n=|Ptarget|,sij为测试数据ti的穿越路径p(ti)与目标路径
的相似度
1≤i≤m,1≤j≤n,若存在k∈{1,2,…,m},m=|Pcross|,使得
则选择第k行对应的测试数据tk作为测试数据扩增的初始测试数据;(5)根据选择出的测试数据tk的穿越路径p(tk)与目标路径
的不同子路径
结合步骤(1)从程序P提取出的路径条件PC,确定不同子路径Psub的节点所对应的输入分量;(6)利用测试数据t在程序P的穿越路径p(t)与目标路径Ptarget的相似度构建适应度函数![]()
其中
1≤i≤s,s=|Ptarget|,以步骤(4)选择的初始测试数据集作为输入,将自适应粒子群算法作用于步骤(5)确定的输入分量,进行迭代,生成新的测试数据;重复步骤(6),直至生成覆盖所有目标路径的测试数据集或达到最大迭代次数为止。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610027217.0/,转载请声明来源钻瓜专利网。