klocwork培训最终版

41
1 KLOCWORK8 测测 测测测测 2009 测 3 测

Upload: gameover

Post on 14-Jul-2016

101 views

Category:

Documents


0 download

DESCRIPTION

Klocwork

TRANSCRIPT

Page 1: Klocwork培训最终版

1

KLOCWORK8 测试 工具学习2009年 3 月

Page 2: Klocwork培训最终版

2

KlocWork K8 学习1 K8 简介2 K8 功能介绍3 k8 安装方法4 K8 操作演示

Page 3: Klocwork培训最终版

3

K8 简介 概述 优势 组成

Page 4: Klocwork培训最终版

4

K8 概述 Klocwork k8( 简称 K8)是 Klocwork 公司开发的一种静态分析测试工具,行业领先水平的软件开发组织使用 K8 来降低成本、改进软件质量。

Page 5: Klocwork培训最终版

5

K8 概述 支持的编译器 Klocwork 的产品具有很强的编译器独立性,已经成功集成到如下环境中 : •  GCC•  G++ •  Green Hills Software •  Wind River Diab •  Sun WorkShop/Forte •  GNU GCC •  aCC •  aC++ •  MetroWerks CodeWarrior •  Sun CC •  Microsoft Visual C++ •  Sun Java Compiler 1.3 and 1.4 •  Metaware C/C++ Compiler同时支持主流的软件构建环境和配置管理工具

Page 6: Klocwork培训最终版

6

K8 简介 - 优势 市场上处于领先的全面静态分析 灵活的分析报告和缺陷管理功能

Page 7: Klocwork培训最终版

7

帮助开发人员 IDE 集成使开发人员进行准确的本地分析

Klocwork developer desktop 自动与系统分析上下文进行关联最佳性能、最佳准确性、全系统上下文传递到本地在解决缺陷时,创建 peer-to-peer 协同统一缺陷 ID 和开发人员的行为与缺陷保持一致,开发人员不会对同一缺陷进行重复工作与 IDE 集成,或者通过简单的命令行调用

Klocwork Insight 是唯一一个能够将桌面源代码分析的高效性与系统范围分析的强大、准确完美结合在一起的源代码分析工具

K8 简介 - 优势

Page 8: Klocwork培训最终版

8

分析结果 - 报告可以用这些条件查询缺陷这里选择统计图的类型

Page 9: Klocwork培训最终版

9

自动化架构分析 优化架构

Page 10: Klocwork培训最终版

10

k8 简介 - 组成 Klocwork k8 产品套装分为两种 全功能开发套装 :支持 C,C++和 Java Java 开发套装:只支持 Java 语言

Page 11: Klocwork培训最终版

11

K8 简介 - 组成

Source

Klocwork 引擎kwadmin kwbuildproject Klocwork build tools (kwwrap,

kwinject, kwant, kwvcprojparser, kwdspparser)

Klocwork projects_root 目录

Object files FBKB

Project Properties

Klocworktables

Project Reports

Configfiles

Build Specification

Database

UserModels

SystemModel (R/O)

Klocwork 服务器FLEXlm LicenseManager(license)

Klocwork Project Server

(project)

Klocwork Web Server

(web)

Klocwork Database Server (database)

Klocwork 应用KlocworkArchitect

Klocwork Review (Web browser)

KMC

kwadmin

kwcheck

KlocworkFor C/C++

Or JAVA (IDEs)

kwinspectreport

服务器

客户端

Page 12: Klocwork培训最终版

12

k8 功能

软件缺陷和安全漏洞分析 软件架构分析和软件度量

Page 13: Klocwork培训最终版

13

集成构建级分析方法

步骤 1

步骤 2

步骤 3

步骤 4

客户代码

Klocwork

代码分析

可定制的客户

知识库文件 Klocwork中间

系统文件

平台知识库

文件

Klocwork缺陷

分析

函数行为

知识库

Klocwork

数据库

自动生成的文件

自动化构建发现

Page 14: Klocwork培训最终版

14

分析 Visual Studio 项目

Klocwork 可以从 Visual Studio 的项目文件或工作空间文件( dsp dsw vcproj sln )中提取编译和连接选项,自动生成构建配置文件 必须安装对应的 Visual Studio 环境

系统头文件Visual Studio 编译环境

Page 15: Klocwork培训最终版

15

分析 Make/build 脚本类项目 首先保证整个系统重新编译

Make -f clean手工删除生成的目标文件

使用 Klocwork 辅助工具进行构建,同时生成构建配置文件(以 .out 为后缀的文件):使用命令: kwinject -o test.out make -f Makefile 输出的构建配置文件必须以 .out 为后缀,名称可以任意

然后,在 KMC 中按照用 build specification files 构建的方法进行分析

Page 16: Klocwork培训最终版

16

从源代码根目录分析 在不能得到构建配置的情况下,可以采用从源代码根目录分析的方式

适合小型项目对大型项目分析准确度不高

缺点需要知道程序的 includes/system includes/macro

