TA的每日心情 | 无聊 3 天前 |
---|
签到天数: 530 天 连续签到: 2 天 [LV.9]测试副司令
|
VectorCAST™ 是主要用于对C/C++/Ada程序进行软件自动化测试,并能够在Windows和Linux等多种开发环境下运行。其主要功能包含自动化的单元测试、集成测试、覆盖率分析、回归测试、代码静态分析和测试需求跟踪,它最大特点或相比于其它相关同类工具最大的优势,就在于能够实现最大程度的自动化而且更适用于嵌入式环境。以下分别予以阐述:
单元测试
VectorCAST 会根据被测代码和开发环境自动构建测试套件(Test Harness),在此基础上用户可以根据需要自动地生成或添加测试用例,并灵活地配置以实现不同的测试需求。自动生成的架构中包括:被测对象、测试驱动、桩函数和依赖条件。
自动生成测试用例
VectorCAST 支持用户以多种形式的输入输出参数自动地生成测试用例,不需要用户编写测试代码,完全通过鼠标和输入窗口即可自动完成:
- 最大值、最小值和中间值
- 二进制、十进制、八进制和十六进制数值
- 输入参数范围
- 多个参数自动排列组合及配对
- 等价类划分
- 输入值列表
- 期望输出值列表
- 期望值容错误差范围
从外部数据源,如xlc, csv 等,中导入测试用例参数
VectorCAST 可以根据不同的覆盖率的算法分析测程序逻辑,自动地生成满足不同覆盖率要求的测试用例,以尽可能地达到覆盖率要求。对于未能覆盖的部分,用户可以根据工具提供的逻辑分析报告,如基本路基逻辑和MC/DC 等价类矩阵,用户按照分析结果提示的参数条件额外添加少量测试用例即可达到100%的覆盖率.
基本路径覆盖 — 自动生成用例通常可以自动达到90%~100%的覆盖率
MC/DC覆盖 — 自动生成用例覆盖率视测代码实际情况而定
2. 桩函数
被测函数所调用的其它函数可以通过形式被执行,被调函数本身或桩函数。从全部调用实际函数到全部由桩函数替代,用户可以根据自己需要灵活设定需要打桩的对象。VectorCAST 可以支持添加不同输入输出的桩函数,简单的如int, float, double, char 等基本类型变量,也可以支持非常复杂的结构或对象变量。重要的是,这些桩函数基本都只需GUI 操作即可完成,一般不需要人工编写测试代码。
3. 测试用例的执行
VectorCAST 对测试用例的执行方式采用真正的数据驱动方式(Data-Driven),所谓数据驱动,就是指测试用例数据只有在测试用例执行的时候才会被读取,而不会随测试代码、桩函数和测试驱动等等一起构建到最终的执行程序中。这样的好处是
- 1)构建和执行速度快;
- 2)当被测对象未变动的情况下,对测试用例的输入输出参数进行修改,测试用例不需要重新编译构建。
4. 测试结果验证
测试用例执行完之后,VectorCAST 除了能对被测单元的实际return 值进行断言以外,包括简单类型和覆盖结构体,还可以对它依赖关系中的变量结果值或其成员变量进行验证,报告True或False 断言结果。
5. 复杂度分析
测试用例执行结束之后,VectorCAST 会统计相关程序的圈复杂度,并自动生成报告。
6. 测试报告
测试结束后,VectorCAST 自动生成详细的测试报告,包括所有测试用例、测试用例输入输出数据、断言结果、程序度量分析结果、不同覆盖率报告和MC/DC 等价类分析矩阵。
集成测试
VectorCAST 除了测试单个函数或单元以外,还可以用于模块集成测试,不同模块直接的接口调用是否正确。主要体现在:
- 通过集成不同单元的测试用例,任意组合其执行顺序和执行次数,以达到集成测试多个单元的目的
- 通过测试用例让多个单元实际调用其它单元,以验证相互调用接口的执行结果
- 直接根据头文件生成测试用例,测试源码未可见的库函数的接口及功能
|
|