[发明专利]基于联合依赖概率建模的软件错误定位方法有效
申请号: | 201310099997.6 | 申请日: | 2013-03-26 |
公开(公告)号: | CN103198016A | 公开(公告)日: | 2013-07-10 |
发明(设计)人: | 苏小红;龚丹丹;马培军;王甜甜;赵玲玲;王煜 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 金永焕 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 联合 依赖 概率 建模 软件 错误 定位 方法 | ||
技术领域
本发明涉及计算机程序分析领域。
背景技术
随着计算机软件被广泛应用于经济、军事、商业等各个领域中,其可靠性问题日益得到人们的广泛重视。然而随着软件系统越来越复杂,软件经常不像人们预期的那样运行,换句话说,软件不总是可靠地运行,对计算机应用系统带来不利影响,甚至造成巨大的经济损失和灾难性的后果。因此,保证软件的高质量、高可靠性已成为系统开发和维护工作的一个不可或缺的重要方面。
导致软件不可靠的一个主要原因是程序源代码中的错误。程序设计是一项复杂的活动,很难推导程序中所有可能的执行路径,以及预见可能影响程序或被程序影响的环境因素。即使程序看起来正确执行,仍然可能存在极少情况下或特定条件满足时的错误。因此软件错误是目前亟需解决的一个问题。
软件测试和调试是软件开发过程中的重要阶段,它们协同工作可以有效识别并消除软件错误:测试用于暴露软件错误,调试用于消除这些软件错误。然而软件调试过程中消除软件错误的速度往往跟不上软件测试过程中发现软件错误的速度。目前已有很多自动化软件测试工具,然而,软件调试却大多采用人工分析的方法,这是一项很困难并且耗时的任务,因为:(1)首先要定位软件中的错误。在某些情况下,当开发人员在程序执行过程中发现软件错误时,可能已经离错误点很远了,需要花费大量的时间和精力来查找引起错误产生的程序代码。(2)其次要理解软件错误。定位软件错误仅仅是软件调试第一步,接下来必须通过适当地修改程序源代码来消除语句中的错误。在有些情况下,如何适当地修改语句不是很明显,需要开发人员人工分析调试环境来理解为什么某个语句是错误的,然后,寻找一种方法来修改代码中的错误,并且避免在修改过程中引入新的错误。
如果能实现软件自动化调试,即由计算机自动找到程序代码中的错误位置、分析错误原因、进而自动纠正错误,则可以更有效地确保软件可靠性。软件错误自动定位通过计算机来分析程序源代码或运行过程中产生的运行时状态,计算并分析程序中的异常情况,并将其独立出来作为可疑代码。将与软件错误无关的代码自动过滤掉,仅保留需要进一步调试的相关代码,可以缩小错误代码搜索的范围,来辅助开发人员更快地识别错误语句,有效提高调试的效率。因此,本发明目旨在针对软件可靠性实际应用背景和需求,研究软件错误自动定位,为软件调试和软件错误修正奠定理论基础,提高软件质量、确保软件高可靠性、提高软件的可理解和可维护性。
发明内容
本发明是要解决传统的软件错误定位方法定位精度低的问题,而提供了基于联合依赖概率建模的软件错误定位方法。
基于联合依赖概率建模的软件错误定位方法包括以下步骤:
步骤1:分别执行正确测试用例和错误测试用例,并分别对正确测试用例和错误测试用例建立联合依赖概率模型;
步骤2:在步骤1的基础上,根据联合依赖概率模型,计算每个节点的可疑度;
步骤3:将错误定位信息按可疑度进行降序排列,可疑度高的节点认定为更有可能出错的节点,即完成了对基于联合依赖概率建模的软件的错误进行定位。
发明效果:
本发明的基本思想是:节点的联合依赖可以很好的表示在不同执行状态下节点与其父节点之间的数据依赖关系,有助于进行错误定位。如果某个节点的联合依赖关系在错误测试用例执行过程中出现的频率较高,而在正确测试用例执行过程中出现的频率较低或没有出现,则该节点的联合依赖关系很可能是错误的。根据这一思想计算各语句的联合依赖关系的可疑度,进而有效定位软件错误。
本发明的基于联合依赖概率建模的软件错误定位方法,能够有效定位与数据依赖相关的软件错误。与错误定位方法SBI、SOBER、Tarantula相比,定位精度可提高15%以上,适用于大规模程序代码的错误定位技术领域。
附图说明
图1是本发明的方法的流程示意图;
图2是具体实施方式一建立联合依赖概率模型示意图;
图3是具体实施方式一程序控制流图和数据依赖图实例示意图;
图4是具体实施方式一程序控制依赖路径和数据依赖路径实例示意图。
具体实施方式
具体实施方式一:结合图1~图4说明本实施方式:本实施方式的基于联合依赖概率建模的软件错误定位方法包括以下步骤:
步骤1:分别执行正确测试用例和错误测试用例,并分别对正确测试用例和错误测试用例建立联合依赖概率模型;
步骤2:在步骤1的基础上,根据联合依赖概率模型,计算每个节点的可疑度;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310099997.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:智能翻译扫描笔
- 下一篇:硬盘故障检测方法及装置