[发明专利]基于距离度量和统计分析结合的软件故障定位系统及方法有效

专利信息
申请号: 201310132421.5 申请日: 2013-04-16
公开(公告)号: CN103268280A 公开(公告)日: 2013-08-28
发明(设计)人: 段振华;平永侠;田聪;张南;王小兵;罗玲 申请(专利权)人: 西安电子科技大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京科亿知识产权代理事务所(普通合伙) 11350 代理人: 汤东凤
地址: 710071 陕西省*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 距离 度量 统计分析 结合 软件 故障 定位 系统 方法
【说明书】:

技术领域

发明涉及软件安全保障领域,具体涉及一种实时地定位软件故障的系统,可用于对普遍性软件进行软件故障的定位。

背景技术

软件作为计算机的中枢神经已经延伸到现代社会的各个角落,一方面软件是设计师塑造的功能强大的工具,另一方面软件中寄生着各个Bug,顷刻间又变成了破坏力强大的敌人,这就是软件的“双重效应”。因此当软件故障发生后,快速找到导致软件出现故障的原因并且准确地更正软件故障,是软件质量保障课题的重中之重。由于这一过程要求分析人员对软件非常了解,同时又有较为丰富的故障分析经验,因此研究自动化的软件故障定位技术对软件安全保障领域有很大的意义。

自动化的软件故障定位的方法也是近年来人们研究的热点,研究方法大致可以分为四种:基于静态分析的软件故障定位方法、基于动态分析的软件故障定位方法、基于程序行为累积分析的软件故障定位方法和基于试验的软件故障定位方法。这四种故障定位方法分别从不同角度对软件进行分析来查找软件故障的位置,每一种方法分析的对象都不同,故障定位的能力和定位粒度也不同。其中:

1.基于静态分析的软件故障定位方法主要采用静态分析的手段,从软件失效发生的位置对源代码进行回溯分析,从而寻找可能引发软件失效的相关语句。静态定位的代表方法是程序切片。该方法是根据控制流或者数据流关系只关注程序中有用的程序片段。该过程需要使用者自行构造切片规则,找出感兴趣的关键点。在程序切片中切片规则的制定相当重要,因为它会影响故障定位的准确度。使用该方法进行定位故障的粒度较为精细,可以达到语句级或者变量级,但是不可否认当切片规则选取不恰当或者切片规则较多时,利用程序切片进行软件故障定位需要付出的代价也比较大。

2.基于动态分析的故障定位方法是一种基于程序的一次具体执行过程来观察程序行为的技术,主要包括日志分析技术和动态切片技术。其中日志分析技术是指在观察程序的具体执行时,通过在代码中添加日志记录语句,输出程序运行中发生事件的列表来帮助用户分析程序的执行过程。该方法属于较为原始的软件故障定位方法,分析的工作量大,添加的日志语句依赖于分析人员的经验;动态切片技术不同于静态的切片技术,它是基于一次具体的执行,研究对象为本次执行涉及到的代码片段,它经过控制流或者数据流关系动态地查找软件故障位置。同静态切片不同的是动态切片的针对性更强,具有实时性。但是动态切片仍属于程序切片的范畴,对切片规则的依赖仍然存在。

3.基于动态分析的软件故障定位方法是基于一次具体的执行过程,针对性很强,但是本次的执行只记录了当前状态下的执行信息,而基于程序行为累积分析的软件故障定位方法则包含多次执行过程的执行信息,这些丰富的数据和信息可以更全面的表达软件的行为,为分析软件故障位置提供原材料。该方法主要可以分为两大类:基于测试的软件故障定位方法和基于程序不变式的软件故障定位方法。程序不变式描述的是某个程序点上的变量之间在程序执行过程中保持不变的关系,且这种关系总是成立。由于查找不变式的技术发展不是很成熟,因此利用该方法进行软件故障定位具有很大的局限性;基于测试的软件故障定位方法是利用程序多次执行记录下的路径信息来分析软件故障的可疑位置。本发明中涉及的基于距离度量的软件故障定位方法和基于统计分析的软件故障定位方法均属于基于测试的软件故障定位方法,其中前者主要采用路径对比的方法,定位结果是部分语句的可疑度和非可疑度,定位过程具有实时性,但是对分支语句的定位较为准确并且结果不具备完备性;后者采用统计分析的方法,定位结果是几乎全部语句的可疑度,具备结果的完备性,但是由于是简单的统计分析,因此定位过程不具备实时性,适合定位的语句是顺序语句,对分支语句定位效果不是很好。

4.基于试验的软件故障定位方法根据程序多次的执行和试验来定位软件故障,代表方法是Delta调试。Delta调试通过自动多次运行程序,缩减成功执行和失效执行之间的差异,从而区分出引发失效的程序元素来完成故障定位。但是Delta调试的差异在缩减的过程中,无法考虑差异之间可能的关系,只是按照二分法切分差异,极容易产生无法判断的结果,另外该方法通过不停的询问以缩减可疑区域,整体来说代价较大。

发明内容

本发明的目的在于克服现有技术的不足,设计并实现一个可行的针对普遍性软件的软件故障定位系统,以完成自动化的软件故障定位过程,从而帮助程序开发人员快速而准确的定位软件故障。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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