[发明专利]一种基于聚类不变式分析的错误定位方法无效
申请号: | 201110413498.0 | 申请日: | 2011-12-13 |
公开(公告)号: | CN102521130A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 陈林;吴迪;许蕾;徐宝文 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京天翼专利代理有限责任公司 32112 | 代理人: | 黄明哲 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 不变 分析 错误 定位 方法 | ||
1.一种基于聚类不变式分析的错误定位方法,其特征是收集程序执行过程中的语句频谱信息,计算各执行语句之间的距离,对程序执行的语句频谱信息进行聚类分析,将程序执行空间划分为多个类簇,对各个类簇分别计算与程序变量相关的不变式,执行新的测试用例,根据新的执行所对应的程序语句频谱将其划分至对应的类簇中,比较该测试用例执行结果与类簇中已有的不变式,如果新的执行违反了已有的不变式,则认为该次执行为一次错误执行,根据类簇信息完成错误定位。
2.根据权利要求1所述的一种基于聚类不变式分析的错误定位方法,其具体步骤如下:
1)按照程序执行的语句频谱信息对所有执行进行聚类划分,每个语句块的频谱作为聚类的数据对象,设共有n个数据对象,聚为k类:
11)计算任意两个测试用例的欧拉距离d(x,y),并由所有计算得到的距离构造集合U,由集合U中距离最近的两个数据对象形成集合Am,并从集合U中删除这两个对象,Am即为将要形成的聚类,其中m为集合下标,用于标识不同的聚类,初始为1;
12)在集合U中找到距离集合Am最近的数据对象,将其加入集合Am,并从集合U中删除该对象;
13)重复步骤12)直到集合中的数据对象个数大于等于n/k;
14)如果m<k,则m←m+1,再从集合U中找到距离最近的两个数据对象,构成集合Am,并从集合U中删除这两个数据对象,返回步骤12)执行;
15)将最终形成的k个集合中的数据对象分别进行算术平均,形成k个聚类中心;
2)根据聚类结果划分程序执行空间为多个类簇,对划分得到的各个类簇分别计算与程序变量相关的不变式,所述不变式包括:
21)这个变量第一次执行通过一条赋值表达式后的值;
22)为这个变量维护的一个不变式向量V,V中包含三个分量:第一个分量表示每次执行时这个变量的值与第一次被赋的值是否相同,相同取1,不同取0;第二个分量表示每次执行时这个变量的值是否与第一次被赋的值有相同的正负性,相同取1,不同取0;第三个分量表示每次执行时这个变量是否与第一次执行有相同的奇偶性,相同取1,不同取0;
23)这个变量最小上限值,若某次执行时该变量被赋的值大于这个最小上限,则将最小上限记为这个值;
24)这个变量的最大下限值,若某次执行时该变量被赋的值小于这个最大下限,则将最大下限记为这个值;
25)这个变量被赋值的次数;
26)这个变量的名字、其所在函数的名字及所在基本块的名字;
3)运行新的测试用例,收集新的执行所对应的语句频谱,根据聚类分析判断其所在的聚类类簇,对比该执行与其所在类簇的不变式,若产生错误,则判定此次执行出错,然后根据类簇的位置实现错误定位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110413498.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:滤波装置、天线开关模组和双模终端
- 下一篇:一种电器掉电延时记忆电路