VectorCAST是Vector旗下的一款权威的用于C/C++代码的动态自动化测试工具,可实现单元/集成测试(VectorCAST/C++)和系统测试(VectorCAST/QA)。VectorCAST遵循ASPICE、ISO26262等行业标准,适用于对自身有高安全性和高可靠性要求的嵌入式系统,降低开发风险,提高代码质量。
VectorCAST基于RAD模型开发,实现了与RAD模型的丰富集成,在功能上覆盖了需求分析、单元测试、集成测试、覆盖率分析、回归测试、部分系统测试等软件测试所涉及的各个环节。VectorCAST可运行在Windows、Linux等操作系统下,它最大的特点同时也是相比于其它同类工具最大的优势,就在于最大程序的自动化和更适合用于嵌入式环境。
图1 RAD模型
针对客户不同的代码测试需求,VectorCAST为客户提供了对应的解决方案,其中包括VectorCAST/C++和VectorCAST/QA工具;VectorCAST/C++用于单元/集成测试,VectorCAST/QA用于系统测试。
VectorCAST/C++
VectorCAST/C++是一套集成的软件测试解决方案,主要用于代码的动态单元测试和集成测试,能显著降低测试过程中所必需的时间、工作量以及成本。
图2 VectorCAST/C++
VectorCAST/C++特性:
- 基于需求分析的测试
VectorCAST/C++可以与多种在线需求管理服务器比如Polarion/DOORS/PTC/IBM或者本地需求文档实现联调,基于测试需求自定义测试用例,实现测试用例和测试需求的双向追溯。
- 代码覆盖度分析
VectorCAST/C++提供集成的代码覆盖分析工具,在单个或者多个测试执行中,提供关于源代码语句的报告,在源代码中,通过颜色标注代码的覆盖状态,红色代表语句未被覆盖,黄色代表语句部分覆盖,绿色代表语句被覆盖,在报告中,根据覆盖度需求,可通过颜色和百分比的方式统计多种测试覆盖率,为用户指明代码覆盖信息。
图3 VectorCAST覆盖率统计
- 自动创建测试用例
VectorCAST/C++支持用户以多种形式的输入输出参数自动生成测试用例,不需要用户编写测试代码,完全通过GUI窗口自动完成参数设定,也可以基于不同的覆盖度需求自动创建测试用例,尽可能地达到覆盖度要求,包括基本路径、等价类、边界值和MC/DC测试用例,满足ISO26262中ASIL D的等级要求。对于基本路径覆盖,VectorCAST自动生成的测试用例可以达到90%~100%的覆盖率;对于MC/DC覆盖度, VectorCAST会基于MC/DC覆盖度要求分析代码结构,自动生成测试用例,用户也可根据MC/DC真值表去分析代码结构并创建测试用例。
图4 自动创建测试用例
- 回归测试
VectorCAST具有强大的回归测试的功能,可通过GUI—Incremental或命令行的方式定期的执行测试用例,以增量的方式重构测试环境,检查代码变更,只执行被影响到的测试用例,节约项目测试时间,降低项目版本维护的成本。
- 嵌入式目标环境测试----VectorCAST/RSP
VectorCAST/RSP是VectorCAST的工具套件中的实时支持包,VectorCAST/C++结合VectorCAST/RSP使用,支持在嵌入式目标板或是仿真器上直接进行实时应用测试,测试用例在主机设计,在嵌入式目标环境运行,实现嵌入式目标环境的实时测试。
- 编译器集成
鉴于丰富的嵌入式系统,VectorCAST/C++支持多种(300+)主流的编译器,所有VectorCAST/C++生成的测试工具组件都将使用编译器自动编译和链接,同时VectorCAST/C++还提供了到编译器调试器的接口,以便可以在调试器的控制下运行测试用例。VectorCAST/C++支持的编译器和嵌入式环境列表(部分):
- 测试执行跟踪和回放
考虑到代码的复杂度以及测试人员对代码的熟悉度,VectorCAST/C++支持单步回放测试用例对应代码的执行轨迹,协助完成代码覆盖度分析和代码调试。
- 批量插入测试用例
VectorCAST/C++支持导入CSV等格式的数据列表,批量生成测试用例。
- 与Jenkins集成实现持续集成开发/测试
VectorCAST/QA
VectorCAST/QA主要用于嵌入式开发的自动化系统测试,为白盒系统测试提供了一个集成的工作流程。VectorCAST/QA 通过集成用户软件编译/构建环境和已有的测试基础架构,进而获取软件在系统测试中的关键指标,如代码复杂度、代码变更频率、测试用例状态和代码覆盖度等。
VectorCAST/QA的特性:
- 在系统测试期间自动捕获和维护代码覆盖率数据,帮助用户快速识别未被测试的部分,并确定提高测试完整性所需的资源;
- 基于变更的测试,自动计算提供完整测试更改所需的最小测试集,或者是甄别出因代码变更而受影响的测试用例并重新执行;
- VectorCAST/QA本身不能生成测试用例,但是VectorCAST/QA可以沿用客户已有的系统测试的框架和测试用例;
- 自动对客户的源码进行插桩,添加代码覆盖率接口;添加覆盖率接口,会使得源代码有所膨胀,插桩越细致,代码膨胀率越大,所以VectorCAST/QA对系统有一定的要求;
- 与Jenkins集成,在Jenkins中持续不断执行测试,实现持续集成开发/测试。
图5 VectorCAST/QA
资质认证
VectorCAST通过了南德TÜV认证,遵循相关的行业认证标准,比如汽车行业内熟知的ASPIC, ISO26262(ASIL D),工业标准IEC 61508,轨道交通行业标准EN50126等,而且VectorCAST也是目前市面上“唯一”一款针对大/小版本进行认证,并免费提供给用户《Safety Manual》协助其认证的代码测试工具集。
图6 认证证书