C/C++test新手入门(WINDOWS) 2024.1更新

1、安装

Parasoft官方获取C/C++test安装包:


直接解压即可:

2、部署许可证

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

3、使用demo项目中的Sensor项目进行测试

3.1 项目位置

使⽤C/C++test安装⽬录下,\<cpptest_dir>/examples/Sensor,这个Sensor项⽬。

3.2 提前准备

要保证Sensor项目在windows上面编译,必须要提前安装gcc,g++,make等这些程序,通过MinGW或者Cygwin可以一件安装这些程序。
如果不会安装,可以参照下面这篇文章进行MinGW的安装。
windows安装MinGW

3.3 配置环境变量

将cpptest目录和bin目录配置在path环境变量中:

3.4 获取bdf文件

使⽤cpptesttrace命令追踪Sensor项⽬的编译过程,获取 bdf⽂件。

cpptesttrace make

可以观察到,执⾏完命令后不仅仅⽣成了make原来编译过后的.exe程序,还多了⼀个 cpptest.bdf⽂件。这个⽂件就是我们需要的⽂件,我们需要通过这个⽂件,将Sensor项⽬导⼊到C/C++test(cpptest)中进⾏测试。

3.5 导入项目

打开cpptest,点击 Create a project..., 再点击 创建来⾃构建数据⽂件(.bdf/ .json)的项⽬。点击 下⼀步。


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


项目就被导入成功了。

4、静态分析

4.1 选择测试集

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


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


复制后,可以在 ⽤⼾⾃定义 下⾯找到你复制过来的 MISRA C 2012,但是前⾯的icon是⼀个“人”,这代表这个测试集是复制过来的。它的好处的,我们可以裁剪这个规则集,⽐如说我们需要去掉⼀些不想要的规则,等等。

4.2 处理测试集

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

4.3 开始静态测试

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


选中后,我们再右键,找到Parasoft->测试执⾏->⽤⼾⾃定义->Compliance Packs->AutomotivePack->MISRA C 2012。点击,进⾏测试。


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


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

4.4 查看结果

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


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


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

4.5 实操修改违规

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


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


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


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

4.6 生成报告

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


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


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

5、单元测试

5.1 生成测试用例

cpptest可以支持一键生成测试用例,也可以手动添加测试用例。

5.1.1 自动生成测试用例

选中目标文件,执行 Generate Unit Tests,可以直接生成测试用例。


成功生成后,会产生一个Tests文件夹,文件夹下的源文件就是自动生成的测试用例源码。


可以切换到 测试用例浏览器 视图,可以更加方便地查看测试用例。

概念理解:
TestSuite_sensor_c.c : 这个我们称之为 测试套件,实际上就是⼀个.c⽂件。
TestSuite_sensor_c.c中的函数 : 这些函数实际上就是测试⽤例。

5.1.2 手动添加测试用例

在生成的测试套件上右键,选择 测试用例向导。


向导会识别这个c文件dan当中的函数,选择你想要创建测试用例的函数。
为了演示更加清晰,我手动加了一个add函数。


选中add函数后,向导会自动识别可以初始化的变量,可以直接填写,填写好之后点击 完成,就会自动生成测试用例源码了。


下图是我填写的值和生成的效果。

5.2 执行测试用例

选择测试用例后,执行Run Unit Tests。测试用例可以选择单个,也可以选择多个。


执行完成后,如果出现这样的界面,代表测试用例执行成功。

5.3 观察测试结果

依然是点击放大镜图标进行跳转,跳转到 质量任务 视图。
跳转过去,发现结果并不只是只有一个,还有之前静态分析测试的结果。这是因为质量任务视图默认的状态是 累计结果,所以之前测试的结果都会出现。


如果想要只显示当前的测试结果,可以按照下图将 质量任务 视图调整只显示最后一次结果。


将 只显示最后一次会话的任务 勾选上,点击完成。质量任务视图中就只会显示最近的一次测试结果。


可以看到执行完测试用例后,有一个任务。这个其实是计算出的结果值,如果确认值正确,可以选择验证结果。


左键 任务,再右键,点击 验证结果。结果就会被验证,再次运行此测试用例后,就不会出现任务 了。

5.4 观察覆盖率

运行完对应的测试用例后,可以在源码中,或者 覆盖率 视图中,观察到覆盖率。

5.5 生成覆盖率报告

执行完测试用例后,如果想要生成报告,可以按照生成静态分析的报告步骤,进行报告生成。

期待您对该文章的反馈!
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值