应用简介
Code Analyzer是一款由上海泽众软件自主研发的专业代码质量管理审查工具,用于实现静态分析、代码走查、代码规范检查以及代码潜在错误分析的白盒测试工具,它是一种脱离编译器的代码静态分析软件产品。
Code Analyzer还支持Java Swing的模式系统跨平台运行,支持C、C++、Java等多种编程语言扫描。支持windows平台、linux平台、命令行环境、IDE环境等。
【软件特色】
1、支持多系统、多语言、多规则:
a、它基于Java开发,Java Swing的模式支持系统跨平台运行;支持C、C++、Java等多种编程语言扫描
b、支持windows平台、linux平台、命令行环境、IDE环境。规则包含国军标5369,MISRAC:2004,国军标5369(C++),Java sun 编程规范,Java sun 安全规则等
2、无需测试用例的测试:
CA是根据预定的规则对代码进行扫描分析,检查代码是否符合编码规范和各种规则,查找可能的错误,无需编写测试用例就可以实现自动化测试,节省大量的人力
3、基于编译的代码分析:
静态分析工具基于编译和基于模式的两种方法。CA基于编译的方法,是对整个代码进行扫描分析,相对于基于模式的方法,扫描某个段落的上下文,来判断是否违反了规则,能获得更精准和完备的分析,便于用户自定义规则的实现
4、集成与扩展性:
a、本工具是基于用户的软件生命周期环境来设计的,通过提供开放的接口,支持与测试管理软件、项目管理软件等集成
b、提供了图形用户界面(GUI)、命令行、外部接口(DLL)等多样化的用户接口,用户可以根据自己的需求,通过图形界面将源代码逐个导入到CA里进行分析,也可以通过SHELL或者批处理命令BAT来调用命令行
c、通过对外接口API,CA支持根据代码符合规范的程度对程序员编写的代码评分,还可以轻松实现CA和配置管理工具SVN的集成
5、代码级测试覆盖:
a、CA支持对源代码进行解析,得到代码的控制流程图,通过对流程图进行代码走查,实现代码级的测试覆盖,轻松实现XUnit单元测试模块的构建
b、CA还可以通过时间设定,只检验更新的代码,提高效率
6、多样化分析报告:
a、CA支持控制报告的输出形式,将分析结果返回到日志文件或者将分析结果返回数据库表中,为客户提供进一步处理的资料。
b、包括缺陷统计信息、安全漏洞统计信息、软件架构分析、类关系分析、函数调用关系分析、脚本关系分析、度量分析等。
【功能特点】
1、支持规则列表
词法规则:CA支持英语的单词表,变量命名的定义来自于词表检查。
语法规则:CA通过标准化的语法模板来处理语义规则。
语义规则:CA通过调用标准化的处理程序来分析定义的规则。
支持用户开发自己的规则包,然后通过配置文件以插件的形式配置到CA中。
2、发现不符合编码规范的代码
CA在扫描源代码时对安全规范子集中定义的规则进行逐条检查,用户可以通过自己的需求选定规则,并制定问题的严重程度,如果发现有不符合项则报告在问题列表中,用户可通过行号、列号精确定位问题,除此之外CA还为用户提供修改建议。
3、自动监控版本服务器,触发代码扫描及检测分析
CA可以通过以下方式来实现修改配置管理的提交脚本,潜入扫描触发程序。当用户check in程序的时候,脚本触发了CA,来进行代码扫描,并且提交扫描结果。
4、支持SMTP邮件服务功能
CA支持SMTP的接口,可以根据需要向指定的SMTP发送请求,提交发送的邮件。CA需要配置固定的用户名、密码,作为邮件发件人。
5、支持云服务实现,支持跨internet实现源代码安全扫描“云服务”
CA可支持私有云服务的版本:通过本地化来扫描程序,生成xml,上传到云服务,再进行扫描处理,在云端保存扫描结果,并且提供浏览器访问服务。
6、支持主流IDE环境,开发人员桌面上即可进行扫描
CA支持通过命令行方式嵌入IDE的方式,可以通过配置IDE环境来调用命令行工作;也支持通过提供客户端的方式来工作,用户可以通过操作客户端来扫描制定的代码,甚至整个项目。
7、支持和测试管理工具
CA支持与现有的测试管理平台和项目管理系统集成,实现单点登录和单一用户ID登录,来实现跨项目和项目群的管理和设置;支持组织级的用户、角色以及权限设置。支持把扫描发现的问题归到缺陷管理系统,通过调用各个不同的缺陷管理系统的API实现集成;支持把扫描分析结果输出到测试管理平台,测试管理平台本身提供自定义的报表和分析,支持PDF、word、excel多种格式的检测报告,实现缺陷分析查看
8、度量分析
包括从McCabe 复杂度、Halstead 程序度量、代码行数、继承数、循环数等各种基本度量。客户还可以根据自己的质量目标,任意组合这些基本度量进行运算生成复合度量。
【更新日志】
V1.0更新:
1、增加了缺陷管理系统
2、增加了嵌入IDE的方式
3、解决了一些代码管理上的已知问题
4、修复了一些bug,优化了软件界面