基于VectorCAST软件的白盒测试技术研究

2018-07-31 09:19王夏辉
科技视界 2018年11期
关键词:软件测试

王夏辉

【摘 要】作為软件质量保证的重要手段之一,软件测试逐渐得到重视。白盒测试技术是单元级与部件级软件测试最常使用的技术之一,其在嵌入式软件测试领域的作用无可替代。本文介绍了VectorCAST软件,以及基于该软件的白盒测试过程。

【关键词】软件测试;白盒测试;VectorCAST

中图分类号: TP311.52 文献标识码: A 文章编号: 2095-2457(2018)11-0022-002

DOI:10.19694/j.cnki.issn2095-2457.2018.11.008

【Abstract】as one of the important means of software quality assurance, software testing has been paid more and more attention. White box testing technology is one of the most commonly used techniques in unit and component-level software testing, and its role in the field of embedded software testing is irreplaceable. This paper introduces VectorCAST software and the white box testing process based on the software.

【Key words】Software testing; White box testing; VectorCAST

0 前言

随着软件技术的发展,软件规模及软件逻辑复杂度获得了巨大的增长,而同时伴随的是不可避免的软件缺陷。近些年由于软件缺陷导致的事故案例不时见诸媒体,这不仅对软件开发方与管理方的声誉及经济造成了打击,更有可能对软件使用者的财产或生命安全造成危害。因此,软件测试作为软件质量保证的重要手段之一,得以得到重视。

软件测试是利用软件自动运行或人工操作的方式,验证被测软件是否满足规定的需求的过程。软件测试级别通常可以分为单元级、部件级、配置项级与系统级,不同级别的软件测试与软件开发过程的不同阶段相对应。

1 软件测试技术

软件测试技术可以分为白盒测试技术与黑盒测试技术两大类。黑盒测试技术即把被测模块视作一个黑盒,不考虑其程序逻辑结构与内部特性,以用户的角度对其输入输出进行验证,又称为功能测试或数据驱动测试。黑盒测试技术常用于高级别测试,例如配置项级与系统级测试,黑盒测试的方法有等价类划分、边界值分析、因果图分析、猜错法等。

白盒测试技术相对于黑盒测试技术而言,将被测模块看作一个白盒,其内部程序逻辑结构对于测试人员是可见的。测试人员通过编写测试用例,对程序的所有逻辑路径进行测试,遍历程序中的所有逻辑判定组合,对程序内部定义的数据结构的有效性进行验证,又称为结构测试或逻辑驱动测试。白盒测试技术常用于低级别的测试,如单元级与部件级测试,白盒测试的方法有语句覆盖、分支覆盖、条件覆盖、判定/条件组合覆盖等。白盒测试通常会使用各种测试工具辅助测试人员进行测试,常见的有TestBed、C++Test、VectorCAST等。

2 基于VectorCAST软件的白盒测试

2.1 VectorCAST介绍

VectorCAST软件是美国VECTOR Software公司推出的软件测试解决方案,它能为用户提供一整套自动化测试体系,特别适用于安全性与可靠性要求较高的嵌入式软件。VectorCAST软件具有的功能覆盖了单元级测试、部件级测试、回归测试等测试类型涉及的各个环节,可以对使用C/C++和Ada语言开发的项目进行测试,且对嵌入式平台与主机环境的支持较好。目前,VectorCAST软件已应用于欧美的轨道交通、国防军工、电力电子、工业控制、航空航天等行业内,并获得了NASA和TUV的认可和认证。

与其他同类产品相比,VectorCAST具有以下方面的特点:

1)能够支持市面上大部分嵌入式环境和编译器;

2)得益于插装算法的优化,VectorCAST在嵌入式测试项目中的应用更简便;

3)拥有较高的自动化程度,能自动生成部分测试用例,测试用例中对参数的设置方法更简单,减少了测试代码的编写数量;

4)测试用例的覆盖率显示功能更强大和方便;

5)对多种高安全行业有专门的支持,包括轨道交通、国防军工、电力电子、工业控制、航空航天等。

