基于VBA技术提升GJB5000A软件测试效率的方法

2019-04-26 05:02孙龑胡玉露
电子技术与软件工程 2019年4期
关键词:测试用例用例软件测试

文/孙龑 胡玉露

随着军用软件在信息装备中发挥的作用越来越大,对于军用软件质量的关注度也越来越高。为了规范我国军用软件的开发,相关部门颁发了GJB5000A-2008《军用软件研制能力成熟度模型》。面对更高的要求,如何依照体系高效地开展软件测试工作,成为每一个测试工程师必须面对的难题。

基于软件测试V模型(参见图 1)的软件测试过程中,将软件测试划分为四个级别,分别是单元测试、部件测试、配置项测试(合格性测试)、系统测试。而在配置项测试和系统测试过程中,涉及的数据量大,数据种类多,通过人工整理的方式不仅会耗费大量时间,而且容易造成数据不一致的问题。本文基于某型机软件测试工作,依据GJB5000A体系文件的相关要求,对配置项测试和系统测试中所需要的数据进行了研究,依据数据之间的关系建立数学模型,并通过Excel VBA的手段制作了软件测试数据自动生成工具,实现了该数据模型。通过这两个测试过程中数据的自动生成,实现了测试效率的提升。

1 软件测试数据整理的难点

在某型机软件测试工作中,基于GJB5000A-2008《军用软件研制能力成熟度模型》和GJB438B-2009《军用软件开发文档通用要求》,配置项测试和系统测试过程中各需完成12个表格、150项数据的收集和整理:

图1:软件测试V模型

(1)项目基本信息表:包括14项数据,分别是项目标识、软件标识、测试级别、进入测试的软件版本、被测软件名称、版本日期、默认用例设计人、默认用例设计日期、默认用例执行人、默认用例执行日期、默认故障严重等级、默认故障解决人、默认故障解决日期、默认故障解决结论。

(2)需求与测试项的映射关系表:包括5项数据,分别是测试项名称、测试项章节号、测试项标识、需求章节号、需求章节名称。

(3)测试用例表:包括17项数据,分别是用例编号、测试类型、正常/异常、测试项名称、测试项标识、用例标识号、测试说明、用例描述、测试步骤、预期结果、设计人、设计日期、测试日期、测试结果及现象、测试结论、故障现象描述、测试人。

(4)测试用例个数统计表:包括39项数据,分别是各种测试类型下正常/异常测试用例个数。

(5)用例到需求的映射表:包括6项数据,分别是测试用例标识、测试项名称、测试项章节号、测试项标识、需求章节号、需求名称。

(6)需求到用例的映射表:包括6项数据,分别是相关测试用例标识、测试项名称、测试项章节号、测试项标识、需求章节号、需求名称。

(7)测试说明到测试用例的映射表:包括7项数据,分别是需求内容、相关测试用例标识、测试项名称、测试项章节号、测试项标识、需求章节号、需求名称。

(8)测试用例到测试说明的映射表:包括7项数据,分别是需求内容、相关测试用例标识、测试项名称、测试项章节号、测试项标识、需求章节号、需求名称。

(9)测试故障汇总表:包括18项数据,分别是故障标识号、被测软件名称、被测软件标识、版本及日期、测试项名称、用例标识、测试级别、测试类型、故障类型、故障严重等级、故障描述、报告人、报告日期、处理意见及方法、解决人、解决日期、回归测试方法、结论。

(10)影响性分析表:包括10项数据,分别是分析序号、更改依据、更改描述、受影响/新增测试项、受影响/新增测试用例、测试类型、重用用例个数及比率、新设计用例个数及比率、执行用例个数及比率、未通过用例个数及比率。

(11)故障个数统计表:包括16项数据,分别是4种不同故障类型下不同等级的故障个数。

(12)用例执行情况表:包括5项数据,分别是用例个数、百分比、执行用例个数、未执行用例个数、未通过用例个数。

由于软件测试工作的特殊性,在配置项测试和系统测试的数据整理过程中,存在如下难点:

(1)数据量大:需整理12个数据表共计150项数据,整理工作非常繁重。

(2)数据存在关联,难以维护:整理的数据中存在关联性,导致表格中的数据不能独立存在,当某一个表格的数据发生变化时,其余表格数据必须进行同步更新,否则就会出现前后不一致。

(3)表格填写规范较多,培训成本较高:为保证数据格式的统一性,表格填写过程中需要对数据进行统一化规定,测试负责人需要经过相关的学习和培训才能掌握对应的填写规范,培训成本较高。

2 数据自动生成工具的实现

2.1 数学模型的建立

2.1.1 数据类型的划分

对12个数据表150项数据进行研究,依据数据特性及关联关系可将数据划分为四类:

(1)填写数据:项目基本信息数据,必须通过手工填写。

(2)设计数据:经过设计后填入的数据,必须通过手工填写。

(3)部分统计数据:即依据填写数据和设计数据,通过固定的映射关系和计算可以得到该项数据中大部分内容的数据。

(4)完全统计数据:即依据填写数据和设计数据,通过固定的映射关系和计算可以得到该项数据中全部内容的数据。

根据以上类别,将150项数据进行划分为填写数据18项、设计数据12项、部分统计数据20项、完全统计数据100项:

(1)项目基本信息表:填写数据14项;其余数据无。

(2)需求与测试项的映射关系表:设计数据5项;其余数据无。

(3)测试用例表:填写数据1项,包括故障现象描述;设计数据7项,包括测试类型、正常/异常、测试项名称、测试说明、用例描述、测试步骤、预期结果;部分统计数据6项,包括设计人、设计日期、测试日期、测试结果及现象、测试结论、测试人员;完全统计数据3项,包括用例编号、测试项标识、用例标识号。

