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 工具,除了测试单个函数或单元以外,还可以用于模块集成测试,不同模块直接的接口调用是否正确。主要体现在:

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

待续。。。

VectorCAST软件自动化测试方案的更多相关文章

  1. 基于Ruby的watir-webdriver自动化测试方案与实施(二)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ...   回顾 软 ...

  2. 基于Ruby的watir-webdriver自动化测试方案与实施(一)

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  3. 用selenium工具做软件自动化测试的面试题及答案

    1.selenium中如何判断元素是否存在? 答:isElementPresent 2.selenium中hidden或者是display = none的元素是否可以定位到? 答:不可以定位到 3.s ...

  4. XXX接口自动化测试方案

    XXX接口自动化测试方案 1.引言 1.1 文档版本 版本 作者 审批 备注 V1.0 XXXX 创建测试方案文档 1.2 项目情况 项目名称 XXX 项目版本 V1.0 项目经理 XX 测试人员 X ...

  5. App自动化测试方案

    App自动化测试方案 1.1  概述 什么是App自动化?为什么要做App自动化? App自动化是指给 Android或iOS上的软件应用程序做的自动化测试. 手工测试和自动化测试的对比如下: 手工测 ...

  6. 基于Ruby的watir-webdriver自动化测试方案与实施(五)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(四) http://www.cnblogs.com/Javame/p/4164570.html 继续 ... ... 关于特殊控件 ...

  7. 基于Ruby的watir-webdriver自动化测试方案与实施(四)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(三) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   首先回忆 ...

  8. 基于Ruby的watir-webdriver自动化测试方案与实施(三)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   编写脚本 ...

  9. 基于Ruby的Watir-WebDriver自动化测试方案

    Watir-WebDriver       —— 软件测试的自动化时代 QQ群:160409929 自动化测试方案书 系统架构 该自动化测试框架分三个模块:Test用例.Control控制层.Tool ...

随机推荐

  1. zookeeper问题在公司可以 回到家用家里网不行 目前还没有解决

    Opening socket connection to server 192.168.1.193/192.168.1.193:2181. Will not attempt to authentica ...

  2. 保姆级别的vue + ElementUI 搭建后台管理系统教程

    vue + ElementUI 搭建后台管理系统记录 本文档记录了该系统从零配置的完整过程 项目源码请访问:https://gitee.com/szxio/vue2Admin,如果感觉对你有帮助,请点 ...

  3. [atARC105F]Lights Out on Connected Graph

    记$G[S]$表示图$G$在点集$S$上的导出子图,即$G[S]=(S,{(x,y)|x,y\in S且(x,y)\in E})$ 定义$g(S)$为所有$E'$(满足$E'\subseteq G[S ...

  4. 基于 Docker 安装 RocketMQ

    docker-compose.yml version: '3.5' services: rmqnamesrv: image: foxiswho/rocketmq:server container_na ...

  5. HTML四种定位-固定定位

    固定定位 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset=&q ...

  6. SubsamplingScaleImageView 源码解析

    一开始没打算分析 SubsamplingScaleImageView 这个开源的图片浏览器的,因为这个库在我们 App 中使用了,觉得自己对这个库还是比较熟悉的,结果某天再看看到源码介绍的时候,才发现 ...

  7. Topcoder 10748 - StringDecryption(dp)

    题面传送门 神仙题. 首先这个两次加密略微有点棘手,咱们不妨先从一次加密的情况入手考虑这个问题.显然,一次加密等价于将加密过的序列划分成若干段,每一段都是 \(xd\) 的形式表示这一段中有 \(x\ ...

  8. Codeforces 446D - DZY Loves Games(高斯消元+期望 DP+矩阵快速幂)

    Codeforces 题目传送门 & 洛谷题目传送门 神仙题,%%% 首先考虑所有格子都是陷阱格的情况,那显然就是一个矩阵快速幂,具体来说,设 \(f_{i,j}\) 表示走了 \(i\) 步 ...

  9. python-django-数据查询条件

    查询用户的状态是2或者是4的情况 空值和空字符串是不一样的东西!!! 需要注意的是: 项目setting.py里面的时区采用的是美国的时区,我们不要使用这个时区 使用这个时区的,我们输入的日期会进行转 ...

  10. 8核cpu,,负载

    今天有一个电话面试,面试官问我:CentOS怎么查看CPU负载?我说:看top的第一行有load average.面试官又问:为什么从这就判定是负载高呢?依据是什么呢?然后... 然后我就尴尬了,挂了 ...