【时时三省】vectorcast使用教程

山不在高,有仙则名。水不在深,有龙则灵。

----CSDN 时时三省

1,建立工程工作空间

在创建新工程之前或打开一个工程之前,选择File => Set Working Directory command 。建立工程的工作空间。那么此工程的相关文件都会在此目录下。

注意:选择的目录不能包含空格并且要有读/写权限。

2,建立一个空工程

菜单栏中选择File => New => VectorCAST Project=>Empty Project。建立新工程。在项目名称字段中输入 项目名字(英文),从编译器下拉菜单中选择所需要的编译器,如果没有特殊需求,可选VectorCAST 自带的C/C++ > VectorCAST MinGW > C,基本路径填入工程的最顶层的路径,并选择Create 按钮,创建新工程。

3,设置工程相关配置项

右键编译器节点(VectorCAST_MinGW_C) 选择open Configuration,打开配置选项编辑器。这里我一般配置下 源文件目录 和 勾选 白盒测试。

4,建立环境

右键单击项目树中的Group 节点,选择Create Unit Test Environment > Interactive。以交互式方式创建环境。

选择编译器。在第三步中已经选择。此步骤可以不用设置。

设置环境名字,英文名即可:

选择测试方法,一般选择第一种:

  1. 传统的单元测试------VectorCAST 解析被测C/ C++源文件来创建测试套件。此外,任何没有实际定义只有声明的外部函数都将做下桩处理。
  2. 对象文件测试------与传统的单元测试方法相同,只是编译现有的对象文件而不是源文件来创建测试套件。当您选择对象文件测试时,需要手动选择被测的目标文件用于Link Option。
  3. 库接口测试------VectorCAST 通过解析C/ C++头文件的函数声明来构建测试环境。当您选择库接口测试时,需要手动链接到提供方法和函数实现的库。
  4. 测试驱动的开发------VectorCAST 通过解析C/ C++头文件的函数声明来构建测试环境,并为正在测试的函数创建桩函数。随着代码的实现,可以将桩函数替换为实际函数。这样可以在顶层架构设计完成后,并行开始代码和测试用例的开发。

选择覆盖类型:

coverage type: 一般选择 语句覆盖+mc/dc 覆盖。

Whitebox: 勾选则测试方法为白盒。不勾选则为黑盒。

选择源文件路径:

建议使用 两个 + 号按钮,选择源文件路径。vcast则自动搜索该路径下所有源文件。

使用 一个 + 号的按钮,则只会所搜该路径下源文件。

选择被测试源文件。

用户自定义代码:

最后可以在 summary 界面总览下配置,点击 build 按钮生成测试环境。

5,生成单元测试用例

选中函数后,右键,即可通过选项生成用例:

Insert Test Case:需要手动填写输入值(也可以不填)

Insert Basis Path Test Cases: 添加基本路径测试用例(自动生成用例,可以直接执行。也可以添加输入和预期值后再执行)

6,执行用例

选中函数后,右键,excute 即可执行。

7,查看用例执行报告

Test =>View =>Test Case Management Report 从菜单栏中查看测试案例管理报告

通过从工具栏中选择View Coverage按钮打开代码覆盖率查看器。在MDI 窗口的覆盖率查看器中显示了源代码的代码覆盖结果,绿色表示语句已被覆盖,红色表示语句未被覆盖,黄色代表语句部分覆盖,一般为(if/while/for 句柄语句)。

注意:要勾选单个用例前面的复选框,在 view coverage 才能看到单个函数的覆盖语句。

8,编写用例常用的三种方法

1,为函数进行打桩

点击 Environment->Update Environment,即可在 勾选下图中右边两个方框后,在左边的方框中 添加函数名即可。也可通过 +Stubs 方式添加函数的桩。或者通过 -Stubs ,去掉已经打桩的函数的桩。

2,user code

这个用处是最大的。在对用例中的某个参数进行赋值时,双击改参数,勾选对应的 enable, 为变量进行赋值(赋值的变量名根据自动弹出的变量名进行赋值。其他想添加的语句,按照 c 语言一样正常使用)。然后 选择 编译,再选择 apply, 再选择 ok 。

也可以对该变量进行判断,使用 == 号。

需要注意的时,添加的 user code 不是为某个测试用例存在。只要测试用例执行到该位置,都会进行该参数的赋值或者判断。所以如果想要在 该参数为某个值时再进行赋值或者判断,则需要先判断该参数的值。

3,probe point

选则某个文件后,右键 选择 edit probe point, 要等一会 vcast ,这个反应有点慢。找到想要添加打 probe point 的语句,单击 改行语句前面的黑点,即可在右下角弹出的框里面,添加语句。

vcast 提供的语句有:

vcast_probe_print()

vcast_test_name_equals()

在添加完语句后,点击该方框里面的编译按钮,再点击该文件的保存按钮,才会生效。

9,集成测试

集成测试就是使用单元测试里面的用例,拉入到 compond test 下新增的用例里面。

10,环境更新

Environment->Update Environment

相关推荐
HuiJingJiTuanIM1 小时前
[特殊字符]企业级IM即时通讯系统优势|稳定、安全、灵活扩展
安全·实时互动·私有化部署·私域·极光鸟·灰鲸
天天进步201511 小时前
UI-TARS 源码解析 #10:parse_action 源码解析:如何用 AST 安全解析模型生成的函数调用?
安全·ui
大耳朵-小飞象13 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
wuhanzhanhui15 小时前
视觉革命与主动安全:2026武汉汽车电子展会定档,看芯片如何定义驾驶
安全·汽车
王维同学17 小时前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举
c++·windows·安全
国科安芯19 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
栩栩云生20 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
huijingjituan21 小时前
新一代IM聊天软件|构建企业专属智能通讯生态
安全·实时互动·即时通讯·极光鸟·灰鲸
其实防守也摸鱼21 小时前
补天SRC新手入门指南:从0到1的漏洞挖掘之路
网络·python·学习·安全·web安全·数据挖掘·挖洞
●VON21 小时前
鸿蒙 PC Markdown 编辑器内部隐私与安全评审
安全·华为·编辑器·harmonyos·鸿蒙