2.2 VectorCAST软件测试流程

使用VectorCAST进行白盒测试的基本流程为:1)选择被测件运行环境并填写编译指令;2)输入测试环境名称;3)选择测试类型;4)根据选择的测试类型选择测试方法,若上一步选择“传统单元测试”,则在此步选择语句覆盖、分支覆盖或条件覆盖等方法;5)添加被测件程序文件路径;6)选择测试文件与设置桩函数;7)编写用户自定义代码,也可跳过此步骤在测试用例中编写代码;8)构建环境。至此,一个VectorCAST软件白盒测试环境配置完成,出现如图1所示界面。

在构建测试环境时,VectorCAST 会根据被测件和被测件运行环境自动构建测试套件。在此基础上,允许测试人员自动生成或添加符合测试需求的测试用例,并且支持测试人员以不同方法设置输入输出参数,如输入不同进制参数、输入参数范围、输入参数列表及重复次数、从外部数据源导入参数等。在参数设置过程中,大部分情况下无需编写测试代码,在参数设置界面即可完成所有参数设置操作。这可以很大程度的提高测试人员的白盒测试效率,使得测试人员的主要精力得以放在测试用例的设计上,提高了测试质量。除此之外,VectorCAST软件还可以灵活配置桩函数。它允许测试人员在用例配置界面自由勾选桩函数或者添加不同输入输出的桩函数,设置打桩对象及其返回值,未选中函数则默认调用该函数本身。同样,这些操作大部分也可通过参数设置界面完成,而不需编写代码或重新编译构建测试环境。

在执行测试用例过程中,VectorCAST软件采用的是数据驱动方式,即只有执行测试用例时才会读取设置的测试用例参数,而不是将测试用例参数与被测件代码、桩函数、测试驱动等一同构建到执行程序中。这样可以提高测试环境构建与测试用例执行速度,并在仅改变测试用例参数而保持被测对象不变的情况下,减少测试环境重新编译构建的次数,达到提高测试效率的目的。

测试用例执行结束后,测试人员可以自由选择测试用例以查看被测代码的语句与分支覆盖情况,并精确统计语句与分支覆盖百分比,若函数名后出现“P”则表示覆盖率为100%,若测试用例后出现红色“×”则表示测试用例执行失败。源代码显示界面中可以根据测试用例选择情况,实时显示测试用例覆盖结果,并使用不同颜色表示出不同的覆盖情况,使测试结果一目了然。分支语句前会出现“(*)(*)”(“*”为“T”或“F”),表示该分支的TRUE或FALSE分支在选定的测试用例中已被覆盖。代码覆盖结果显示如图2所示。

进入测试用例统计页面,可查看测试用例是否通过。测试用例通过准则是,用例预期输出与用例执行后实际输出结果一致。测试用例预期输出可在测试用例参数设置界面进行设置,待测试用例执行后与实际输出逐一比对。测试用例统计结果如图3所示。

至此,一个VectorCAST基本白盒测试流程结束。

3 结束语

VectorCAST作为一个测试解决方案,在白盒测试方面有其固有优势,但是相比于其他测试工具也有不足之处,因此根据不同测试项目的特点,选择合适的测试工具能够更好地提高测试项目的完成质量与效率。另外,以上所述内容只是VectorCAST软件的基本功能之一,其所提供的其他功能还需继续学习研究。

【参考文献】

[1]《软件测试》[美].Paul C.Jorgensen出版社:机械工业出版社.

[2]张新玉,李寅龙.TBrun在航天嵌入式汇编软件测试中的应用测控技术2016年11期.

[3]https://blog.csdn.net/Trinity_Techologies/article/details/46374707 VectorCAST软件自动化测试方案.

猜你喜欢
软件测试
基于OBE的软件测试课程教学改革探索
基于MBD模型自动生成测试用例的软件测试方法
计算机软件测试方法的研究
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
一种航空机载软件测试项目的进度改进模型
军用软件测试文档生成设计与实现
软件测试工程化模型及应用研究
智能电能表软件测试技术概述
《软件测试》课程教学策略研究