sss
??????? ???????? ????????? ?????? ?????? ???? ????????? ???????? ?????? ??????? ????? ???? ??????? ?????????? ???? ??????? ?????? ???????? ???????? ???? ?????? ????????? ???? ??????? ?????? ?????? ????? ??????? ??? ag接口 ??? ???
赛若科技

语言/Language

SimTest
C++Test
SmartDoc
VectorCAST
VectorCAST-自动化测试解决方案
发布时间:[2017-6-2]  

VectorCAST自动化测试软件方案

、功能和性能指标

       VectorCAST 是主要用于C/C++/Ada程序的自动化测试软件,能够运行在WindowsLinux等多种开发环境。其主要功能包含自动化的单元测试、集成测试、覆盖率分析、回归测试、代码静态分析和测试需求跟踪,其最大特点或相比于其它相关同类工具最大的优势,就在于最大程度的自动化更适用于嵌入式环境。以下予以分别阐述:

·         单元测试

       VectorCAST 会根据被测代码和开发环境自动构建测试架构(Test Harness),在此基础上用户可以根据需要自动地生成或添加测试用例,并灵活地配置以实现不同的测试需求。自动生成的架构中包括:被测对象、测试驱动、桩函数和依赖条件。如下图1所示。

 

1. VectorCAST自动构建的测试架构

 

 

Ø  自动生成测试用例

       VectorCAST 支持用户以多种形式的输入输出参数自动地生成测试用例,不需要用户编写测试代码,完全通过鼠标和输入窗口自动完成:

  • 最大值、最小值和中间值
  • 二进制、十进制、八进制和十六进制数值
  • 输入参数范围
  • 多个参数自动排列组合及配对
  • 等价类划分
  • 输入值列表
  • 期望输出值列表
  • 期望值容错误差范围
  • 从外部数据源,如xlc, csv 等,中导入测试用例参数

 

2:测试用例输入输出值编辑窗口

 

       VectorCAST 可以根据不同的覆盖率的算法分析测程序逻辑,自动地生成满足不同要求覆盖率要求的测试用例,以尽可能地达到覆盖率要求。对于未能覆盖的部分,用户可以根据工具提供的逻辑分析报告,如基本路基逻辑和MC/DC 等价类矩阵,用户按照分析结果提示的参数条件额外添加少量测试用例即可达到100%的覆盖率(参见下图3)。

  • 基本路径覆盖自动生成用例通常可以自动达到90%100%的覆盖率
  • MC/DC覆盖自动生成用例覆盖率视测代码实际情况而定

 

3MC/DC等价类分析矩阵

Ø  桩函数

       被测函数所调用的其它函数可以通过形式被执行,被调函数本身或桩函数。从全部调用实际函数到全部由桩函数替代,用户可以根据自己需要灵活设定需要打桩的对象。VectorCAST 可以支持添加不同输入输出的桩函数,简单的如int, float, double, char 等基本类型变量,也可以支持非常复杂的结构或对象变量。重要的是,这些桩函数基本都只需GUI 操作即可完成,一般不需要人工编写测试代码。

 

Ø  测试用例的执行

       VectorCAST 对测试用例的执行方式采用真正的数据驱动方式(Data-Driven),所谓数据驱动,就是指测试用例数据只有在测试用例执行的时候才会被读取,而不会随测试代码、桩函数和测试驱动等等一起构建到最终的执行程序中。这样的好处是1)构建和执行速度快;2)当被测对象未变动的情况下,对测试用例的输入输出参数进行修改,测试用例不需要重新编译构建。

 

Ø  测试结果验证

       测试用例执行完之后,VectorCAST 除了能对被测单元的实际return 值进行断言以外,包括简单类型和覆盖结构体,还可以对它依赖关系中的变量结果值或其成员变量进行验证,报告TrueFalse 断言结果。

 

Ø  复杂度分析

       测试用例执行结束之后,VectorCAST 会统计相关程序的圈复杂度,并自动生成报告。如下图4所示。

4VectorCAST 圈复杂度分析报告

 

