[发明专利]一种基于RankNet的混合软件错误定位方法及系统有效

专利信息
申请号: 202010350329.6 申请日: 2020-04-28
公开(公告)号: CN111581086B 公开(公告)日: 2023-03-31
发明(设计)人: 肖喜;彭震东;郑海涛;江勇;夏树涛 申请(专利权)人: 清华大学深圳国际研究生院
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 深圳新创友知识产权代理有限公司 44223 代理人: 江耀纯
地址: 518055 广东省深圳市*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 ranknet 混合 软件 错误 定位 方法 系统
【说明书】:

本发明提供一种基于RankNet的混合软件错误定位方法及系统,该方法包括:S1.RankNet排序模型的训练:所述RankNet排序模型自动提取代码语句的文本特征,再将所述文本特征与代码语句的数值特征结合并输入RankNet排序模型进行排序学习;S2.利用训练好的RankNet排序模型进行代码语句排序,得到可疑代码语句列表来进行软件错误定位。该方法和系统能快速精确地自动定位到软件的错误,大大增强了错误定位方法的自适应性,而且减少了由人为设定参数带来的局限性和不确定性。

技术领域

本发明涉及软件错误定位技术领域,尤其涉及一种基于RankNet的混合软件错误定位及系统。

背景技术

随着计算机硬件的不断发展与普及,计算机软件也变得更庞大和更消耗资源。正如安迪比尔定律指出,硬件提高的性能,很快被软件消耗掉了。企业或者科研机构在开发软件过程中,通常使用测试驱动开发(Test-Driven Development,TDD)方法,即在编写功能代码之前先编写测试代码,再编写使测试用例通过的功能代码,通过测试来驱动整个开发的进行。TDD的方法可以编写出简洁高效的代码,并加速开发过程。在TDD的过程中,每当执行测试用例失败,即软件出现了故障,则需要开发人员对软件进行调试、错误定位和修复。当软件功能代码简单,代码量少时,开发者可以根据软件在执行测试用例期间的行为表现和输出,快速定位到错误所在并解决错误。可是在庞大复杂的软件代码面前,手动定位软件错误犹如大海捞针,费时费力。如果可以在调试的过程中能够根据软件的相关信息来自动定位软件的错误,那么开发者只需要专注于软件错误的修复,可以大大减少开发人员的调试时间,节约软件的开发成本。因此如何能够根据软件运行时的信息和行为表现,快速精确地定位到软件的错误,具有重要的经济价值和意义。

为了保证软件开发的质量,工业界在软件测试阶段投入了大量的人力物力。据统计,软件错误的定位和修复占据整个开发和更新过程开销的50%到80%,美国国家标准技术研究所(National Institute of Standards and Technology,NIST)在2002年的一份报告中指出,软件错误每年给美国经济造成595亿美元的损失(占美国GDP的0.6%)。到目前为止,软件错误带来的损失无疑是增加了。此外,对于医疗、航空和交通等安全至关重要的大型软件,其中的错误会导致非常严重的后果。例如20世纪80年代控制Threac-25放射治疗仪的代码中的错误直接导致了患者的死亡;1996年机载指导计算机中的错误导致了Ariane 5火箭发射不到一分钟后就被摧毁等等。

手动进行软件错误定位非常依赖于软件开发人员的直觉与经验,他们根据软件的行为表现分析和判断哪些代码更有可能导致了软件出错,然后再对错误软件进行修复。随着软件规模和复杂性的增加,软件更加容易出现错误,并且错误带来的损失也更加巨大。

如果可以自动化软件的错误定位,直接列出导致运行测试用例失败的代码,那么开发人员就只需要把注意力集中于错误的修复,可以很大程度上降低调试的开销。目前自动化软件错误定位的相关研究还不够成熟,根据分析过程中使用的信息类型,主要分为动态软件错误定位和静态软件错误定位。研究者提出的软件错误定位方案多数基于手动提取软件的静态或者动态信息的特征,结合基于频谱的软件错误定位技术的风险评估公式计算的程序元素可疑性,或者使用学习排序的方法进行错误定位。

专利CN103995780A公开了一种基于语句频度统计的程序错误定位方法,该方法对已有的Tarantula错误定位方法进行分析与改进,在原来的方法基础上考虑了语句的具体执行频度,然后将频度映射为0~1之间的数,提出了基于语句频度的错误定位方法。本发明充分考虑了语句的具体执行频度而不是统计语句在每次执行时的覆盖情况。只要某两条语句对应的测试用例语句频度不同,那么它们的可疑度值就会不同。该方法也是属于基于程序频谱的软件错误定位方法,需要将语句频度映射为0~1之间的数,作为可疑度值得权值,但是映射函数需要人工选择,执行频度与覆盖情况之间的比较需要衡量,并且不同场景的错误定位可能需要不同的映射函数。由于同一个基本块中的代码具有相同的频谱,最终通过该方法还是会得到相同的可疑性,因此很难在代码语句的级别对软件进行错误定位。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学深圳国际研究生院,未经清华大学深圳国际研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010350329.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top