[发明专利]静态代码缺陷的检测方法、计算机设备及存储介质在审
| 申请号: | 201810422866.X | 申请日: | 2018-05-05 |
| 公开(公告)号: | CN108710568A | 公开(公告)日: | 2018-10-26 |
| 发明(设计)人: | 马宁 | 申请(专利权)人: | 中科软评科技(北京)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京维正专利代理有限公司 11508 | 代理人: | 罗焕清 |
| 地址: | 100070 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 静态代码 检测 路径仿真 运行模型 计算机设备 存储介质 软件项目 运行性能 运行时 构建 | ||
本发明公开了一种静态代码缺陷的检测方法、计算机设备及存储介质,其中该静态代码缺陷的检测方法包括:构建待检测静态代码的路径仿真运行模型;将所述待检测静态代码输入所述路径仿真运行模型进行检测;其中,所述路径仿真运行模型可模拟所述待检测静态代码在运行时的执行路径。本发明可使得静态代码在运行之前便可在其路径仿真运行模型中得到精确的运行性能检测,可精确高效地检测出超大规模的软件项目静态代码的缺陷。
技术领域
本发明涉及静态代码缺陷的检测领域,特别是涉及一种静态代码缺陷的检测方法、计算机设备及存储介质。
背景技术
静态代码的检测技术是软件检测领域最尖端的技术,能够在软件开发的最早期发现和定位软件的缺陷。静态源代码分析自其诞生以来,在开发团队中就由于其分析时间长、过多噪音或不可接受的误报率而毁誉参半。过多的误报结果是许多源代码分析产品在使用几次后成为“板凳软件”的主要原因。尽管有这些早期的缺点,但是静态分析的承诺使得开发人员仍然对它保持着兴趣,因为该技术可以在软件运行前找出错误,提高代码质量,大大加快新应用的开发。
第一代静态分析工具出现在70年代后期,以Lint最为人所知,它可被视为第一代商业可行的静态分析工具。但是由于Lint的噪声比率比较高,噪声和真正缺陷的比率经常超过10:1。因此,发现真正的缺陷需要开发人员耗费大量时间,对Lint的结果进行详细的审查,找出静态分析被期望消除的精确的问题。由于这个原因,Lint从未被当作一个缺陷检测工具被广泛采用。2000年第二代分析工具(例如,Stanford Checker)出现,提供了足够的商业可行的价值。通过使用新技术,扩展了第一代工具过去简单的模式匹配的能力,也专注于路径覆盖。第二代静态分析可以发现更多的与实际运行时相关的缺陷。但是,第二代静态分析仍然很难在精确度和可扩展性之间找到最佳点。有些解决方案对一小部分的缺陷类型是精确的,但不能扩展到分析数百万行的代码规模。其他一些可以在很短的时间里运行,但准确率接近于Lint,引入了熟悉的误报率和噪声问题。由于不同组织使用不同的开发环境,第二代分析工具往往需要团队进行痛苦的耗时的定制或集成工作。
第三代分析工具是布尔可满足性分析工具(Boolean satisfiability,以下简称SAT)。SAT解算器是一种计算机程序,把变量公式放在AND, OR, and NOT运算符下,然后判断每一个变量的映射是TRUE还是FALSE,从而评估整个公式是TRUE(可满足的)。如果至少有一个这样的映射,解算器就会返回一个特定的满意的赋值。如果没有这样的赋值存在,SAT解算器就会表明该公式是不满足的,并提供一个证据表明它是不可满足的。SAT区别于第二代和第三代静态分析的一个特征,是确定代码的哪些路径应该检查。历史上限制只采用路径仿真技术有效性的一个挑战是,是消除应该检查的路径(错误地判定不需要检查的路径)和不应该检查的路径探测(错误的判定运行时能真正执行的路径,但实际上它不能)。尽管如此,第三代分析工具依然需要大量的判断检查工作,整个过程还是比较繁杂,而且容易因为中间某个步骤出现错误而导致整个检测工作出现偏差。
发明内容
本发明实施例主要提供一种静态代码缺陷的检测方法、计算机设备及存储介质,以解决现有技术中,由于静态代码检测技术源于可移植性检测,导致在静态代码检测的过程中出现噪声比率高,以及噪声和真正缺陷的比率过大的问题。
为解决上述技术问题,本发明实施例采用的一技术方案如下:
一种静态代码缺陷的检测方法,该检测方法包括以下步骤:构建待检测静态代码的路径仿真运行模型;将所述待检测静态代码输入所述路径仿真运行模型进行检测;其中,所述路径仿真运行模型可模拟所述待检测静态代码在运行时的执行路径。
为解决上述技术问题,本发明实施例采用的另一技术方案如下:
一种计算机设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的静态代码缺陷的检测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科软评科技(北京)有限公司,未经中科软评科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810422866.X/2.html,转载请声明来源钻瓜专利网。





