中文  |  English
所在位置:研发工具 > VectorCAST—嵌入式代码自动化测试工具

VectorCAST—嵌入式代码自动化测试工具

图片1.png


VectorCAST是Vector旗下一款权威的用于嵌入式C/C++代码的动态白盒测试工具集,可实现高度自动化的动态单元测试和集成测试(VectorCAST/C++)和部分系统测试(VectorCAST/QA)。VectorCAST遵循ASPICE、功能安全ISO26262等行业标准,适用于对自身有高安全性和高可靠性要求的嵌入式系统,可以降低开发风险,提高代码质量。VectorCAST最大的特点同时也是相比于其它同类工具最大的优势,就在于最大程序的自动化和更适合用于嵌入式环境。

北汇信息作为Vector的合作伙伴,为中国客户提供专业的动态代码测试解决方案。

VectorCAST基于V模型开发,在功能上可以覆盖软件测试的各个环节:需求分析、单元测试、集成测试、覆盖率分析、回归测试、部分系统测试。针对客户不同的代码测试需求,VectorCAST为客户提供了对应的解决方案,其中包括VectorCAST/C++和VectorCAST/QA工具;VectorCAST/C++用于单元/集成测试,VectorCAST/QA用于系统测试。

屏幕截图 2025-11-03 092257.png


图1  V模型



VectorCAST/C++

VectorCAST/C++是一套高度自动化的软件测试解决方案,支持在Windows和Linux系统中稳定运行,用于C\C++代码的动态单元测试和集成测试,能显著降低测试过程中所必需的时间、工作量以及成本。

图片3.png

图2  VectorCAST/C++ 原理


VectorCAST/C++特性:

1)需求管理

VectorCAST支持集成多种在线需求管理工具,如Codebeamer/Doors/IBM/Polarion/等,同时支持本地CSV格式需求管理文档导入;支持基于需求创建测试用例并与需求链接,实现测试用例和测试需求的双向追溯。

图片4.png

图3  需求管理集成


2)测试环境创建

VectorCAST支持自动生成测试环境套件并预先构建测试套件;支持集成实际编译链进行测试,包括业内主流的编译链以及目标芯片,如Greenhills,Keil,Hightec,Tasking,Windriver等300多种主流交叉编译环境,并提供对应的编译配置包(VectorCAST/RSP)。通过结合VectorCAST/C++与VectorCAST/RSP配置包,既可以实现通过UDE,Trace32等调试器联调后在嵌入式目标板上进行实时测试,也可以完美脱离硬件,在仿真模拟器上直接进行实时应用测试。测试用例在主机设计,在嵌入式目标环境运行,实现嵌入式目标环境的实时测试。

VectorCAST/C++支持部分编译器:

图片5.png

图4  编译器支持(部分)


3)测试用例创建

VectorCAST/C++既可以通过图形化界面编写测试用例,也支持用户以多种方式自动生成测试用例,如基于语句/分支/MCDC覆盖度方式自动生成测试用例、基于等价类和边界值方式自动生成测试用例、基于ATG方式自动生成测试用例,还可以基于分类树生成测试用例,基于CSV数据列表批量生成测试用例。且每条测试用例之间都互相独立,不具备耦合。

图片6.png

图5  测试用例创建


4)自动插桩处理

VectorCAST/C++插桩算法强大,支持基于被测代码自动生成桩函数,无需手动编写或选择测试桩代码,同时支持对桩函数进行编辑以满足用户需求;支持手动插桩,包括对标准库函数以及自定义函数等进行手动插桩。

图片7.png

图6  自动插桩/手动插减桩



5)覆盖度统计分析

VectorCAST/C++提供多种覆盖度指标,包括语句(statement)覆盖、分支(Branch)覆盖、MC/DC覆盖、Function(函数)覆盖、Function Call(函数调用)覆盖以及相关覆盖度的组合覆盖,以满足不同标准对覆盖度的不同要求,针对解析后的被测代码,可通过不同颜色标注当前代码的覆盖状态。VectorCAST/C++也支持CBA手动覆盖功能,用于满足无法通过测试用例覆盖的代码覆盖度要求。

图片8.png

图7  VectorCAST覆盖率统计


6)参数类型解析

VectorCAST/C++支持解析C/C++代码中各类基础数据类型及复杂数据类型,同时完美支持C++11,C++14以及C++17的特性,并且针对大部分C++的特性,可实现图形化界面操作。

图片9.png

图8  参数类型解析



7)回归测试

VectorCAST/C++具有强大的回归测试的功能,可通过GUI->Incremental或命令行的方式执行测试,以增量的方式重构测试环境,检查代码变更,只执行被影响到的测试用例,节约项目测试时间,降低项目版本维护的成本。

图片10.png

图9  回归测试



8)支持Probe Point功能,在测试代码中插入代码以实现故障注入,局部变量打印,断点调试功能

图片11.png

图10  Probe Point功能



9)测试报告

VectorCAST/C++支持多种输出格式、多种测试类型的中英文报告。

10)CI/CT集成

VectorCAST/C++支持与Jenkins等CI工具集成,提供Jenkins官方插件,可实现一键集成,无需编写集成脚本,也支持通过Jenkins Pipeline并行执行多个测试环境,节省测试运行时间,还可以通过命令行进行集成,通过脚本来执行测试用例。

图片12.png

图11  jenkins集成



11)VectorCAST/C++支持超轻量化工程文件管理,即仅需几十或上百Kb的配置文件,便可实现超大型项目的快速完整迁移以及分布式团队协作功能。


VectorCAST/QA

VectorCAST/QA主要用于嵌入式开发的自动化系统测试,为白盒系统测试提供了一个集成的工作流程。VectorCAST/QA 通过集成用户软件编译/构建环境和已有的测试基础架构,进而获取软件在系统测试中的关键指标,如代码复杂度、代码变更频率、测试用例状态和代码覆盖度等。

VectorCAST/QA的特性:

1)在系统测试期间自动捕获和维护代码覆盖率数据,帮助用户快速识别未被测试的部分,并确定提高测试完整性所需的资源;

2)基于变更的测试,自动计算提供完整测试更改所需的最小测试集,或者是甄别出因代码变更而受影响的测试用例并重新执行;

3)VectorCAST/QA本身不能生成测试用例,但是VectorCAST/QA可以沿用客户已有的系统测试的框架和测试用例;

4)自动对客户的源码进行插桩,添加代码覆盖率接口;添加覆盖率接口,会使得源代码有所膨胀,插桩越细致,代码膨胀率越大,所以VectorCAST/QA对系统有一定的要求;

5)与Jenkins集成,在Jenkins中持续不断执行测试,实现持续集成开发/测试。

图片13.png

图12   VectorCAST/QA


资质认证

VectorCAST通过了南德TÜV认证,遵循相关的行业认证标准,比如汽车行业内熟知的ASPICE、ISO26262(ASIL D)、IEC 61508、EN50126等等,而且VectorCAST也是目前市面上“唯一”一款针对大/小版本进行认证,并免费提供给用户《Safety Manual》协助其认证的代码测试工具集

图片14.png



VectorCAST部分客户

图片15.png