[发明专利]一种基于语句频度统计的程序错误定位方法有效
申请号: | 201410241885.4 | 申请日: | 2014-05-30 |
公开(公告)号: | CN103995780B | 公开(公告)日: | 2017-01-04 |
发明(设计)人: | 舒挺;叶甜甜;夏劲松 | 申请(专利权)人: | 浙江理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州天勤知识产权代理有限公司33224 | 代理人: | 褚超孚 |
地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 语句 频度 统计 程序 错误 定位 方法 | ||
技术领域
本发明属于软件程序错误定位检测技术领域,具体涉及一种基于语句频度统计的程序错误定位方法。
背景技术
随着信息技术的高速发展,我们对软件功能的要求不断增加,软件规模也随之越变越大,所有这些都导致了软件的高出错率。因此,如何定位到软件中错误发生的位置就变得十分重要。
错误定位的目的就是寻找程序中出现的错误。传统的用于错误定位的方法是调试。程序员先在程序中设置一个或多个断点,接着从断点处开始执行失败的测试用例,检查执行中程序的运行状态,由此找到错误的原因。这种方法存在几个明显的缺点:首先断点在程序中的位置难以确定;其次这种方法工作量非常庞大,所以学者们提出了许多自动化的错误定位方法。这些方法大致可以分为两种:基于频谱的错误定位方法(SFL)和基于模型的诊断和调试方法(MBD)。由于软件系统的复杂性,大多数基于模型的方法都被局限于小程序。基于频谱的方法因为独立于系统模型而且实现比较简单,所以得到了开发人员的青睐。
当前关于错误定位方法的研究有很多,其中Delta调试方法(文献:Cleve H,Zeller A.Locating causes of program failures[C]//Proc of the27th international conference on Software Engineering.IEEE Computer Society,2005:342-351.)可以简化测试用例,隔离错误的原因;该方法通过一系列的状态来描述程序的执行,状态包括变量和它们对应的变量值。它通过不断迭代运行程序,交换成功运行和失败运行的内存状态来定位错误,因此代价和开销比较大。Cleve H定位方法(文献:Cleve H,Zeller A.Locating causes of program failures[C]//Proc of27th International Conference on Software Engineering.St.Louis,MO,USA,2005:342-351)则关注与错误相关的那些变量及其对应的变量值,同时,他们记录引起程序转变发生的时间点来定位错误。
程序谱在程序执行测试用例时,收集并统计分析程序产生的频谱信息,得到程序中每条语句在测试用例中的覆盖信息,然后利用这些信息来计算每条可执行语句的可疑度,最后将所有语句按照可疑度进行从大到小排序以便排查出错误的语句。Tarantula方法(文献:Jones J A,Harrold M J.Empirical evaluation of the tarantula automatic fault-localization technique[C]//Proc of the20th IEEE/ACM international Conference on Automated software engineering,2005,273-282)是基于频谱的错误定位方法中最为经典的一种。该方法的主要思想是一个语句被失败测试用例执行的次数多于被成功测试用例执行的次数,那么该语句更可能是错误的。它使用的信息有:每条语句的覆盖信息,测试用例执行的结果以及程序的源代码。它是一种基于程序谱的自动化错误定位方法。对于语句s,它的可疑度计算公式如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江理工大学,未经浙江理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410241885.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:储罐防护系统
- 下一篇:配料和混合设备的驱动装置