嵌入式软件白盒测试,包括规则检查、单元测试、集成测试,在国内越来越受到很多嵌入式软件开发团队以及公司的重视。从安全性的角度来看,军工,航天,轨道交通,汽车电子等高安全性要求的行业,对于白盒测试的需求尤为重视。在较为成熟的欧美市场,这些行业的产品推向市场前,需要通过某个行业标准和认证,比如航天的DO-178B,轨道交通的EN50128 SIL认证,又比如汽车电子的ISO26262,又或者医疗行业的IEC62304等认证,这些认证中对于单元测试、集成测试、覆盖率等有明确的测试要求,软件测试人专业博客为满足这些行业性质的客户对于嵌入式软件白盒测试的需求,将撰写系列文章为读者介绍为专注于嵌入式白盒测试的工具 -- VectorCAST的功能和特性....
软件测试人专业博客,专注于白盒测试,在之前的系列文章中,也与大家分享了C++test的单元测试相关特点和功能,但从笔者在实际和使用C++test过程中,发现在单元测试领域,C++test在所支持环境,支持的认证标准,以及易用性、工程实践的角度看,存在或多或少的问题,简而言之,难以实施,因此在实际工作中,开始转而了解和学习新的更专业的专注于嵌入式C/C++/Ada语言的白盒测试工具VectorCAST,从近段时间学习和实际的过程中,真实的感受和了解到VectorCAST在嵌入式软件单元测试、集成测试方面有众多的优点,因此将分数篇文章深入介绍VectorCAST工具;
本文将分成系列文章分别介绍VectorCAST的功能:
C/C++/Ada嵌入式软件测试工具VectorCAST -- 嵌入式白盒测试工具 前言
C/C++/Ada嵌入式软件测试工具VectorCAST -- 系统测试VectorCover介绍 第一篇
C/C++/Ada嵌入式软件测试工具VectorCAST -- 单元测试/集成测试Vector C/C++介绍 第二篇
C/C++/Ada嵌入式软件测试工具VectorCAST -- 嵌入式支持Vector RSP介绍 第三篇
C/C++/Ada嵌入式软件测试工具VectorCAST -- 单元测试/集成测试/回归测试管理 Vector Manage介绍 第四篇
C/C++/Ada嵌入式软件测试工具VectorCAST -- VectorCAST支持的行业标准介绍 第五篇
VectorCAST是有一家专注于嵌入式软件测试的公司Vector Software,在1994年为Lockheed Martin’s C-130J “Super” Hercules而发布了第一个产品,后续不断完善和开发更多的功能,成就了今天的VectorCAST,支持众多的嵌入式环境支持C/C++语言,以及Ada语言,支持单元测试,集成测试,系统测试,支持不同行业的软件测试认证标准。
相比较软件测试人专业博客此前介绍的关于C++test,VectorCAST有如下特点:
1. 系统测试的覆盖测试功能,这一点是VectorCAST较为特别的功能,对于UI部分代码,单元测试难以实施,而针对这些代码要达成代码覆盖,通过VectorCAST Cover进行测试即可;
2. 支持的嵌入式环境更加多样,从C++test的用户手册中即可看到其支持的嵌入式环境通常只到编译器级,而实际上来说,不同的嵌入式编译器支持不同的芯片型号,比如以CCS来说,C++test的用户手册中介绍其支持CCS 3.1, CCS 3.3,但就以CCS 3.1来讲,其又支持2812,67xx, 5000系列的dsp芯片,这个级别上,如果你使用C++test,那么就碰到一个问题,不同的这些芯片级别的配置需要测试人员或者单元测试环境搭建者自己完善芯片级别的配置,这个工作非常麻烦,如果你对芯片不熟,对于C++test不熟,对于CCS不熟,任何一个不熟,基本上搭建成功的可能性非常小;而VectorCAST,在支持的环境列表中已经支持到芯片级,针对28xx, 67xx的芯片分别有现成的环境配置,因此简单容易上手;
3. 方便的覆盖率集成,VectorCAST覆盖率能够非常方便的集成在一起,先按文件进行测试,然后将各个源码文件的覆盖率集合起来形成整个项目的覆盖率,另外也可以将VectorCAST Cover的覆盖率集和起来,这样对于有覆盖率要求的项目,非常容易实施;
4. 测试用例自动生成,VectorCAST可以按照最大值最小值自动生成测试用例,还可以按为了提高分支覆盖率自动生成测试用例,也可以按照为了提高MC/DC覆盖率自动生成测试用例;支持CSV形式的导入测试用例;
5. VectorCAST Manage可以很方便的对单元测试,集成测试进行管理,支持变更测试,也即VectorCAST Manage可以自动侦测哪些源文件发生变化,并提示用户这部分代码已经被修改过,因此需要进行回归测试;