当前位置: 首页 > news >正文

【时时三省】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

http://www.dtcms.com/a/262861.html

相关文章:

  • PIXHAWK(ardupilot4.52)上传航点的bug
  • Java-day30-多线程02
  • 大模型——怎么让 AI 写出好看有设计感的网页
  • 链表题解——移除链表元素【LeetCode】
  • 中国电子学会等级考试Python编程真题+答案+解析
  • Spring 依赖注入:官方推荐方式及最佳实践
  • MySQL索引失效场景分析
  • 数据结构笔记5:环形链表的数理分析
  • mysql 小版本升级实战分享
  • 力扣 hot100 Day30
  • 开疆智能CCLinkIE转Canopen网关连接台达伺服驱动器配置案例
  • 自己电脑搭建本地服务器并实现公网访问,内网也能提供互联网连接使用
  • 七层负载均衡和四层负载均衡
  • 打卡day58
  • 数据库表关系设计详解:一对一、一对多、多对多及自关联
  • ShardingSphere完成MySQL集群部署
  • Vue3静态文档资源展示的实现和使用总结
  • 国产车哪款有远程代驾功能?远程代驾+自动驾驶
  • DDoS攻击及其防护方案
  • 超大js文件多层级引用缓存在网络较差的时候无法调用使用问题
  • Rust C++ OpenCV kafka-rs实践
  • 生成式人工智能实战 | 变分自编码器(Variational Auto-Encoder, VAE)
  • 二刷 苍穹外卖day09
  • macos 安装 xcode
  • 借助 KubeMQ 简化多 LLM 集成
  • 深度学习专栏总结
  • 生信分析之流式数据分析:Flowjo 软件核心功能全解析
  • Openssl升级
  • 使用 LoRA 微调大模型:关键参数与最佳实践全解析
  • 深度解析基于贝叶斯的垃圾邮件分类