[发明专利]软件缺陷检测方法及装置有效
申请号: | 201510640770.7 | 申请日: | 2015-09-30 |
公开(公告)号: | CN105204997B | 公开(公告)日: | 2018-10-19 |
发明(设计)人: | 衷璐洁 | 申请(专利权)人: | 首都师范大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 江崇玉 |
地址: | 100048 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 缺陷 检测 方法 装置 | ||
本发明公开了一种软件缺陷检测方法及装置,属于计算机领域。所述方法包括:基于指定错误类型,从待检测源代码中,获取初检代码集合,所述初检代码集合中包括多个存在潜在缺陷的代码段;对于所述初检代码集合中的每个代码段,对所述代码段进行危险路径筛选,得到所述代码段的指令集,所述指令集中包括危险路径;分别对所述每个代码段的指令集进行路径可行性检测,以对所述待检测源代码进行软件缺陷检测。本发明通过对所获初检代码集合包括的代码段中的路径进行危险路径筛选,并对危险路径进行路径可行性检测,进而在保证软件缺陷检测的准确性的前提下,减小缺陷检测所消耗的时间,提高软件缺陷检测的效率。
技术领域
本发明涉及计算机领域,特别涉及一种软件缺陷检测方法及装置。
背景技术
随着计算机技术的快速发展,开发人员开发出了越来越多的软件,为了保证这些软件的质量,以及提高这些软件的可靠性,需要对这些软件进行软件缺陷检测,该软件缺陷检测通常是指对该软件的源代码进行静态分析,通过静态分析可以确定该源代码中存在的缺陷或者错误,进而将该缺陷或者错误进行上报,以进行后续的修改或改进等。
目前,软件缺陷检测的操作可以为:根据事先存储的指定错误类型,从待检测源代码中,确定多个目标变量,对于该多个目标变量中的每个目标变量,从待检测源代码中,按照该待检测源代码的执行顺序,获取该目标变量的第一个定值点与该目标变量的多个引用点之间的指令,该定值点是对该目标变量进行赋值的点,该引用点是引用该目标变量的点,将获取的指令中与该目标变量相关的指令组成指令集,从而将该多个目标变量分别对应的指令集组成初检指令集,之后,对于该初检指令集中的每个指令集,检测该指令集中所有可能的路径是否可行,当该指令集中存在可行的危险路径时,确定该指令集的这条可行路径上的引用点存在软件缺陷,当该指令集中所有可能的危险路径均不可行时,确定该指令集不存在软件缺陷,从而完成对待检测源代码的软件缺陷检测。
由于指令集中所有可能的路径中不仅可以包括危险路径,还可以包括安全路径,而安全路径不会造成错误的发生,因此,对该指令集中所有可能的路径进行检测,会增加软件缺陷检测的工作量,同时也会消耗较长的时间,降低软件缺陷检测的效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种软件缺陷检测方法及装置。所述技术方案如下:
第一方面,提供了一种软件缺陷检测方法,所述方法包括:
基于指定错误类型,从待检测源代码中,获取初检代码集合,所述初检代码集合中包括多个存在潜在缺陷的代码段;
对于所述初检代码集合中的每个代码段,对所述代码段进行危险路径筛选,得到所述代码段的指令集,所述指令集中包括危险路径;
分别对所述每个代码段的指令集进行路径可行性检测,以对所述待检测源代码进行软件缺陷检测。
结合第一方面,在上述第一方面的第一种可能的实现方式中,所述基于指定错误类型,从待检测源代码中,获取初检代码集合,包括:
基于指定错误类型,从待检测源代码中,确定多个目标变量;
对于所述多个目标变量中的每个目标变量,从所述待检测源代码中,获取所述目标变量的多个定值点和多个引用点,所述定值点为对所述目标变量进行赋值的点,所述引用点为引用所述目标变量的点;
基于所述指定错误类型和所述目标变量的多个定值点,从所述待检测源代码中,确定所述目标变量的潜在错误源;
基于所述多个目标变量、所述多个目标变量的潜在错误源和所述多个目标变量的多个引用点,确定初检代码集合。
结合第一方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述基于所述指定错误类型和所述目标变量的多个定值点,从所述待检测源代码中,确定所述目标变量的潜在错误源,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510640770.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种快速油缸
- 下一篇:一种整体式液压多路换向阀