definition ,软件的这些设置多的时候,手工设置很累无法剔除无用的源文件不能保证头文件调用的正确次序

Page 17: Klocwork培训最终版

17

从 Tables 目录分析 从中间文件进行分析 适用于仅仅改变了要分析的缺陷和安全漏洞类型的分析 可以节省分析时间

Page 18: Klocwork培训最终版

18

缺陷分析 KlocWork k8 所定义的缺陷是广义的缺陷,包括一般软件缺陷和已知软件安全漏洞 . 通过缺陷配置文件可选择性地测试分析软件存在的缺陷

Page 19: Klocwork培训最终版

19

一般缺陷 一般软件缺陷样例

Page 20: Klocwork培训最终版

20

安全漏洞 已知软件安全漏洞样例

Page 21: Klocwork培训最终版

21

架构分析和软件度量架构分析 软件度量

Page 22: Klocwork培训最终版

22

架构分析代码结构展示 系统视图显示已有应用系统的物理结构,应用系统中的依赖关系连同应用系统和外部环境间的依赖关系也显示出来。

发现并修复设计异常 软件架构师利用这种分析快速发现复杂的架构问题(如循环依赖)、模型改进等方面的内容然后为开发人员产生一个可操作的变更列表。

Page 23: Klocwork培训最终版

23

架构分析优化头文件结构在大型 C/C++ 软件中,一个普遍的可维护性问题就是过于复杂的头文件结构,比如包含了许多不必要的头文件。 k8 能够对您的系统执行自动分析,然后给出经过优化后,对潜在的系统文件大小、构建时间减少的量值,并给出优化您头文件的某种推荐方案的路径图。

功能强大的代码审查使用自动的流程图功能,从源代码分析得出程序的流程图,理解文件的处理流程,来帮助进行更加高效的编码。

Page 24: Klocwork培训最终版

24

软件度量 过程度量-过程度量是经典的项目管理层次的度量,如:测试用例执行完成的数量或者已经实现的需求的百分比。 资源度量-另外一种常用的、然而更加宏观层次的度量集合,通常用于访问人力资源方面,如:劳动生产率或者分配的项目 A 与项目 Z 的人时对比。 环境度量-测量影响开发团队生产力的环境因素,相对过程和资源度量不是那么常用,并且这些信息收集起来很困难;一个例子就是平均每天一个开发人员被打断工作的时间。 Klocwork 能够提供包括这些度量在内的最佳解决方案,自动产生直接从源代码中产生的客观的、可操作的产品度量。

Page 25: Klocwork培训最终版

25

软件度量

Klocwork 面向结果的产品度量,让项目 ledaer 和软件 QA 人员,随时查看软件的缺陷情况,控制软件的产品质量,并做出及时响应。

Page 26: Klocwork培训最终版

26

K8 安装 环境要求

安装步骤(共 5 个步骤)

Page 27: Klocwork培训最终版

27

环境要求操作系统( k8 不能在 Root权限下安装)

Page 28: Klocwork培训最终版

28

环境要求 浏览器

浏览器要启用 Cookies 支持

Page 29: Klocwork培训最终版

29

安装步骤第一步 安装服务端 kw-server-installer 可在下图所示的安装过程中选中“ Create Windows Services for

Klocwork Servers”就可以将 Klocwork 服务设置成 Windows服务,在计算机启动的时候自动启动这些服务。

Page 30: Klocwork培训最终版

30

安装步骤第二步 安装客户端 kw-user-installer

第三步 安装补丁和加密狗驱动

Page 31: Klocwork培训最终版

31

安装步骤 第四步 拷贝 k8授权 license

必须拷贝 Beijing_System***.lic 文件到安装目录下projects_root\licenses 目录下,然后才能正确启动License授权服务,且使用的加密狗和 License 必须一一对应。

Page 32: Klocwork培训最终版

32

安装步骤第五步 启动 k8四项服务 Klocwork的 4 项服务及其占用的端口:

license 27000 License服务器 web 8070 Web服务器 database 3312 数据库服务器 project 1104 分析引擎调度服务器

Page 33: Klocwork培训最终版

33

K8操作演示 缺陷分析 查看分析结果和管理缺陷 架构分析和软件度量

Page 34: Klocwork培训最终版

34

缺陷分析 运行 KMC

Page 35: Klocwork培训最终版

35

缺陷分析 新建一个工程

Page 36: Klocwork培训最终版

36

缺陷分析 选择分析方式

Page 37: Klocwork培训最终版

37

k8默认有三个配置文件分别为度量文件、问题文件和规则文件,如下图所示,分别对三个文件进行配置。

缺陷分析

Page 38: Klocwork培训最终版

38

缺陷分析 进行缺陷分析

Page 39: Klocwork培训最终版

39

查看分析结果和管理缺陷运行客户端 Klocwork Review 或直接在浏览器中输入http://server_name:8070 查看分析结果 。

Page 40: Klocwork培训最终版

40

架构分析运行客户端 Klocwork Architect 进行架构分析。

Page 41: Klocwork培训最终版

41

致 谢