[发明专利]基于输入参数特征谱的软件缺陷定位方法有效
申请号: | 201410161786.5 | 申请日: | 2014-04-21 |
公开(公告)号: | CN103914386B | 公开(公告)日: | 2017-08-04 |
发明(设计)人: | 王瑞;田宇立;李宁;张延园;李战怀 | 申请(专利权)人: | 西北工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 西北工业大学专利中心61204 | 代理人: | 王鲜凯 |
地址: | 710072 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于输入参数特征谱的软件缺陷定位方法,——基于程序输入参数特征谱的软件缺陷定位方法。使用了程序输入参数特征谱和执行切片信息进行软件缺陷定位。对程序参数特征谱进行分析时,为了得到更加精确的结果,将每个参数域划分为多个子域进行统计分析。执行切片信息主要用来构建程序执行依赖图,这是对传统SBFL方法的有效补充。本方法与已有的缺陷定位方法相比,可以有效提高缺陷定位的准确性至少10%以上。此外,该方法给缺陷修复者提供可疑语句的同时,提供了导致该语句可疑的参数和可疑区间,这些信息非常有助于缺陷的快速修复。 | ||
搜索关键词: | 基于 输入 参数 特征 软件 缺陷 定位 方法 | ||
【主权项】:
一种基于输入参数特征谱的软件缺陷定位方法,其特征在于步骤如下:步骤1:将每一个数值型参数的域进行区间离散化,将其划分为多个子域;所述数值型参数包括每个值本身就是一个子域的离散型数值,以及连续性数值;所述连续性数值的区间离散化,以下述公式计算出每个子域的步长Steplength以及每个子域i的取值区间,得到若干个子域,[Min+i*Steplength-Steplength2,Min+i*Steplength+Steplength2]]]>其中:Max和Min表示参数取值的最大值和最小值,|D|表示测试用例的个数,N是常量,表示每个子域包含参数取值个数的期望值;步骤2:以每个参数Pi在每个子域中的相关执行结果failed/passed统计信息作为输入参数特征谱,根据可疑度计算公式得出可疑度最大的参数以及其所对应的可疑度最大的子域区间:所述可疑度计算公式:Densityj=failjfail]]>Sensitivityj=failj/totaljfail/total]]>Suspiciousnessj=Densityj×SensitivityjSuspiciousness=Max(Suspiciousnessj)其中:fail表示执行失败的测试用例个数,total表示所有的测试用例个数,j表示该参数的第j个子域,failj表示第j个子域中执行失败的测试用例个数;Density表示失败密度,Sensitivity表示失败敏感度,Suspiciousness表示可疑度;步骤3:构建程序超级执行依赖图PSEDG;首先针对每个测试用例构建其程序依赖图,然后将所有测试用例的程序依赖图进行叠加构成PSEDG;步骤4:以第2步得到的可疑度最大的参数为图搜索的起点,在PSEDG中搜索可疑实体集合SSPN;步骤5:执行一种基础的基于程序特征谱的故障定位方法SBFL,得到一个按照可疑度降序排列的可疑实体列表;步骤6:采用下式计算每个可疑实体e最终的可疑度suspeSPRank,进而给出一个最终的降序排列的可疑实体列表;suspeSPRank=12suspe(basic)+12×flag×Max(susp(basic))]]>其中:flag表示e是否更加可疑的标识符,当e∈SSPN时,flag为1;否则flag为0;suspe(basic)为第5步中基础SBFL方法计算出的实体e的可疑度,Max(susp(basic))表示第5步计算得到所有实体的可疑度中的最大可疑度。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410161786.5/,转载请声明来源钻瓜专利网。