(4)测试用例个数统计表:完全统计数据39项;其余数据无。

(5)用例到需求的映射表:完全统计数据6项;其余数据无。

(6)需求到用例的映射表:完全统计数据6项,其余数据无。

(7)测试说明到测试用例的映射表:完全统计数据7项,其余数据无。

(8)测试用例到测试说明的映射表:完全统计数据7项,其余数据无。

(9)测试故障汇总表:填写数据3项,包括故障类型、处理意见及方法、结论;部分统计数据6项,包括故障严重等级、报告人、报告日期、解决人、解决日期、回归测试方法;完全统计数据9项,包括故障编号、被测软件名称、被测软件标识、版本及日期、测试项名称、用例标识、测试级别、测试类型、故障描述;填写数据无。

(10)影响性分析表:部分统计数据7项,包括受影响/新增测试项、受影响/新增测试用例、测试类型、重用个数及比率、新设计个数及比率、执行个数及比率、未通过个数及比率;完全统计数据:3项,包括序号、更改依据、更改描述;其余数据无。

(11)故障个数统计表:完全统计数据16项;其余数据无。

(12)用例执行情况表:部分统计数据1项,包括未执行用例个数;完全统计数据4项,包括测试类型、用例个数、百分比、执行用例个数、未通过用例个数。

2.1.2 映射关系的建立

完成对150项数据的分类,建立填写数据、设计数据与部分统计数据、完全统计数据之间的关系,经过研究,将表格内数据关系主要分为如下四类:

(1)直接映射关系:即源数据和目标数据之间的数值相同,例如项目基本信息表中的默认用例设计人与测试用例表中的设计人为直接映射关系。

(2)计算映射关系:即源数据经过直接计算得到目标数据的值,例如测试用例表中的测试结果及现象与测试用例表中的故障现象描述。

(3)直接统计映射关系:即目标数据经过某一个表格中的某几项源数据经过统计计算得到。

(4)间接统计映射关系:即目标数据经过某几个表格的某几项源数据经过统计计算得到。

2.2 数学模型的实现

图2:间接统计映射关系的目标数据自动生成流程

图3:数学模型(软件测试数据自动生成工具)流程

表1:某型号某软件维护性测试项目信息

表2:自动生成数据和人工统计数据的效率比较

表3:比较所用计算机配置信息

图4:宏列表

基于上述研究,本文采用Excel作为基础制作数据自动生成工具,对数据之间的映射关系进行实现。Excel中自带开发工具VBA,VBA可以直接对Excel表格进行编程,对不同的数据表编制不同的数据宏,建立表格中的目标数据(部分统计数据、完全统计数据)与源数据之间的映射。使用工具时,在完成源数据的填写后,执行对应表格的数据宏,完成目标数据的自动生成,四种映射关系下的目标数据自动生成总流程如图 2所示。

2.3 填写约束的实现

为保证数据符合GJB5000A和软件测试的要求,在数学模型的设计中将数据约束通过如下方式来实现:

(1)对于填写数据和设计数据:通过选项的形式或在工具中规定好填写格式,以确保规范填写。

(2)对于部分统计数据和完全统计数据:将数据规范通过映射关系来实现,通过计算、统计、拼接生成符合规范的目标数据。

通过格式化的输入约束和依据规范的自动生成,保证了数据填写的规范性,无需进行过多的记忆和培训。

2.4 合法性检查机制的实现

在实现数学模型之外,为保证源数据和目标数据的准确性,在本工具中增加了合法性检查机制:

(1)对于空数据的检查:检查源数据的值是否为空。

(2)对于数据格式的检查:检查源数据的格式是否正确。

(3)对于映射关系的检查:检查映射关系是否正确。

在加入合法性检查机制后,数学模型(软件测试数据自动生成工具)的基本流程如图3所示。

3 工具应用与比较

为准确验证软件测试数据自动生成工具的工作效率,在某型机某软件系统测试过程中,对自动生成数据和人工统计数据的效率进行了比较。本项目的基本信息如表1所示。自动生成数据和人工统计数据的效率如表2所示。在本次比较中所使用的计算机基本配置信息如表3所示。

根据比较可以得出,在本次系统测试的数据整理过程中,通过工具的使用,相较于人工整理数据,效率提升了95.66%,达到了提升测试效率的目的。

当某个表格某项数据进行了修改后,只需在工具中重新执行对应的宏(参见图 4),即可实现所有表格的数据更新,保证了数据的一致性,避免了因人工统计而产生的遗漏。

4 结论

本文通过对GJB5000A体系下软件测试中配置项测试和系统测试的数据整理过程进行了研究,对所需整理的数据建立了数学模型。利用Excel VBA技术编写软件测试数据自动生成工具实现了该模型,并在该模型中增加了数据合法性检查机制。与原有的人工整理测试数据相比,实现了如下创新:

(1)提升了软件测试效率。借助该Excel VBA工具,测试人员仅需填写30项数据,其余120项数据均可自动生成,减少了人工记录、整理的工作量。

(2)确保了数据的一致性。在测试数据自动生成的过程中,表格的数据源统一,当使用者修改数据后,利用工具进行表格的重新生成即可实现数据的同步更新,保证了数据的一致性。

(3)降低了培训成本。在实现的Excel VBA工具中,将体系文件所规定的命名规则和约束通过自动化的方式实现,无需人工记忆掌握,节省了人员培训成本。

猜你喜欢
测试用例用例软件测试
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
EXCEL和VBA实现软件测试记录管理
基于混合遗传算法的回归测试用例集最小化研究
关于软件测试技术应用与发展趋势研究
软件测试工程化模型及应用研究