[发明专利]一种基于语句频度统计的程序错误定位方法有效
申请号: | 201410241885.4 | 申请日: | 2014-05-30 |
公开(公告)号: | CN103995780B | 公开(公告)日: | 2017-01-04 |
发明(设计)人: | 舒挺;叶甜甜;夏劲松 | 申请(专利权)人: | 浙江理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州天勤知识产权代理有限公司33224 | 代理人: | 褚超孚 |
地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于语句频度统计的程序错误定位方法,该方法对已有的Tarantula错误定位方法进行了分析和改进,在原来的方法基础上考虑了语句的具体执行频度,然后将语句频度映射为0~1之间的数,提出了基于语句频度统计的错误定位方法。故本发明充分考虑了语句的具体执行频度而不只是统计语句在每次执行时的覆盖情况,在效率和稳定性方面要优于Tarantula方法;只要某两条语句对应的测试用例语句频度不同,那么它们的可疑度值就会不同,因此本发明定位更准确,稳定性也有较大提高,对于出现在循环语句或者循环体中的错误具有较强的检测能力。 | ||
搜索关键词: | 一种 基于 语句 频度 统计 程序 错误 定位 方法 | ||
【主权项】:
一种基于语句频度统计的程序错误定位方法,包括如下步骤:(1)统计软件程序中各条语句在每组测试用例下的语句频度,得到对应的语句频度矩阵;所述的语句频度的定义为:以某一测试用例作为软件程序的输入,在软件程序对于该测试用例的整个运行过程中某一条语句的执行次数即为该语句在该测试用例下的语句频度;所述的语句频度矩阵的维度为m×n,m为软件程序中的语句总数,n为测试用例总数;该矩阵中第i行第j列的元素值为第i条语句在第j组测试用例下的语句频度,i和j均为自然数且1≤i≤m,1≤j≤n;(2)统计每组测试用例在软件程序运行下的执行结果:正确或错误;(3)根据所述的语句频度矩阵,根据以下算式计算各条语句在每组测试用例下的带权频度,并利用函数f(x)将所述的带权频度映射到0~1之间;uij=ωijsij其中:uij为软件程序中第i条语句在第j组测试用例下的带权频度,sij为语句频度矩阵中第i行第j列的元素值即软件程序中第i条语句在第j组测试用例下的语句频度,ωij为sij对应的权重系数;所述的函数f(x)满足以下两个条件:a.f(x)在(0,+∞)单调递增,且f(0)=0;b.x∈(0,+∞),f(x)∈(0,1);函数f(x)采用双曲正切函数,其表达式如下:f(x)=ex-e-xex+e-x]]>其中:x为函数f(x)的变量且为带权频度;(4)利用映射于0~1之间的带权频度根据以下算式计算每条语句的错误可疑度,进而根据所述的错误可疑度从高到低对软件程序中的语句进行排序并逐条进行错误排查;suspi=Σk=1TfvikTfΣk=1TfvikTf+Σp=1TpvipTp]]>其中:suspi为软件程序中第i条语句的错误可疑度,vik为软件程序中第i条语句在第k组错误测试用例下的映射于0~1之间的带权频度,vip为软件程序中第i条语句在第p组正确测试用例下的映射于0~1之间的带权频度,所述的错误测试用例和正确测试用例即对应执行结果为错误和正确的测试用例,Tf和Tp分别为所有测试用例中错误测试用例和正确测试用例的个数,k和p均为自然数且1≤k≤Tf,1≤p≤Tp。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江理工大学,未经浙江理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410241885.4/,转载请声明来源钻瓜专利网。
- 上一篇:储罐防护系统
- 下一篇:配料和混合设备的驱动装置