[发明专利]一种基于变量切片和关联规则的软件错误定位方法有效

专利信息
申请号: 201710216886.7 申请日: 2017-04-05
公开(公告)号: CN106951372B 公开(公告)日: 2020-06-16
发明(设计)人: 王曙燕;孙家泽;罗丹 申请(专利权)人: 西安邮电大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京汇信合知识产权代理有限公司 11335 代理人: 吴甘棠
地址: 710000 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 变量 切片 关联 规则 软件 错误 定位 方法
【权利要求书】:

1.一种基于变量切片和关联规则的软件错误定位方法,其特征在于包括以下步骤:

(1)对于一个包含错误且可执行代码总行数为n的Java程序Pfault进行预处理,得到系统依赖图;在系统依赖图上针对Pfault中某一条包含m个变量的语句进行变量切片,得到程序切片数据VarSlice.dot;

VarSlice.dot文件由集合T表示为T={fname,label,fillcolor,Si→Sj},其中fname为Pfault中执行变量切片语句所属方法的名称;label为变量切片语句,label=VarNumi:var=value,其中VarNumi为切片行号,1≤i≤n,var为变量名,value为变量值;fillcolor表示语句是否包含在变量切片结果内,fillcolor={yellow,gray},yellow表示该语句属于变量切片执行结果,gray表示该语句不属于变量切片执行结果;Si→Sj为语句Si和Sj的依赖指向关系;执行一次变量切片可以获得一个.dot文件,将每个.dot文件中fillcolor取yellow值的label所对应的变量切片行号集合VarNum作为.txt文件的一条记录,其中VarNum={VarNum1,VarNum2...VarNumi,...VarNumn};从所有变量切片数据.dot文件中依次提取VarNum,构成变量切片行号信息VarSlice.txt,该信息的记录数为执行变量切片的次数;

(2)将VarSlice.txt作为事务数据库D,通过扫描D计算每个变量切片行号VarNumi的频数SliceNum1,每个VarNumi都是候选1项集的集合C1的成员;假设最小支持度计数为Min_Support,可以确定频繁1项集的集合L1,它由满足SliceNum1≥Min_Support的候选1项集组成;使用连接操作L1×L1产生候选2项集的集合C2,它由个2项集组成;扫描D中事务,累计C2中每个候选项集的支持计数SliceNum2,然后确定频繁2项集的集合L2,它由C2中满足SliceNum2≥Min_Support的候选2项集组成;令C3=L2×L2,从C3中删除具有非频繁子集的候选项集,再累计C3中每个候选项集的支持计数SliceNum3,扫描D中事务确定频繁3项集的集合L3,L3由C3中满足SliceNum3≥Min_Support的候选3项集组成;以此类推,利用产生候选集的连接步Li×Li和删除具有非频繁子集的候选集的剪枝步逐层搜索,直至Ci=φ终止,即得到了所有的频繁项集FreVarSlice={C1,C2,C3,...Ci-1};

(3)对于每个频繁项集Cj,1≤j≤i-1,可以得到2j-2个非空真子集s,假设最小置信度为Min_Confidence,支持度计数为Support_Count,若满足则获取到语句之间蕴含的关联规则RelateListi,表示为以及关联规则数目RelateListNum;

(4)将所有关联规则TotalRelateList={RelateList1,RelateList2,...RelateListi,...RelateListNum}按照置信度由高到低的次序重新排列,可以得到排序关联规则SeqRelateList={RelateList1',RelateList2',...RelateL isti',...RelateListNum'},其中第i条关联规则RelateListi'表示为

(5)对步骤(4)的排序关联规则SeqRelateList进行分类,置信度相同的划分为同一类,形成集合{Confidence1=VarNum1,VarNum11,...VarNum1i;Confidence2=Va rNum2,VarNum22,...VarNum2i;...Confidencek=VarNumk,VarNumkk,...VarNumki},其中根据置信度的排列顺序生成检查语句优先级次序InSequence={VarNum1,VarNum11,...VarNum1i;VarNum2,VarNum22,...VarNum2i;...VarNumk,VarNumkk,...VarNumki};

(6)对于未在关联规则内的语句按照支持度由高到低进行排列并分类,支持度相同的划分为同一类,形成集合{Support(k+1)=VarNum(k+1),VarNum(k+1)(k+1),...VarNum(k+1)j;Support(k+2)=VarNum(k+2),VarNum(k+2)(k+2),...VarNum(k+2)j;...Support(k+m)=VarNum(k+m),VarNum(k+m)(k+m),...VarNum(k+m)j},其中Support(k+m)∈SliceNum1;根据支持度的排列顺序生成关联规则外的检查语句优先级次序OutSequence={VarNum(k+1),VarNum(k+1)(k+1),...VarNum(k+1)j;VarNum(k+2),VarNu m(k+2)(k+2),...VarNum(k+2)j;...VarNum(k+m),VarNum(k+m)(k+m),...VarNum(k+m)j};

(7)依据步骤(5)和步骤(6)得到总的检查语句优先级次序PrioritySequence=InSequence∪OutSequence,依据语句优先级次序越靠前越优先被检查的原则,可以定位到程序Pfault中错误出现的具体位置。

2.根据权利要求1所述的一种基于变量切片和关联规则的软件错误定位方法,其特征在于:该方法可以应用于Java程序错误定位,以提高软件错误定位的效率,降低软件测试成本。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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