[发明专利]一种基于马尔可夫模型的软件错误定位系统及错误定位方法有效
申请号: | 201310308553.9 | 申请日: | 2013-07-20 |
公开(公告)号: | CN103455417A | 公开(公告)日: | 2013-12-18 |
发明(设计)人: | 张震宇;刘畅;张云乾 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 成金玉;杨学明 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 马尔可夫 模型 软件 错误 定位 系统 方法 | ||
技术领域
本发明属于软件调试技术领域,采用马尔可夫过程建立错误类型预测模型,根据预测结果从错误定位技术备选集中选择相应的错位定位技术来实施。
背景技术
计算机的应用日益广泛,但是计算机软件远没有达到零错误的要求。提高软件质量已经成为软件工程领域亟待解决的重要问题。调试软件错误首先需要定位错误定位。统计错误定位技术通过分析动态程序行为来定位程序错误,对程序单元的可疑度进行预测。将运行失败测试用例取得的频谱信息与运行成功测试用例取得的频谱之间的差异性作为程序单元的可疑度评价的指标。当前大多数基于程序频谱的错误定位技术都是针对某种类型的程序单元及其程序频谱信息来建立统计模型。然而,目前的软件错误定位技术通常针对某种错误类型或程序单元而设计,在定位某类错误时具有稳定的准确性,但无一被证明具有一般意义的有效性。在现代软件研制过程中,受到新的开发技术、开发过程及编程环境等的影响,程序特征和错误类型愈来愈多。这种情况下,如果随机选择一种错误定位技术,可能会导致定位错误的效果不理想,而选择所有的定位技术进行尝试,代价过大。于是,如何选择一个最佳的错误定位技术就成了亟待解决的问题。
与此同时,由实践经验可知,单元测试中发现的错误的类型和属性是相关的。因此,当某种错误定位技术能够准确定位某个错误时,对于同一待测程序中存在的其他错误也具有较好的效果。基于以上情况,本发明提出了集成多错误定位技术进行错误定位的方法,对基于不同类型频谱的错误定位技术的结果进行集成,有效地提高定位效果。
本发明在此基础之上,将多个错误定位技术作为备选集,在单元测试环境中使用马尔可夫模型预测错误类型并选择合适的技术来实施,相比以往的单技术方法能够更准确地定位到软件错误。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于马尔可夫模型的软件错误定位方法,更快、更准确地实现了软件错误定位。
本发明技术的解决方案是:一种基于马尔可夫模型的软件错误定位系统,如图1所示,包括:
测试信息获取模块:用户(测试工程师)使用gcc(gcov)或llvm等编译系统软件对被测试程序进行插装,统计程序语句执行次数等信息。用户(测试工程师)编写并运行测试用例,将获得的测试用例执行成功与否、程序每个语句执行的次数等测试信息保存到excel文件中,然后将excel文件中的测试信息通过图形交互界面模块存储到数据库模块的数据库中。进行错误定位的首先要运行测试用例,根据有无失败的测试用例判断程序中有无错误,需不需要进一步实施错误定位。
自定制模块:本发明系统及发明方法,需要用户注册用户账号,登录进入错误定位系统。在自定制模块中,用户选择错误定位技术构成错误定位技术备选集,并在图形交互界面中选择这些错误定位技术,如系统中尚没有某些错误定位技术,用户可通过图形交互界面添加这些错误定位技术到数据库,最终将错误定位技术备选集保存到数据库中。因本发明方法解决的问题是现在不存在一种错误定位技术能够普遍高效的定位错误,因而在选择错误定位技术组成备选集时,不做特别的要求,选择当前一些定位错误效果较佳的错误定位技术即可,这点体现本发明方法的普遍适用性。结合备选集中的错误定位技术将软件中出现的错误分类,鉴于不同技术在定位不同类型错误时的准确度不同,花费的代价不同,且目前尚无通用的错误类型描述手段,本发明不失一般性地使用错误定位技术来对错误进行分类。在自定制模块需用户在图形界面上确定被定位的程序及其版本,并保存到数据库中。自定制模块的具体实施是用户通过图形交互界面模块与数据库模块之间配合完成的。
图形交互界面模块:图形交互界面模块负责用户沟通测试信息获取模块、自定制模块、一步转移概率矩阵模块、错误定位模块、错误修正模块及数据库模块,具体实现其余各模块对数据库的操作。图形交互界面模块具体完成以下工作:用户登录自己的账号,如没有账号则需注册新的账号;用户根据自定制模块构建的错误定位技术备选集在图形交互界面选择或添加相应的错误定位技术,根据自定制模块确定要进行错误定位的程序版本,选择相应版本的程序进行错误定位;图形交互界面显示一步转移概率矩阵模块中的一步转移概率矩阵;图形交互界面显示错误定位模块预测的当前错误的类型并进一步确定当前错误的类型,确定当前错误类型后更新数据库中的错误历史序列,进而触发一步转移概率矩阵模块中更新一步转移概率矩阵的事件,并及时显示在图形交互界面上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310308553.9/2.html,转载请声明来源钻瓜专利网。