Ø  测试报告

       测试结束后,VectorCAST 自动生成详细的测试报告,包括所有测试用例、测试用例输入输出数据、断言结果、程序度量分析结果、不同覆盖率报告和MC/DC 等价类分析矩阵。

 

·         集成测试

       VectorCAST 除了测试单个函数或单元以外,还可以用于模块集成测试,不同模块直接的接口调用是否正确。主要体现在:

  • 通过集成不同单元的测试用例,任意组合其执行顺序和执行次数,以达到集成测试多个单元的目的
  • 通过测试用例让多个单元实际调用其它单元,以验证相互调用接口的执行结果
  • 直接根据头文件生成测试用例,测试源码未可见的库函数的接口及功能

 

·         对嵌入式环境的支持

       测试用例可以在主机(Host),模拟器(Simulator)或目标板(Target)上执行,并收集测试结果在主机平台统一查看。对于嵌入式环境,可以通过目标板特有的通讯条件,如串口、以太网口、JTAG 或调试器等实现测试结果到主机的传输。

 

       VectorCAST 支持近100C/C++嵌入式交叉编译器和60多种Ada嵌入式编译器。广泛适用于航空航天,国防军事相关的研发环境。

 

·         覆盖率分析

       统计多种覆盖率。VectorCAST 的覆盖率分析功能可以统计多种测试覆盖率,包括语句覆盖(Statement)、分支覆盖(Branch)和MC/DC 覆盖。并通过在原代码中以颜色和数字标注、百分比率和综合详细的报告等不同方式显示。如下图5所示。

5VectorCAST覆盖率统计报告

 

       综合多种覆盖率数据。VectorCAST 可以集中显示多次测试、不同测试的测试覆盖率结果,包括单元测试、集成测试、系统测试、C/C++程序覆盖率和Ada覆盖率的覆盖率都可以综合地显示在一个报告中。这样即使分别执行测试用例,也可以获的统计叠加的覆盖率结果。在覆盖率要求严格的项目中尤为有用。

 

       自动录制动画回放程序覆盖的路径。VectorCAST 可以记录测试用例执行过程中被测代码的执行路径,并支持用户播放、暂停和设定断点等方式进行查看。这样用户可以直观地了解被覆盖的代码是如何覆盖的,没有覆盖的代码为什么没有覆盖到,从而准确地添加测试用例,提高覆盖率。

 

·         回归测试

       强大的回归测试功能,VectorCAST 能集中管理全部的C/C++Ada 程序的测试环境和测试驱动,通过GUI 或命令行的方式定期地运行,从而根据测试用例的执行情况及时地发现代码中“意外引入的错误”,保证测试过的代码和新增代码质量的持续稳定。

 

VectorCAST/Manage

6VectorCAST回归测试结果

 

具体地,VectorCAST 的回归测试功能有如下特点:

o   集中管理测试用例

o   提供整个工程每日的质量报告

o   支持敏捷开发

o   可以方便运行在不同版本的源码库上

o   支持命令行和GUI

o   支持多台机器分部运行

o   统计测试用例执行时间

o   提供可视化图表和趋势图

o   便于掌控整个项目的质量和进度

 

