软件静态分析以及工具Klocwork介绍

软件静态分析以及工具Klocwork介绍


1. 软件静态分析

软件静态分析无需执行程序代码,就能发现代码的质量和安全问题,这种技术能够把缺陷的发现和解决时间向前推移至编码阶段。从而显著降低缺陷解决的成本,提高软件的质量。

一般来说,静态分析的准入条件是代码能够通过编译,而它的退出条件则是所报告的可能存在的缺陷都得到合理的评估。

2. 软件静态分析与编译,代码审查,动态测试的关系

 

 


编译主要对源代码进行语法和语义分析。

静态分析工具在代码通过编译之后再对代码进行分析,通常可以嵌入到IDE,或者通过编辑makefile(c/c++),重新进行工程的集成构建。静态分析工具相比编译器而言,对代码进行了进一步严格的检查,像空指针引用,内存管理,数组越界堆栈溢出,未初始化数据引用,编程风格都可以通过静态分析工具检查出来。这些都超出了编译器的功能范畴。

如上所述,静态分析用于检测比较通用的编程问题,借助专业的工具,而代码审查则依赖开发人员,它除了涵盖静态分析中常见的编程问题之外,当然还包括对特定场景的分析和理解。静态分析可以简化代码审查,降低代码审查的工作量。

静态分析无需执行源代码,而动态测试则是对运行的程序进行测试,后者依靠特定的输入来判断输出是否符合期望。

3. Klocwork静态分析工具

静态分析工具很多,商业工具比较有名的有Klocwork,coverity,pc-lint,开源的有splint,findbugs等。这里对Klocwork做一个简单的介绍。

Klocwork帮助开发者构建更加安全可靠的软件,早期发现代码中的质量缺陷。它通过遍历所有的执行路径来确定代码是否存在问题,特别适合于大型工程。

Klocwork提供了如下组件,见图中蓝色部分,主要的安装包分为server package和user package。

 

 


Server package主要包括license server, database server, Klocwork server, Build Tools和Projects Root,各模块的具体功能介绍可以参考http://www.klocwork.com/products/documentation/current/About_the_Klocwork_packages_and_components

我们需要完成集成构建,它主要依赖于build tools组件,则需要安装server package

Klocwork集成构建的主要过程,以C/C++为例,可参见下图

 


·       创建工程->(create project database)

kwadmin --url http://server2:8080/ create-project my_project

·       获取编译设置->(build spec)

kwinject <my_build_command>

输入常常是makefile系列文件

·       运行->results in Tables

kwbuildproject --urlhttp://server2:8080/my_project --tables-directory /my_tables kwinject.out

得到分析结果和报告,存储在tables文件夹里面

