使用Klockwork进行代码分析简单操作流程

  前一段时间公司试用了一下klockwork公司的klockwork代码静态分析软件,我所在项目组进行了试点,试用后感觉不错,有几大亮点:

        1)对代码进行静态分析,无需改动任何源码文件;

        2)分析出来的缺陷问题准率比较高。根据我使用情况来看,达到90%以上;

        3)针对问题的描述非常清晰,有详细的问题产生流程(具体每一步骤所涉及的源代码文件、行数),基本上一看就清楚问题的产生来源;

        4)具备跨文件/模块的分析能力(这一点对于大型项目尤其重要)。

        当然,目前为止我也只是试用了该软件关于问题缺陷的分析功能,还有很多高级功能没有用到。以下针对该软件的安装及简单使用进行说明。

        Linux系统软件安装及操作:

        1)安装服务端程序:

      ./kw-server-installer.9.2.1.7276.linux.sh -i /usr/local/kwserver –a

      -i选项设置安装目录,-a不打印授权协议信息

      注意:必须以普通用户进行服务端程序的安装。

2)拷贝license文件到安装目录下的prjects_root/licenses目录;

3)启动klockwork软件:  
             /usr/local/kwserver/bin/kwservice -r /usr/local/kwserver/projects_root/ start
             Klockwork软件自带了mysql数据库,其启动时也会进行数据库的启动,可能造成其自带数据库端口号与系统数据库端口号冲突,此时通过如下命令进行数据库端口号的修改:
             /usr/local/kwserver/bin/kwservice –r /usr/local/kwserver/projects_root/ set-service-property database port 3310
            如上命令将数据库缺省的3306端口改为3310。

     注意:以上命令只能由普通用户执行(非root用户)。

4)代码静态分析:

     a)采集程序信息
                 进入软件项目目录,运行如下命令采集程序信息(第一次运行该命令必须保证完整make):

          /usr/local/kwserver/bin/kwinject -o xxx.out make

          其中,xxx.out为所采集程序信息的输出文件,为避免遗忘,名称与项目名称一致。

     b)建立静态分析工程:
                 /usr/local/kwserver/bin/kwadmin create-project xxx --language c,cxx

         其中,xxx为静态分析工程名称(即分析结果项目名称)。c,cxx表示该工程为C/C++工程(当前支持c,cxx,java,csharp,多种语言中用“,”分隔)。可通过如下命令查看当前存在的工程:/usr/local/kwserver/bin/kwadmin list-projects。

      c)对代码进行静态分析:
                  /usr/local/kwserver/bin/kwbuildproject -f -o ./table1 xxx.out

          其中,-f表示强制进行项目的build,即使目标目录中已经存在上次build后的数据。 -o设置分析结果目录,./table1为静态分析结果数据的存放目录,可以根据需要进行修改。xxx.out为前述生成的静态分析工程名称。如果一个项目涉及多个静态分析工程,则多个工程间用空格进行分隔。

      d)加载分析结果:
                  /usr/local/kwserver/bin/kwadmin load xxx ./table1/

          其中,xxx为静态分析工程名称,./table1为静态分析结果数据目录。

5)通过http://xxx.xxx.xxx.xxx:8080地址查看以上静态分析结果,其中xxx.xxx.xxx.xxx为klockwork服务器地址,截图如下:

    

 

 

 



 Windows系统软件安装及操作:
1)运行服务端安装程序,期间自动安装所需要的Java 2 SE Runtime Environment 6u22及相应的.Net Framework;
2)安装过程说明:
  
      该目录存放服务器数据(含License文件)
 
 
      缺省的服务器端口为8080,数据库端口为3306,License服务器端口为27000。
3)安装完成后,通过菜单的“Start Klockwork Servers”菜单项进行启动,然后运行Klockwork Management Console进行操作;
4)代码静态分析流程:
      a)如上图,通过klockwork management console的File菜单New Project菜单项建立新工程,在新工程窗体中选中C,C++语言。注意:C/C++语言不能与C#语言同时选中。
        b)如上图,选择代码工程,选择源代码文件编码格式;
       c)如上图,选择所有选项,以保证分析结果更详细;
 
       d)如上图, 新建立的工程如上图所示,选中该工程,点击右键菜单的“Build”菜单进行工程的代码静态分析;
        e)如上图, 显示Build进度,indow自动将Linux系统中的多个分析步骤集成于一体,只需要简单的Build就完成一切。

当然,klockwork软件有服务端与客户端之分,以上只针对最简单方式进行说明。
 

你可能感兴趣的:(Test,tools)