##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。如下图所示。

testbed程序标准_c语言

选择待测目标文件“manager.o”

Step4:构建选项。要选择Code Coverage为None,VectorCAST才会使用之前编译的目标文件。

Step5:本地源代码文件。使用双加号添加包含修改后的源文件所在路径。

Step6:选择UUTs和桩。

Step7:User Code可选选项。本实例不需要,直接跳过。

Step8:测试环境配置概览。成功构建测试环境,如下图所示。

testbed程序标准_测试环境_02

成功构建测试环境

c.构建测试环境后,我们就可以根据测试需求(功能需求,表1中序号1),创建和执行测试用例,如图所示。

testbed程序标准_testbed程序标准_03

创建、执行测试用例

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所示。

testbed程序标准_接口测试_04

图1 选择添加静态库文件manager_driver.lib

testbed程序标准_c语言_05

图2 选择添加头文件manager.h或database.h

3、测试用例编写与执行

按照上述说明成功构建测试环境。编写测试用例及执行测试用例,结果如下图所示。

testbed程序标准_c语言_06

测试用例编写与执行

testbed程序标准_测试工具_07

测试用例编写与执行

细心的小伙伴可以注意到上图左边部分只有显示了执行状态图标,因为我们采用的该种测试属于黑盒测试方法,所以我们在构建环境的第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文件,如图所示。后面的操作与静态库接口测试一致,故不再赘述。

testbed程序标准_c语言_08

选择添加动态库文件manager_driver.dll