admin 管理员组文章数量: 1086019
2024年3月20日发(作者:英格兰对法国历史交锋)
IT技术论坛
TECHNOLOGY AND INFORMATION
浅述基于Klocwork的QT开发环境软件代码审查
陈莹 赵玉丽
南京莱斯电子设备有限公司 江苏 南京 210000
摘 要 Klocwork工具能够在配置项黑盒功能测试前对代码进行静态检查,快速发现代码缺陷。然而,目前并无基于
通用平台开发环境的Klocwork代码审查脚本。本文介绍了在实践中总结的针对目前广泛使用的QT4.7和QT5.4开发环境
的详细Klocwork工具应用方法,并设计了检查脚本,通过被检查出来的缺陷的处理验证了脚本的易用性。典型案例表
明,Klocwork代码审查工具有助于及时发现并解决C/C++软件源代码的各种缺陷,从而提高软件质量和安全性。
关键词 QT开发环境;Klocwork检查;代码审查
引言
QT是面向对象的应用跨平台的C/C++语言工具包,QT应
用程序设计方法遵循面向对象的编程方法。编写QT应用程序的
主要方法是基于已有的QT类进行编写用户类。它既可以开发
GUI程序,也可以开发非GUI程序,比如控制台工具和服务器。
QT拥有很多的窗口部件,如按钮、菜单、滚动条和应用程序窗
口等,这些窗口部件组合起来可以创建很多种用户界面
[1]
。
1 背景介绍
QT开发环境能够跨平台运行,目前支持的平台系统有:
Linux(32位、64位)(包括中标麒麟平台),MacOSX以及
Windows平台。它提供给应用程序开发者建立图形用户界面所
需的功能。QT很容易扩展,并且允许真正的组件编程。QT利
用signal/slot(信号/槽)机制实现对象之间的通信。signal和slot
没有构成一一对应的关系,同一个signal可以连接很多个slot,
多个signal也可以与某一个slot相连。虽然signal/slot机制比回调
函数的速度缓慢,但缓慢速度并不明显。特别是在嵌入式系统
中这些signal和slot使用不多的场合,这种速度上的损失可以忍
受,并且该种机制具有简明性和灵活性
[2]
。开发团队在对应的
集成和测试中若能有效发现违反编码规则的问题、软件代码缺
陷和存在的安全隐患漏洞,如:内存及资源管理错误、内存泄
漏、空指针引用、未初始化的变量、未经验证的用户输入、数
组边界采用不可信数据,可以大大降低系统后续风险,同时减
少严重经济损失甚至灾难事故的发生概率
[3-5]
。应用源代码分析
工具Klocwork,不需设计测试用例,也不需运行程序,就能够
快速检测出Windows、Linux操作系统下C、C++、Java语言代码
漏洞、代码设计缺陷,并同时可生成详细、全面的缺陷修复率
以及其他关键软件度量的报告。
1 传统模式的代码审查
通常情况下,Klocwork可以通过新建一个测试项目,输入
项目名,选择文件类型,并选择要分析的dsw或dsp工程名,然
后在valid configurations栏下面选择debug选项,钩选生成测试报
告,从而完成测试项目的生成。
代码审查的具体方法为:
1.1 设置环境变量
将qmake、nmake加入环境变量,或可修改
加入头文件的路径,以消除分析错误防止分析结果不准确。
1.2 创建一个新项目
如果这个项目是第一次分析,就在Klocwork上创建一个新
项目,使用命令为kadmincreate-project
不是第一次分析的,就不用再次创建新项目了,使用原来创建
的项目名即可。
1.3 导入kb文件
42
科学与信息化2021年1月下
导入kb文件,命令为:kwadmin import- config project-name>QT 4.6.2kb 1.4 根据.pro文件生成.out文件 打开VS命令窗口,执行命令,如D:QTQT5.3binqmake. exe,执行成功后,会在.pro工程目录下生成makefile、makefile. debug、e三个文件。在VS命令窗口中,执行 kwinject nmake –f e命令,可以在.pro文件目录下 看到有.out文件生成,打开生成的.out文件,可以查看到正确的 版本号和相关的.out信息 [6] 。 (1)执行nmake –f makefileclean命令 在VS命令窗口中,执行nmake –f makefile clean命令,可以 根据输入调试信息查看默认用的哪个makefile。例如,nmake –f e clean (2)使用klocwork分析QT项目 使用Klocwork分析QT项目的命令为 kwbuildproject -project 即build文件。 (3)将分析后的项目结果导入数据库 将分析后的项目结果导入数据库的命令为:kwadmin load 进入 project list里查看.pro工程的问题列表。 但是Klocwork Insight版本对QT的支持并不完全,比如针对 QT4.7和QT5.4等开发环境,无法生成对应的out文件,目前缺少 可以直接进行广泛代码审查的测试脚本。下面就在实践中总结 的通过命令行方式进行代码审查的脚本方法进行探讨。 2 设置脚本进行代码审查 2.1 设置脚本对QT4.7开发环境下的代码审查 (1)创建工程,创建检查工程需要执行如下指令 . /K10 /server /bin/kwadmin-url安装Klocwork工 具的服务器IP地址: 8080 create –project,可以通过浏览器网 页检查工程创建情况,登录localhost:8080/输入用户名 Administrator 密码为空,查看工程创建情况。 1)编译生成中间文件 cd到工程目录下,找到Makefile文件,执行makeclean命 令; 执行kwinject –o make生成out文件。 2)分析中间文件 kwbuildproject-add-analysis-options=--lef-planner-in- memory-project Myproject–o tables –f 。 执行命令后,到工程目录下,生成tables目录成功。 3)生成报告 执行命令 kwadmin load Myproject tables。 4)查看报告
版权声明:本文标题:浅述基于Klocwork的QT开发环境软件代码审查 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710942509a580686.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论