[发明专利]一种基于贝叶斯网络推理的软件错误分层诊断方法有效
申请号: | 201710048225.8 | 申请日: | 2017-01-20 |
公开(公告)号: | CN107025169B | 公开(公告)日: | 2020-08-21 |
发明(设计)人: | 余啸;刘进;殷晓飞;崔晓辉;施泽洋;井溢洋 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 贝叶斯 网络 推理 软件 错误 分层 诊断 方法 | ||
本发明涉及一种基于贝叶斯网络推理的软件错误分层诊断方法,包括构建函数层,MIC理论的应用,提高统计依赖的准确度,改进并应用Laplace平滑策略,解决测试数据稀松性。进行测试预言,判断某测试用例对整个程序是否为失败测试用例。进行错误定位,计算函数的可疑度并排序,构建对应函数的语句层BNPDG,按可疑度排序对函数进行逐一检查,在函数的语句层BNPDG上进行测试预言,找到bug函数,在其语句层BNPDG上进行错误定位,得到函数中所有语句的可疑度排序。按照可疑度排序对语句进行逐一检查,直到找到bug语句。本发明减少了错误诊断的空间消耗和时间消耗。解决了RankCP等技术中计算的局部可疑度存在的问题。
技术领域
本发明属于软件工程软件测试技术领域,特别是涉及一种基于贝叶斯网络推理的软件错误分层诊断方法。
背景技术
(1)软件测试技术
一个完整的软件开发周期分为六个阶段:问题的定义与规划、需求分析、软件设计、程序编码、软件测试与运行维护。其中,软件测试作为软件面向用户前的最后一个步骤,决定着软件的质量,在整个软件开发周期中显得尤为重要。伴随商业软件的不断发展,软件的复杂度越来越高,开发周期越来越短,用户对软件的要求也越来越严格,这无疑更进一步提升了软件测试的重要程度。软件测试包含三个主要任务:测试、调试和验证。其中调试工作最为困难,最为耗时,需要的代价也最高。因为,测试和验证过程通常采用黑盒方式进行,只需要考察软件在特定输入下是否产生了正确的输出结果,不需要涉及从输入到输出的复杂过程。然而,调试过程需要定位软件缺陷在代码中的具体位置,必须通过白盒方式完成。黑盒的测试和验证过程与代码量以及代码结构的复杂程度无关。然而,在白盒的调试过程中,代码量的增大会导致调试时间和空间复杂度的增高。并且,复杂的代码逻辑结构也会增加调试的时间复杂度和难度。即白盒调试的复杂度与代码量以及代码结构的复杂程度呈正相关关系。
(2)程序错误诊断技术
程序错误诊断主要包含错误发现和错误定位两个过程,程序错误的最终修正得益于之前对错误的准确发现和快速定位。因此,程序错误诊断大致包含两个步骤:一是通过分析程序的动态执行行为,鉴别程序是否存在错误;二是一旦明确程序存在错误后,定位错误代码在程序中的具体位置。最初,调试人员完全依靠人工的方式对程序进行查错,例如在源代码中添加print语句、添加断言以及设置断点。这种错误诊断方法需要调试人员对代码充分了解,并且,错误诊断所耗费的时间依赖于调试人员的个人经验。面对大型程序,即使是有经验的调试人员,也无法在短时间内完成调试过程。后来,研究者们开始探索自动化的程序错误诊断技术,试图将乏味的代码调试工作交给电脑自动完成。目前,众多相关研究成果不仅在理论上得到证明,也已经在工业上投入使用,并取得了非常好的效果。
常见的自动化错误定位方法主要分为如下两类:
1)基于程序执行切片的方法。现阶段有人提出,执行切片指在某个特定测试用例下被执行的代码集合,该集合占所有代码量的百分比被称为该测试用例的代码覆盖。针对某个存在bug的程序,bug所处的代码语句被称为bug语句。该程序的某些测试用例由于执行了bug语句,即bug语句包含在相应的执行切片之中,所以会得到错误的输出结果,这些测试用例被称为失败的测试用例。某些测试用例由于未执行bug语句,即bug语句不包含在相应的执行切片之中,所以会得到正确的输出结果,这些测试用例被称为成功的测试用例。分析可知,失败测试用例的执行切片一定包含bug语句。基于此,通过计算多个不同失败测试用例的执行切片交集,可以缩小程序错误可能存在的代码范围。但是,简单通过这种方法得到的最终可疑代码范围仍然较大,因为大多数测试用例的代码覆盖都比较高,不同测试用例的执行切片拥有较大的交集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710048225.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:草坪灯(蘑菇形)
- 下一篇:梳子手柄(231型)