静态代码分析一般都在分析什么,简单来说就是不运行状态下找出代码质量的结构性错误。归根结底还是在代码质量,“代码质量”也算是开发圈除了产品经理和需求被提及最高频的词汇了。今天我们将围绕静态代码分析展开。

静态代码分析这种在不执行程序的情况下对代码进行分析的技术,与之相对立的是动态分析,动态分析是另外一种程序分析策略,需要实际执行。大多数情况下,静态分析的输入都是源程序代码,只有极少数情况会使用目标代码。静态代码分析一般存在两种形式,一种是人工分析,人工分析往往被叫做程序理解,另一种是通过静态代码扫描工具完成自动化的分析。对于一些大型系统,动辄数千万行的代码,静态代码扫描工具可谓是宝藏。

 

静态代码分析

 

目前的静态代码分析工具,国际上最好的静态代码分析工具误报率在5-10%之间,能够报出的缺陷种类也有几百种。 虽然静态代码扫描工具从易用性角度还有很大的提高余地,因为比较看使用人员水平,但是静态代码分析越来越多地被应用到程序优化、软件错误检测和系统理解领域。

国内上海泽众软件科技有限公司自主研发的一款专业代码质量管理的静态代码分析软件CodeAnalyzer(简称CA)一款比较实用的代码分析软件。CA是根据预定的规则包含国军标5369、MISRAC2004、国军标5369(C++)、Java sun编程规范、Java sun安全规则等进行扫描分析,检查代码是否符合编码规范和各种规则,查找可能的错误,无需编写测试用例可以实现自动化测试,节省大量的人力。