当前位置: 首页 > 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.lryc.cn/news/577269.html

相关文章:

  • 烘焙工业4.0:自动化升级与制造执行MES系统的深度赋能
  • 【软考中级·软件评测师】下午题·面向对象测试之架构考点全析:分层、分布式、微内核与事件驱动
  • 【原创】【5】【视频二创工具发布】基于视觉模型+FFmpeg+MoviePy实现短视频自动化二次编辑+多赛道
  • 国产车哪款有远程代驾功能?远程代驾+自动驾驶
  • 【Wireshark】高级过滤技巧精讲
  • APP 内存测试--Android Profiler实操(入门版)
  • Unity编辑器扩展之扫描项目中所有图片资源,并找出引用这些图片的预制体及其引用路径,最终导出为CSV报告
  • Monorepo+Pnpm+Turborepo
  • Windows 安装 nodejs npm
  • 网络拓扑图绘制全流程:从架构解析到工具实战
  • Jenkins Pipeline 实战指南
  • Java基础(六):数组全面解析
  • python+uniapp基于微信小程序的生鲜订购系统nodejs+java
  • Java 图书管理系统
  • 在拉卡拉分账功能中实现实时更新,需结合异步回调通知和数据库事务来确保数据一致性。以下是具体实现方案
  • 【Linux系统部分】在Linux命令行中写一个简单的shell外壳
  • 网络安全2023—新安全新发展
  • HarmonyOS NEXT仓颉开发语言实战案例:电影App
  • 【AI时代速通QT】第四节:Windows下Qt Creator调试指南
  • Oracle 进阶语法实战:从多维分析到数据清洗的深度应用​(第四课)
  • ChatGPT、DeepSeek等大语言模型助力高效办公、论文与项目撰写、数据分析、机器学习与深度学习建模等科研应用
  • SQL参数化查询:防注入与计划缓存的双重优势
  • 高性能MySQL集群:架构设计与优化实战指南
  • 银河麒麟系统上利用WPS的SDK进行WORD的二次开发
  • 【Oracle学习笔记】7.存储过程(Stored Procedure)
  • jvm的调优命令jstack打印堆栈信息阐述以及调优
  • 04_Americanas精益管理项目_数仓搭建
  • VMware vSphere 9与ESXi 9正式发布:云原生与AI驱动的虚拟化平台革新
  • QT控件 使用Font Awesome开源图标库修改QWidget和QML两种界面框架的控件图标
  • Maven 中,dependencies 和 dependencyManagement