##VectorCAST技术支持培训编译器配置,可以通过下面添加,提供编译器定制,技术支持,培训。
wanglequshuijiao
有需要可以加详细聊
vx
【(QAC、Klocwork、Coverity、Polyspace、VectorCAST、TestBED、Tessy、C++Test)静态单元测试软件下载安装试用-哔哩哔哩】 https://b23.tv/J7QZ6rp
在这里向大家推荐做嵌入式代码测试工具VectorCAST以及两种代码黑盒测试的测试方法!
一、VectorCAST
VectorCAST/C++ 是Vector公司旗下一款集成的软件测试解决方案,可显著减少验证安全关键型和任务关键型嵌入式系统所需的测试C/C++软件组件的时间、精力和成本。
VectorCAST基于RAD模型开发,实现了与RAD模型的丰富集成,在功能上覆盖了需求分析、单元测试、集成测试、覆盖率分析、回归测试、部分系统测试等软件测试所涉及的各个环节。VectorCAST可运行在Windows、Linux等操作系统下,它最大的特点同时也是相比于其它同类工具最大的优势,就在于最大程序的自动化和更适合用于嵌入式环境。
针对客户不同的代码测试需求,VectorCAST为客户提供了对应的解决方案,其中包括VectorCAST/C++和VectorCAST/QA工具;VectorCAST/C++用于单元/集成测试,VectorCAST/QA用于系统测试。
VectorCAST/C++ 不仅支持白盒下的功能测试和结构覆盖测试,也支持黑盒下的软件功能测试——目标文件测试(Object File Testing)和库接口测试(Library Interface Testing)。
二、使用VectorCAST/C++进行目标文件测试
目标文件测试就是使用目标文件通过VectorCAST工具生成测试套件而进行的功能测试。
1、单元测试操作步骤:
a.启动工具,设置工作路径,创建新工程并命名,选择正确的编译链(以GCC编译链为例(点击链接可查看编译方法));
b.进入创建测试环境(8大步)。
Step1:选择编译器,详细配置方法参见代码的黑盒测试(上)| 目标文件测试Object File Testing - 知乎 (zhihu.com)。
Step2:命名测试环境(默认字母大写,空格为下划线)。
Step3:测试方式。选择目标文件测试方式,然后选择待测目标文件manager.o。如下图所示。
选择待测目标文件“manager.o”
Step4:构建选项。要选择Code Coverage为None,VectorCAST才会使用之前编译的目标文件。
Step5:本地源代码文件。使用双加号添加包含修改后的源文件所在路径。
Step6:选择UUTs和桩。
Step7:User Code可选选项。本实例不需要,直接跳过。
Step8:测试环境配置概览。成功构建测试环境,如下图所示。
成功构建测试环境
c.构建测试环境后,我们就可以根据测试需求(功能需求,表1中序号1),创建和执行测试用例,如图所示。
创建、执行测试用例
2、集成测试
集成测试工程构建内容与单元测试很类似,仅在构建测试环境的第3步和第6步不同。集成测试一般会在第3步将相应的多个.o文件同时加进来;第6步将相应的多个修改后的源文件同时加进来。
然后使用组合测试功能,将单体测试用例按照一定的逻辑功能进行排列,执行组合测试用例。
三、利用VectorCAST/C++进行库接口测试
库接口测试方法是指VectorCAST将解析C/C++头文件中存在的函数和方法的定义,并基于这些创建测试环境,允许在没有可用源代码的情况下使用现有库或DLL创建测试。
这里只对测试方法进行简单的阐述,详细测试方法和配置步骤参见文章:代码的黑盒测试(下)| 库接口测试Library Interface Testing - 知乎 (zhihu.com)
(一)利用VectorCAST/C++进行静态库接口测试
1、静态库文件的生成
对于这个点餐主程序manager_driver.c,我们可以将manager.c和database.c分别作为一个调用的库文件来使用,也可以一起作为一个调用的库文件来使用。本例中,将manager.c和database.c一起作为一个调用的库文件来使用。
使用一个BAT脚本生成静态库文件,脚本内容如下:
set path=%VECTORCAST_DIR%\mingw\bin;%PATH%
gcc -c manager.c
gcc -c database.c
ar rcs manager_driver.lib manager.o database.o
2、环境构建基本过程
VectorCAST环境构建的基本过程在代码的黑盒测试(上)| 目标文件测试Object File Testing有详细说明,这里不再赘述,对于不同的以及需要注意的地方,有如下说明:
本例中,我们是利用manager.c和database.c一起生成静态库文件manager_driver.lib的,所以在构建测试环境的第3步需要选择“库接口测试方法”并在“Link Options”添加该文件及所在路径,如图1所示。同时在构建测试环境的第6步添加需要的头文件,有manager.h和database.h,如图2所示。
图1 选择添加静态库文件manager_driver.lib
图2 选择添加头文件manager.h或database.h
3、测试用例编写与执行
按照上述说明成功构建测试环境。编写测试用例及执行测试用例,结果如下图所示。
测试用例编写与执行
测试用例编写与执行
细心的小伙伴可以注意到上图左边部分只有显示了执行状态图标,因为我们采用的该种测试属于黑盒测试方法,所以我们在构建环境的第4步,没有勾选“Whitebox”前面的复选框,自然也没有结构覆盖度图标。
(三)利用VectorCAST/C++进行动态库接口测试
1、动态库文件的生成
与静态库文件生成类似,将manager.c和database.c一起作为一个调用的动态库文件来使用。
使用一个BAT脚本生成动态库文件,脚本内容如下:
set path=%VECTORCAST_DIR%\mingw\bin;%PATH%
gcc -c -fPIC manager.c -o manager_dyn.o
gcc -c -fPIC database.c -o database_dyn.o
gcc manager_dyn.o database_dyn.o -shared -o libmanager_drive.dll
2、环境构建基本过程
动态库接口测试与静态库接口测试基本一致,不同的地方如下说明:
此例中,我们仍利用manager.c和database.c一起生成动态库文件manager_driver.dll,所以在构建测试环境的第3步选择“库接口测试方法”并在“Link Options”添加该动态库dll文件,如图所示。后面的操作与静态库接口测试一致,故不再赘述。
选择添加动态库文件manager_driver.dll