Parasoft C/C++test 安装部署与静态分析配置教程
Parasoft C/C++test 自动化测试工具的安装部署与静态分析配置流程。内容包括软件解压、许可证激活及环境变量配置。通过追踪 Sensor 示例项目的编译过程获取 bdf 文件并导入,演示了如何配置 MISRA C 2012 测试集进行静态分析。步骤涵盖选择测试目标、运行测试、查看结果、修复违规代码以及生成报告的全过程,旨在帮助用户利用该工具提升代码质量与合规性。

Parasoft C/C++test 自动化测试工具的安装部署与静态分析配置流程。内容包括软件解压、许可证激活及环境变量配置。通过追踪 Sensor 示例项目的编译过程获取 bdf 文件并导入,演示了如何配置 MISRA C 2012 测试集进行静态分析。步骤涵盖选择测试目标、运行测试、查看结果、修复违规代码以及生成报告的全过程,旨在帮助用户利用该工具提升代码质量与合规性。

Parasoft C/C++test 是一款专业的自动化软件测试工具,支持静态代码分析与单元测试。
从 Parasoft 官方获取安装包,直接解压即可。


打开 cpptest.exe。按照下图找到机器码,将机器码发送给 Parasoft 官方人员,获取许可证,将许可证粘贴到密码框中。


使用 C/C++test 安装目录下,<cpptest_dir>/examples/Sensor,这个 Sensor 项目。

要保证 Sensor 项目在 Windows 上面编译,必须要提前安装 gcc, g++, make 等这些程序,通过 MinGW 或者 Cygwin 可以一键安装这些程序。
将 cpptest 目录和 bin 目录配置在 path 环境变量中:

使用 cpptesttrace 命令追踪 Sensor 项目的编译过程,获取 bdf 文件。

cpptesttrace make
可以观察到,执行完命令后不仅仅生成了 make 原来编译过后的.exe 程序,还多了一个 cpptest.bdf 文件。需要通过这个文件,将 Sensor 项目导入到 C/C++test(cpptest) 中进行测试。
打开 cpptest,点击 Create a project...,再点击 创建来自构建数据文件 (.bdf/.json) 的项目。点击 下一步。

选择获取到的 bdf 文件。点击完成。

项目就被导入成功了。

选择 Parasoft,点击 测试配置 (C)...。

在 Automotive Pack 中找到 MISRA C 2012 这个测试集,右键 选择复制。

复制后,可以在 用户自定义 下面找到复制过来的 MISRA C 2012,但是前面的 icon 是一个'人',这代表这个测试集是复制过来的。我们可以裁剪这个规则集,比如说我们需要去掉一些不想要的规则。

点击我们复制过来的测试集,然后再点击右边的窗口静态,在右下方的窗口中可以找到打上勾的测试集,这个证明是我们启用的规则,如果需要不启用某些规则,只要找到它,然后去掉前面的√就可以了。做完这些操作后,点击右下角的应用,我们的规则集就准备好了。

选择测试目标。我们可以通过左键点击,选择整个项目,单个文件夹,或者单个.c 文件。

选中后,我们再右键,找到 Parasoft->测试执行->用户自定义->Compliance Packs->AutomotivePack->MISRA C 2012。点击,进行测试。

观察下面的这个窗口,出现进度条,证明正在测试。

1/1,证明测试结束,检查出 113 个缺陷。

点击这个放大镜图标,可以跳转到 测试结果 详细窗口。

质量任务视图当中就是所有的测试结果了。

双击违规,就可以定位到源码了。

定位源码后,可以借助 规则文档 理解规则,也可查看相关示例代码。
左键违规,再右键,点击 查看规则文档

浏览器会打开对应的文档。

通过阅读文档,可以知道这条规则要求的是对基础数据类型要进行重新命名,使用到对应数据类型的地方,要进行别名替换。
按照如下图片,进行代码修改,保存后,再次进行扫描。

从扫描结果看,第 7 行已不再出现'不应使用基本数据类型..'违规。

生成报告前,可以进行报告的相关设置。
在首选项的报告设置中,可以进行报告内容板块和报告格式的设置。

在下图的配置功能中可以配置报告生成的路径。

点击处理或者记事本图标都可以生成报告。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online