我们应该都熟知二八定律又叫80/20定律,软件测试过程同样遵循着二八定律:80%的错误是由20%的模块引起的,80%的测试时间精力成本耗费在20%的软件模块中,二八定律可以帮助发现投入产出关系的关键,在量化产出的同时节约成本。20%模块源头是问题根本,那要从风险代码模块说起,把bug扼杀于萌芽中,测试过程便会轻松很多,质量也会有所保证。

对于风险模块的代码扫描,今天不得不隆重介绍一款静态代码扫描工具CodeAnalyzer(静态代码规范漏洞扫描工具简称CA),

CA是上海泽众软件科技有限公司自主研发的,拥有自主产权的脱离编译器的代码静态分析软件产品,用于实现静态分析、代码审查、代码规范检查以及代码潜在错误分析的白盒测试工具。CA目前支持多平台适用于Windows,Linux对使用C、C++、JAVA多种编程语言编写的应用程序进行静态分析:规则内容包含Javasun编程规范、Javasun安全规则、GJB 5369-2005 航天型号软件C语言安全子集、MISRA-C-2004_工业标准的C编程规范。也支持提供了规则自定义功能,用户可以按照制定自己的规则(实现IRULE接口)并可以配置生效。

CA也同样对代码安全检查发挥着重要作用,比如内存泄露,内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更难检测。内存泄漏通常不会直接产生可观察的错误症状,而是逐渐积累,降低系统整体性能,极端的情况下可能使系统崩溃。再比如未访问变量声明、无限循环以及其它代码安全隐患检测。

CA是围绕用户的软件生命周期环境设计,可以同各种测试管理类软件等集成。通过提供开放多样化的用户接口提供了图形用户界面(GUI)、命令行、外部接口(DLL),用户可以根据自己的需求,通过图形界面将源代码逐个导入到CA里进行分析,也可以通过SHELL或者批处理命令BAT来调用命令行;这样既实现了根据代码符合规范的程度对程序员编写的代码评分,也轻松做到CA和配置管理工具SVN的集成。CA对源代码进行解析,得到代码的控制流程图,通过对流程图进行代码走查,实现代码级的测试覆盖,完美实现XUnit单元测试模块的构建。CA还可以通过时间设定,只检验更新的代码,提高效率。对于代码质量报告的输出分析结果返回到日志文件或者将分析结果返回数据库表中,能够为客户提供进一步处理的资料,包括缺陷统计信息、安全漏洞统计信息、软件架构分析、类关系分析、函数调用关系分析、脚本关系分析、度量分析等。