[发明专利]一种基于程序失效聚类分析的错误定位方法有效
申请号: | 201611097861.1 | 申请日: | 2016-12-03 |
公开(公告)号: | CN106598850B | 公开(公告)日: | 2019-05-28 |
发明(设计)人: | 张娜;王玉森;包晓安;赵泽丹 | 申请(专利权)人: | 浙江理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 郑海峰 |
地址: | 310018 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 程序 失效 聚类分析 错误 定位 方法 | ||
本发明提出的一种基于程序失效聚类分析的错误定位方法,从同一个错误引起的失效具有相似性触发,首先获取每次失效测试的执行切片,根据杰卡德距离公式计算执行切片之间的距离;根据K‐Means聚类算法对程序失效执行切片进行聚类,得到失效执行切片簇;然后根据跳转指令的运行时程序状态划分方法得到失效执行切片的程序状态序列图;根据程序状态序列图中函数嵌套调用次数的多少分别建立以基本块/行为单位的执行路径覆盖向量和覆盖矩阵;最后分别计算出各基本块/行的可疑度并降序排列、求出以基本块/行为单位的频繁集,根据基本块/行可疑度的大小以及其对应的频繁依次检查各基本块/行是否含有错误。
技术领域
本发明涉及软件工程中软件测试技术领域,尤其涉及程序失效聚类分析的错误定位的技术研究。
背景技术
近年来,软件发展日新月异,覆盖了日常生活、工作等社会各个层次。然而,软件缺陷的存在却经常导致信息系统的失效和崩溃,给系统的可信运行带来挑战。缺陷的产生,很大一部分是由编码阶段注入的软件错误导致的。“软件调试”是定位并排除软件错误的常用手段,也是软件开发过程中繁琐且易出错的过程,具有很高的自动化需求。“错误定位”指的是在已知程序失效的情况下定位错误代码的过程,是软件调试的首要步骤。精确的错误定位方法研究,一方面有利于缺陷的检测、诊断及修复,另一方面则可以降低软件测试及维护成本,对软件质量及可靠性的提高具有重要意义。
聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。聚类分析采用描述个体对(变量对)之间的接近程度的指标,例如“距离”,“距离”越小的个体(变量)越具有相似性。计算聚类距离指标D(distance)的方法非常多:按照数据的不同性质,可选用不同的距离指标。欧氏距离(Euclidean distance)、欧氏距离的平方(Squared Euclidean distance)、曼哈顿距离(Block)、切比雪夫距离(Chebychev distance)、卡方距离(Chi‐Square measure)等。采用聚类算法对程序失效进行聚类后,同一失效簇内的程序代码结构具有很大的相似性。然后对失效簇内的程序代码运用单一错误的错误定位方法进行错误定位,就可以实现扩大错误定位技术的应用范围目的。
本技术是对已有错误定位技术当高可疑代码和错误代码比较分散以及随着程序中错误数量的增多时定位效果不理想进行改进。采用聚类算法把程序失效分为不同的失效簇,同一个失效簇内的失效是由一个错误引起的;然后根据失效的所覆盖代码的状态序列采用不同的代码检查方式进行错误定位,从而提高错误定位的效率。
发明内容
本发明的目的是提供一种基于程序失效聚类分析的错误定位方法,以避免高可疑代码和错误代码跨函数体以及随着程序中错误数量增多错误定位效率降低的问题。
本发明的基于程序失效聚类分析的错误定位方法,包括以下步骤:
S1:收集每次失效执行覆盖的代码信息,一次失效执行所覆盖的代码行数的集合即为一个失效执行切片,采用杰卡德距离公式计算失效执行切片之间的距离;
S2:根据K-Means聚类算法对程序失效执行切片进行聚类,得到失效执行切片簇,同一失效簇内的失效所覆盖的代码具有较高的相似度;
S3:根据跳转指令的运行时程序状态划分方法绘出失效执行切片的程序状态序列图,程序状态序列图反映一次失效执行中函数嵌套调用的次数θ;
S4:根据程序状态序列图中函数嵌套调用次数θ分别建立以行/基本块为单位的执行路径覆盖向量和覆盖矩阵,并分别求其频繁集;频繁集是指失效执行中在所有覆盖向量上对目标基本块/行保持覆盖一致性的分量所对应的基本块/行的集合;
S5:分别计算出各基本块/行的可疑度并降序排列,根据基本块/行可疑度的大小以及其对应的频繁集依次检查各基本块/行是否含有错误。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江理工大学,未经浙江理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611097861.1/2.html,转载请声明来源钻瓜专利网。