基于测试用例库的复用方法研究

2018-12-22 10:55叶素梅肖寒
电脑知识与技术 2018年32期
关键词:测试用例

叶素梅 肖寒

摘要:测试用例的复用能够节约产品开发的成本,特别是在重复率较高的仪器制造类软件测试中,能够大大提高软件测试的效率。在“测试任务”→“测试组”→“测试用例”三层复用模型基础上,设计并优化了测试用例数据库,实现了测试用例的复用。通过测试用例库的复用,对测试任务生成、测试用例复用执行、测试报告生成和测试用例的批量导入等进行了讨论。

关键词:测试用例;复用模型;用例库;业务逻辑

中图分类号:TP311.52 文献标识码:A 文章编号:1009-3044(2018)32-0272-02

Abstract: The reuse of test cases can save the cost of product development, especially in the instrument manufacturing software test with high repetition rate, which can greatly improve the efficiency of software testing. Based on the "test task"-"test group"-"test case" three-layer reuse model, the test case database is designed and optimized to realize the reuse of test cases. Through the reuse of the test case database, the test task generation, test case reuse execution, test report generation, and batch import of test cases are discussed.

Key words: Test case; Reuse model; Database; Business logic

软件测试是对项目开发生成的产品进行差错审查,包括软件代码和技术文档等。它是软件开发过程中的重要环节,也是保证软件质量的主要手段。严格的软件测试,能够减少产品的缺陷,有效地降低后期项目维护成本[1]。随着软件质量意识的提高,在整个软件工程中,软件测试费用的比重越来越高。通过软件测试用例的复用,能够大大节约软件测试的成本[2]。在一些与硬件结合比较紧密的仪器制造行业,比如光刻机制造业等,软件测试中测试用例重复度较高,测试用例的复用能显著提高测试的效率。此外,測试用例的复用还可以规范软件测试行为,避免软件测试过多依赖于测试人员的个人经验,导致用例编写的格式不统一,给测试带来较大的盲目性的情形[3]。

在与硬件结合紧密的仪器制造业的软件开发中,软件测试用例的重复率比较高[4]。虽然产品的版本不断更新,但是测试用例的重复率有时高达60%。本文在前期已有大量测试用例的基础上,通过建立数据库复用模型,对测试用例进行管理,提出了基于测试用例库的复用方法,大大提高了软件测试的效率。

1 测试用例复用模型

1.1 总体分析

对于一些仪器制造业的软件测试项目,因为主体软件程序相对固定,在对新增功能或者升级版本进行测试时,有很大一部分测试用例是以前已经编写好的用例。在用例复用之前,需要规范这些用例的格式,每个用例使用统一的编号,以便唯一标识,便于访问。

根据业务逻辑,生成若干个测试组,如水平向测试组,轴向对准测试组等。每一测试组拥有唯一的组号。一个业务逻辑可以包含一个或若干个测试组。根据实际业务需要,每个测试组包含一个或若干个已编号测试用例。

通过“测试任务”→“测试组”→“测试用例”三层模型,可以实现测试用例的复用。该模型从左到右,都是一对多的关系。

1.2 测试用例数据的流转过程

图1给出了测试用例库中,测试用例的添加和复用的过程。测试用例库中新增用例时,首先要确保测试用例格式规范,且拥有唯一的测试用例编号。同时,必须将测试用例与对应的业务逻辑分组表进行关联,更新测试用例分组表信息。完成了这些操作后,可以将测试用例加入当前测试用例库中。

测试用例在复用时,根据测试的任务要求,将任务分解成对应的测试用例组信息,然后通过数据库查询功能,对当前用例库进行查询,对返回的测试用例进行直接复用。如果某个特定测试需求,用例库中没有合适的用例返回或者临时需要新增测试用例,测试人员可以手动增加测试实例,该实例可以通过例化添加的形式新增到当前测试用例库中。测试用例编号也是唯一的,用例组编号为当前测试组编号。

2 测试用例数据库的设计与优化

2.1 核心表格的设计

在测试用例库数据中,主要有业务逻辑信息表、测试用例分组信息表、测试用例信息表等。业务逻辑信息表给出了每一种业务逻辑所包括的用例分组号,它包含业务编号、业务名称、业务描述、用例分组号等字段。一个业务编号可以对应多个用例分组号,如表1所示。测试用例分组信息表给出了分组与测试用例的对应关系。它包含用例分组号、分组名称、分组描述、测试用例号等字段。每一个测试用例分组包含多个测试用例。测试用例信息表主要是维护测试用例的编号和部分测试用例数据。很多测试用例的数据通过测试用例编号从外部程序中导入到测试系统中。