·       上传到数据库(update project database)

  kwadmin --url http://server2:8080/ load my_project /my_tables

  详见Klocwork开发者网站文档http://www.klocwork.com/products/documentation/current/Klocwork_Insight_Documentation

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 使用Klocwork进行静态分析的步骤如下: 1. 配置项目:首先,需要在Klocwork工具中创建项目并配置项目设置。这可能包括设置分析参数、排除不需要分析的文件或目录,并为项目选择适当的编程语言。 2. 构建代码:在进行静态分析之前,需要通过编译源代码构建可执行文件或库。这样可以生成包含编译器信息的中间文件,用于后续的分析。 3. 运行Klocwork分析:使用Klocwork工具通过指定构建好的代码和项目配置进行分析Klocwork会读取代码和中间文件,并根据预定义的规则和模式分析代码。分析可能涉及检查内存管理、并发问题、代码复杂性等方面的问题。 4. 查看分析结果:Klocwork会生成一份静态分析报告,列出代码中发现的问题和错误。这些问题通常会按照严重性进行分类,并给出问题的位置、可疑代码段以及建议的修复操作。开发人员可以使用报告快速定位和解决问题。 5. 调试和修复问题:根据分析报告中列出的问题,开发人员可以查找引起问题的代码并进行调试和修复。确保修复后的代码符合最佳实践和标准,以提高代码的质量和可靠性。 6. 重复分析:在修改代码后,可以重新运行Klocwork分析来验证修复的问题,并确保没有引入新的问题。这个迭代过程可以帮助开发人员不断改进代码的质量和安全性。 总的来说,使用Klocwork进行静态分析的步骤包括配置项目、构建代码、运行分析、查看结果、调试和修复问题以及重复分析。这些步骤可以帮助开发人员及时发现和解决代码中的问题,提高软件质量和可靠性。 ### 回答2: 使用Klocwork进行静态分析通常可以分为以下几个步骤: 1. 安装和配置:首先,需要安装Klocwork并进行初始化配置。这包括选择适合项目的语言和编译器,并设置Klocwork分析的规则和检查项。 2. 构建代码:在进行静态分析之前,需要确保项目的代码是被成功构建的。这通常涉及到编译代码,生成可执行文件或库。 3. 运行分析:通过运行Klocwork分析器对项目的源代码进行分析分析器将检查代码中的潜在错误、安全漏洞、代码质量问题等。这个过程可以是自动化的,也可以通过命令行或集成开发环境工具手动触发。 4. 生成报告:一旦分析完成,Klocwork将生成一个报告,其中包含识别出的问题、其严重程度(如高、中、低),以及推荐的修复方法。报告可以以不同的格式(如HTML、XML)导出,并可根据需要进行自定义设置。 5. 问题排查:通过查看报告和分析结果,开发人员需要逐个检查和修复潜在问题。这可能涉及到理解问题的来源、确定问题的影响范围,并根据最佳实践和开发标准进行代码修复。 6. 重复步骤:一旦修复了检测到的问题,可以重新运行Klocwork分析,确保问题已被解决,新问题未出现。这个过程可能需要多次迭代,以确保代码质量和安全性达到要求。 综上所述,使用Klocwork进行静态分析的步骤主要包括安装和配置、构建代码、运行分析、生成报告、问题排查和重复步骤。这些步骤的执行可以帮助开发团队提前发现和修复潜在问题,提高代码质量和安全性。 ### 回答3: 使用Klocwork进行静态分析的步骤如下: 1. 安装Klocwork:首先,需要从官方网站下载Klocwork并进行安装。安装过程可能涉及输入许可证密钥、选择安装路径等步骤。 2. 创建项目:安装完成后,打开Klocwork并创建一个新的项目。在创建项目时,可以指定项目名称、源代码路径和其他相关设置。 3. 构建项目:在Klocwork中,需要将源代码进行编译,以便生成代码分析所需的中间文件。Klocwork支持多种编译器和构建系统。可以通过命令行或图形界面选择适当的选项进行构建。 4. 运行静态分析:构建完成后,可以使用Klocwork对项目进行静态代码分析Klocwork将会自动分析源代码并检测其中可能存在的缺陷、潜在问题和规范违规等。 5. 查看分析结果:分析完成后,可以通过Klocwork提供的界面查看分析结果。Klocwork会将问题按照严重程度和类型进行分类,并提供详细的问题描述、代码片段和建议修复方法等信息。 6. 修复问题:根据Klocwork提供的问题描述和建议,开发人员可以针对每个问题进行修复。修复可能涉及修改源代码、调整代码结构或采用其他方式来改进代码质量。 7. 重新分析:修复问题后,可以重新运行Klocwork进行分析,以验证修复是否成功。如果分析结果显示问题已经修复,则可以继续进行下一步;如果问题仍存在,则需要继续调试和修复。 8. 重复上述步骤:静态分析是一个迭代的过程,需要反复进行。可以根据具体需求和项目进展情况,重复上述步骤多次,直到代码中的问题和缺陷被彻底解决。 总之,通过以上步骤,使用Klocwork进行静态分析可以帮助开发人员及时发现和修复代码中的问题,提高代码质量和可靠性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值