[发明专利]一种基于程序失效聚类分析的错误定位方法有效
申请号: | 201611097861.1 | 申请日: | 2016-12-03 |
公开(公告)号: | CN106598850B | 公开(公告)日: | 2019-05-28 |
发明(设计)人: | 张娜;王玉森;包晓安;赵泽丹 | 申请(专利权)人: | 浙江理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 郑海峰 |
地址: | 310018 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提出的一种基于程序失效聚类分析的错误定位方法,从同一个错误引起的失效具有相似性触发,首先获取每次失效测试的执行切片,根据杰卡德距离公式计算执行切片之间的距离;根据K‐Means聚类算法对程序失效执行切片进行聚类,得到失效执行切片簇;然后根据跳转指令的运行时程序状态划分方法得到失效执行切片的程序状态序列图;根据程序状态序列图中函数嵌套调用次数的多少分别建立以基本块/行为单位的执行路径覆盖向量和覆盖矩阵;最后分别计算出各基本块/行的可疑度并降序排列、求出以基本块/行为单位的频繁集,根据基本块/行可疑度的大小以及其对应的频繁依次检查各基本块/行是否含有错误。 | ||
搜索关键词: | 一种 基于 程序 失效 聚类分析 错误 定位 方法 | ||
【主权项】:
1.一种基于程序失效聚类分析的错误定位方法,其特征在于包括以下步骤:S1:收集每次失效执行覆盖的代码信息,一次失效执行所覆盖的代码行数的集合即为一个失效执行切片,采用杰卡德距离公式计算失效执行切片之间的距离;S2:根据K‑Means聚类算法对程序失效执行切片进行聚类,得到失效执行切片簇,同一失效簇内的失效所覆盖的代码具有较高的相似度;S3:根据跳转指令的运行时程序状态划分方法绘出失效执行切片的程序状态序列图,程序状态序列图反映一次失效执行中函数嵌套调用的次数θ;S4:根据程序状态序列图中函数嵌套调用次数θ分别建立以行/基本块为单位的执行路径覆盖向量和覆盖矩阵,并分别求其频繁集;频繁集是指失效执行中在所有覆盖向量上对目标基本块/行保持覆盖一致性的分量所对应的基本块/行的集合;所述的步骤S4中根据程序状态序列图中函数嵌套调用次数θ对每条测试用例对应的执行分别建立以行/基本块为单位的执行路径覆盖向量和覆盖矩阵,所述的基本块为中间不存在控制跳转的连续代码语句,覆盖向量的量化方法如下:设执行轨迹的覆盖向量集合T=<t1,t2,…,tr>,所有覆盖向量的集合构成一个覆盖向量矩阵,其中ti表示第i次执行覆盖的信息构成的覆盖向量,T根据程序执行结果的不同,将T分为成功执行和失效执行两类,分别标记为Tp和Tf;覆盖向量ti=<e1,e2,…,es>
ej表示第i次执行覆盖的第j个基本块/行;步骤S4中建立频繁集的方法为:首先初始化tas(e)为单位向量,然后依次遍历e分量不为0的覆盖向量并将该覆盖向量与tas(e)进行向量的与操作,求得e频繁集,最后可得所有目标基本块/行的频繁集集合TAS,tas(e)表示以e为目标代码的频繁集;S5:分别计算出各基本块/行的可疑度并降序排列,根据基本块/行可疑度的大小以及其对应的频繁集依次检查各基本块/行是否含有错误;所述的步骤S5中根据基本块/行可疑度的大小以及其对应的频繁集依次检查各基本块/行是否含有错误的步骤如下:1)计算每个基本块/行的可疑度,并根据可疑度的大小降序排列,根据程序状态序列,查看程序函数调用次数是否小于θ,如果是转步骤2),否则转步骤4);2)从排序后的列表中依次检查基本块是否含有错误,如果定位出错误转步骤6),否则转步骤3);3)将没有错误的基本块作为目标基本块,依据覆盖信息矩阵求解其频繁集;将频繁集中的基本块依据其可疑度大小降序排列,依次检查各基本块是否含有错误,如果定位出错误转步骤6),否则转步骤2);4)从排序后的列表中依次检查各行是否含有错误,如果定位出错误转步骤6),否则转步骤5);5)将没有错误的行作为目标行,依据覆盖信息矩阵求解其频繁集;将频繁集中的各行依据其可疑度大小降序排列,依次检查各行是否含有错误,如果定位出错误转步骤6),否则转步骤4);6)统计已检查的基本块/行的数量。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江理工大学,未经浙江理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611097861.1/,转载请声明来源钻瓜专利网。