2.2 数据库性能优化

测试用例数据库系统可采用开源的MySQL数据库。随着测试用例数据规模的扩大,以及测试连接数的增加,数据库的响应速度会下降。为了改善系统的性能,除了计算机硬件和网络设备的升级扩容以外,也需要通过查询优化来提高系统性能。查询是整个数据库操作中最常见的操作,占了很大的比重[5]。在查询时,应该尽量避免全表查询,任何地方都不使用select * from [表],而是用具体的字段代替“*”。通过这些查询优化措施,提高系统的性能。

3 业务应用

3.1 批量导入工具开发

在测试用例库构建时,对于前期已有的规模较大的成熟测试用例,都需要规范化后加入用例库内。通过手动逐条输入效率比较低,而且也容易出错。此时,可以通过编写专用工具进行测试用例的批量导入。比较简单的做法是通过建立EXCEL表格进行用例导入,该表格中有三个关键字段,分别是用例编号、用例分组号和业务编号。批量导入时,数据库会根据关键字段自动在用例库内添加记录。

3.2 测试任务生成

使用测试用例库进行复用测试时,拿到测试任务后,首先需要根据业务逻辑生成测试任务表。这个表格中记录了测试任务所覆盖的所有业务编号。通过业务编号进行查询,能够自动获得所有可复用的测试用例。目前,测试任务表的生成还需要人工干预,由测试人员判断具体的测试内容,手动勾选业务编号。

3.3 测试用例复用执行

测试用例复用执行时,一个测试任务被分解为多个业务编号的测试子任务,多名测试人员可以协同工作。拿到一个业务编号后,通过SQL查询,自动在测试用例库内匹配相关的测试分组,一般每个业务编号下有5-7个不等的测试分组。测试人员对每个测试分组再次查询,逐一调出组内记录的测试用例进行复用测试。测试用例的数据调入有两种形式:用例库直接调入和外部程序导入。对于简单类型(文本型、数字类型)的测试用例数据,直接记录在用例数据库内的,测试是数据直接导入。对于复杂数据类型,测试用例库內记录了数据的路径,通过外部程序可以导入测试数据。

对于个别用例库内的测试用例无法覆盖测试任务的情形,适用例化添加和例化复用。例化添加时,由测试人员编写规范的测试用例,并提交审核。测试用例通过审核以后,可以加入当前测试用例库中,供其他测试人员复用。

3.4 测试报告生成

测试人员根据业务编号查询后,测试用例库会自动返回可复用的所有测试用例列表。每个测试用例都必须记录测试结果(勾选测试是否通过)。如果测试发现缺陷,该项测试用例的数据会附在测试报告中。测试报告会自动统计没有通过的缺陷数目。目前,测试报告中还不支持缺陷分级。

4 结论

测试用例的复用可以大大提高测试效率,特别是在测试用例重复率较高的仪器制造业相关软件测试中,能够节约产品开发的成本。本文通过建立“测试任务”→“测试组”→“测试用例”三层复用模型,并使用测试用例数据库进行管理,实现了对测试用例的复用。

参考文献:

[1] 杨波,吴际,徐珞,等. 一种软件测试需求建模及测试用例生成方法[J].计算机学报, 2014, 37(3): 522-538.

[2] 肖寒,顾春华.一种基于Z规格说明的测试用例复用机制[J].计算机应用与软件, 2009, 26(12): 135-138.

[3] 赵杰,张晶,高继森. 基于XML的测试用例复用[J].重庆理工大学学报,2007,21(9): 40-43.

[4] 王晖,张凯.舰船装备软件测试用例复用技术研究[J].船舶标准化与质量,2016, 4): 39-44.

[5] 袁佰顺,朱拥军,李晓鹤,等.基于ORACLE的陇东南区域自动气象站数据库设计及应用[J].干旱气象,2014, (3): 475-480.

【通联编辑:梁书】

猜你喜欢
测试用例
基于SmartUnit的安全通信系统单元测试用例自动生成
浅析基于因果图法软件测试用例的设计
基于MBD模型自动生成测试用例的软件测试方法
基于混合遗传算法的回归测试用例集最小化研究
基于需求模型的航天软件测试用例生成方法
基于依赖结构的测试用例优先级技术
电动汽车整车控制软件测试用例设计方法及应用
软件测试用例执行优化研究
浅析软件测试用例管理
软件回归测试用例选取方法研究