[发明专利]基于状态依赖概率建模的软件错误定位方法有效
申请号: | 201310099998.0 | 申请日: | 2013-03-26 |
公开(公告)号: | CN103150254A | 公开(公告)日: | 2013-06-12 |
发明(设计)人: | 苏小红;龚丹丹;王甜甜;马培军;王煜;赵玲玲 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 金永焕 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 状态 依赖 概率 建模 软件 错误 定位 方法 | ||
技术领域
本发明涉及计算机程序分析领域。
背景技术
传统的软件错误定位方法大多采用设置断点等人工分析的方法,人工定位错误不仅难度大,而且极其耗时。要准确定位软件中的错误是极其困难的。当开发人员在程序执行过程中发现软件错误时,一方面,要么错误的症状与导致错误的根源(程序代码)可能相距甚远,要么很难产生完全一样的输入条件,使得“错误的现场”难以恢复,要么错误时隐时现,甚至可能在另一个错误被修正后暂时消失,导致某些错误难以被及时捕捉,而另一方面,在一个大型软件中一个错误的测试用例所覆盖的语句数量又往往是非常庞大的,这就使得程序开发人员需要花费大量的时间和精力来查找和定位产生错误的程序代码。软件错误自动定位的目的就是通过计算机分析程序源代码或程序运行过程中产生的运行时状态,检测程序中的异常情况,并将其独立出来作为需要进一步调试的可疑代码,从而将与软件错误定位无关的代码自动过滤掉,缩小错误代码的搜索范围,辅助开发人员快速有效地定位软件错误。
传统的统计分析方法通常能揭示统计关联(变量的联合分布),而不能充分分析程序元素间的相互影响。当软件错误涉及多个程序元素间复杂交互的情况下,可能定位不到错误语句。此外,现有方法通常只检测可疑程序语句或谓词,缺少对错误行为状态的描述,需要由开发人员进一步判定是否存在错误。由于错误可能起源于失效点之前的任何位置,因此仅通过孤立的可疑语句或谓词来理解软件错误的产生原因是很困难的,也是不准确的。
发明内容
本发明是要解决传统的软件错误定位方法定位精度低的问题,而提供了基于状态依赖概率建模的软件错误定位方法。
基于状态依赖概率建模的软件错误定位方法包括的具体步骤如下:
步骤1:分别执行正确测试用例和错误测试用例,并分别对正确测试用例和错误测试用例建立状态依赖概率模型;
步骤2:在步骤1的基础上,根据状态依赖概率模型,计算每个节点的可疑度;
步骤3:将错误定位信息按可疑度进行降序排列,可疑度高的节点认定为更有可能出错的节点,即完成了对基于状态依赖概率建模的软件的错误进行定位。
发明效果:
本发明的基于状态依赖概率建模的软件错误定位方法,能够有效定位与控制依赖相关的软件错误。与错误定位方法SBI、SOBER、Tarantula相比,定位精度可提高10%以上,适用于大规模程序代码的错误定位技术领域。
本发明的基本思想是:节点的状态依赖可以很好的表示节点的执行状态以及节点在各状态下的依赖关系,有助于进行错误定位。如果某个节点的状态依赖关系在错误测试用例执行过程中出现的频率较高,而在正确测试用例执行过程中出现的频率较低或没有出现,则该节点的状态依赖关系很可能是错误的。根据这一思想计算各语句在各个状态下的可疑度,进而有效定位软件错误。
附图说明
图1是本发明的流程示意图;
图2是具体实施方式一中步骤1中建立状态依赖概率模型示意图;
图3是具体实施方式一中程序控制流图实例示意图;
图4是具体实施方式一中程序控制依赖路径实例示意图。
具体实施方式
具体实施方式一:结合图1~图4说明本实施方式,本实施方式的基于状态依赖概率建模的软件错误定位方法包括的具体步骤如下:
步骤1:分别执行正确测试用例和错误测试用例,并分别对正确测试用例和错误测试用例建立状态依赖概率模型;
步骤2:在步骤1的基础上,根据状态依赖概率模型,计算每个节点的可疑度;
步骤3:将错误定位信息按可疑度进行降序排列,可疑度高的节点认定为更有可能出错的节点,即完成了对基于状态依赖概率建模的软件的错误进行定位。
本实施方式效果:
本实施方式的基于状态依赖概率建模的软件错误定位方法,能够有效定位与控制依赖相关的软件错误。与错误定位方法SBI、SOBER、Tarantula相比,定位精度可提高10%以上,适用于大规模程序代码的错误定位技术领域。
本实施方式的基本思想是:节点的状态依赖可以很好的表示节点的执行状态以及节点在各状态下的依赖关系,有助于进行错误定位。如果某个节点的状态依赖关系在错误测试用例执行过程中出现的频率较高,而在正确测试用例执行过程中出现的频率较低或没有出现,则该节点的状态依赖关系很可能是错误的。根据这一思想计算各语句在各个状态下的可疑度,进而有效定位软件错误。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310099998.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:集装卸料、测量和辊轧于一体的叶片辊轧系统
- 下一篇:CQFP器件引脚成型模