[发明专利]一种静态代码质量分析方法和装置有效
申请号: | 201710081777.9 | 申请日: | 2017-02-15 |
公开(公告)号: | CN108446213B | 公开(公告)日: | 2021-08-17 |
发明(设计)人: | 彭飞 | 申请(专利权)人: | 西门子公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/30 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 赵冬梅 |
地址: | 德国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 静态 代码 质量 分析 方法 装置 | ||
涉及软件工程技术领域,尤其涉及静态代码质量分析方法和装置,用以提高代码质量分析的效率和准确性。对待分析代码采用模式匹配的方法进行质量分析后确定待分析代码的缺陷趋势,根据缺陷趋势确定采用逻辑路径的方法对待分析代码进行质量分析所使用的至少一条第二代码质量检查规则,并采用至少一条第二代码质量检查规则进行质量分析得到最终的质量分析结果。由于采用模式匹配的方法可较快速地得到质量分析结果,利用该质量分析结果预测待分析代码的缺陷趋势,这样根据缺陷趋势进一步选择代码质量检查规则,一方面可以自动化确定规则,节省了人力和时间,另一方面,保证了所选择规则的客观性和准确性,进而保证质量分析结果的准确性。
技术领域
本发明涉及软件工程技术领域,尤其涉及一种静态代码质量分析方法和装置。
背景技术
现在,越来越多的产品(或系统)由运行在其上的软件来控制。因此,软件的质量对于该产品(或系统)的运行尤为重要。进而,如何有效地管理一个软件的质量也就成为一个亟需解决的问题。
静态软件代码质量分析是软件质量管理的一个行之有效的方法。与传统主要依赖于人力的测试方法相比较,静态代码质量分析可利用计算机的计算能力对代码进行质量检查。
图1示出了目前的一种静态代码质量分析过程。待分析的代码CODE输入静态代码质量分析装置10,静态代码质量分析装置10基于检查规则R对代码CODE进行质量分析,输出质量分析的结果F,其中包括缺陷D和/或警告W。
静态代码质量分析的核心在于如何分析代码以识别潜在的质量问题。目前,静态代码质量分析有两种主要的技术:模式匹配和基于逻辑路径的分析。
模式匹配是早期的静态代码质量分析的主要方法,其基本原理是定义一组编程规则,基于这些规则检查代码,若代码违背这些规则,则判定为可疑的编程模式,上报质量问题。模式匹配的优势是简单且能快速得到分析结果。但采用模式匹配方法只是检查可能引起质量问题的程序代码,容易出现大量错误的告警,需要耗费很多人工对结果进行进一步的筛查分析。
基于逻辑路径的方法是当前主要采用的一种静态代码质量分析方法,代码质量分析装置需要逐一列举待分析代码的所有内在逻辑执行路径,然后针对每一条内在逻辑执行路径,应用代码质量检查规则来识别潜在的质量问题。与模式匹配相比,基于逻辑路径的方法方法可以获得更准确的分析结果。在分析之前需要人工定义规则,费时费力。并且分析结果的准确性也会依赖于每一条内在逻辑执行路径上的规则。如果规则定义得过少,质量分析的过程耗时较短,但可能会漏掉一些关键的缺陷。如果规则定义得过多,则分析过程过于复杂,耗时长,分析结果总量也会非常庞大,仍需要耗费一定的人工来筛选出真正的质量问题。
发明内容
有鉴于此,本发明提供一种静态代码质量分析方法和装置,用以提高静态代码质量分析的效率和分析结果的准确性。
第一方面,提供一种静态代码质量分析方法。该方法中,首先可基于至少一条第一代码质量检查规则,对待分析代码采用模式匹配的方法进行质量分析,得到至少一条第一质量分析结果;然后根据所述至少一条第一质量分析结果,确定所述待分析代码的缺陷趋势;接下来根据所述缺陷趋势,确定至少一条第二代码质量检查规则;最后,基于所述至少一条第二代码质量检查规则,采用逻辑路径的方法对所述待分析代码进行质量分析,得到至少一条第二质量分析结果。
由于采用模式匹配的方法可以能够较快速地得到质量分析结果,但并不将该结果作为最终的质量分析结果,而是利用该质量分析结果确定待分析代码的缺陷趋势,这样根据缺陷趋势进一步确定采用逻辑路径的方法进行质量分析所使用的规则,一方面易于实现自动化确定规则,节省了人力和时间,另一方面,保证了所选择规则的客观性和准确性,进而保证质量分析结果的准确性。
可选地,所述缺陷趋势包括至少一条缺陷,以及所述待分析代码发生所述至少一条缺陷中的每一条缺陷的第一概率。
这样,缺陷趋势就能够表示所述待分析代码中可能存在哪些缺陷,且存在每一种缺陷的概率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西门子公司,未经西门子公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710081777.9/2.html,转载请声明来源钻瓜专利网。