·         支持敏捷开发(TDD

       VectorCAST 可以完美地支持敏捷开发流程(TDD)。TDD 要求先根据需求开发测试用例,然后再开发,让测试用例逐步通过,最终完成整个开发。VectorCAST 只需要项目头文件就可以生成测试环境,用户能根据需要增加测试用例,不需要额外编写测试代码。生成好当有代码被开发出来后,可以直接将被测程序更新进测试环境,构建并运行测试用例,支持编码完成所有测试用例全部通过。在整个开发过程中,还可以使用回归测试功能对所有测试用例持续地执行,确保每日的进度和质量。

 

·         静态代码分析

       VectorCAST 集成了静态代码分析功能,可以在不执行代码的情况下,通过内建的编码规范对程序进行分析,如MISRA C, MISRA C 2004MISRA C++ 2008. 对每一个报告出来的错误,VectorCAST 都会显示详细的说明、严重度等级和详细的文档。以帮助用户方便地分析和修改测试结果。

·         测试需求跟踪

       VectorCAST 的需求跟踪功能可以跟常用的需求管理系统集成,如DOORS, RequisiteProCSV数据库等。从需求管理系统中导入需求,然后将VectorCAST测试用例和测试结果与之关联,连同备注再导出到需求管理系统。从而确保每个需求都能被测试用例所覆盖,并管理每个需求所对应的测试用例的正确执行。这对产品的系统测试和最终验证是至关重要并且实用的,用户不用再手工地做这些验证和文档工作了。参见图7.

 

TAG Requirements

7: 在VectorCAST中集成需求管理系统

 

·         工具认证包(Certification Kits

       Vector Software 公司提供用于航空航天DO-178B/DO-278,铁路系统EN50128,汽车电子ISO26262,工业控制IEC 61508和医疗器械IEC 62304等不同行业认证标准的验证包。其中对VectorCAST 的各个功能进行了详细的验证和说明,证明VectorCAST 满足标准对开发过程中使用的工具的要求,是能够用在有相关认证要求的项目的研发和测试工作中的。帮助产品或项目顺利地通过相关认证,获得行业认证证书。

 

、技术方案

       VectorCAST 作为自动化的测试软件和解决方案,可以有机地集成到已有的开发流程中,也可以作为一个独立的质量解决方案。如下图8所示,将VectorCAST 作为嵌入式测试的质量中心,其不同产品模块可以用于各个方面的测试,包括:

  • 单元测试
  • 集成测试
  • 覆盖分析
  • 静态分析
  • 回归测试

 

同时又可以集成和整合其它系统和测试,包括:

  • 源码控制系统
  • 需求管理系统
  • 系统测试(部分)

 

       从而形成一个整合而又灵活的测试和质量控制体系。从需求分析、到编码、单元测试、集成测试、回归测试及覆盖率,到需求跟踪和验证,VectorCAST 提供了贯穿软件研发的全生命周期管理的解决方案,真正从根本上保证研发的质量和效率,特别是对高安全和高可靠性要求及其严格的航空航天系统,VectorCAST 提供的这样的自动化测试更显得尤为重要且必不可少。

 

8VectorCAST 整合的测试方案

 

       VectorCAST 的实施和部署可以采取分步进行的方式,先对各个模块根据其需求紧迫程度和难易程度逐步予以熟悉和应用,如可以采取从静态分析-> 单元测试 -> 代码覆盖率分析 -> 回归测试 -> 需求管理和跟踪,到最后将其全部整合起来的方式。其中每个环节都需要严格的部署计划和实施质量考核标准,以确保整个部署过程有条不紊地完成。

 

       系统应用起来后,VectorCAST 原厂技术人员还会配合用户对软件的使用情况予以定期的回访,协助解决出现的技术问题,并优化使用流程,保证软件在用户的研发中发挥长期有效的作用。

 

、系统组成

       VectorCAST解决方案主要由以下几个模块组成:

 

VectorCAST/C++ & Ada, C/C++/Ada 程序的单元测试和集成测试环境的生成、编辑、构建、执行、覆盖率分析、复杂度分析和测试结果统计等等。

 

VectorCAST/Cover, 统计无论是单元测试、集成测试还是系统测试的覆盖率,并可以将不同次测试的结果综合到统一的报告中。

 

VectorCAST/MCDC, 统计MC/DC 覆盖率。

 

VectorCAST/Manage, 自动化的回归测试功能及项目的整体质量集中管理中心。

 

VectorCAST/Lint, 自动化代码静态分析模块。

 

VectorCAST/RSP, 用户宿主机和目标机的通讯,收集测试用例在目标机执行之后的测试结果和数据。嵌入式的测试必备模块。

 

VectorCAST/RGW, 用于集成需求管理系统,使用测试用例跟踪测试需求并导出数据。

 

VectorCAST Qualification Kits, 提供用于支持DO-178B, IEC61508, ISO26262EN50128等行业所需的验证材料套件。

联系我们 | 网站地图
版权所有©北京赛若科技有限公司
Copyright 2007 http://www.antares-testing.com All Right Reserved.