基于数据库的快速测试数据生成方法研究

时间:2022-06-08 06:17:22

基于数据库的快速测试数据生成方法研究

摘要:该文以航天发射场C3I系统应用软件的系统测试为研究对象,提出了一种基于数据库的测试数据快速生成方法,并应用此方法开发了测试数据生成软件。该方法在航天发射场C3I系统应用软件系统测试中发挥了重要作用。

关键词:数据库;测试数据;方法研究

中图分类号:TP274 文献标识码:A文章编号:1009-3044(2010)04-0775-03

A Method Based on Database of Generating Data Quickly for Test

GONG Wen-hua, BI Xue-jun, LIU Juan

(Information Engineering Department of AAFE, Beijing 100072, China)

Abstract: Studying the application software of the C3I system of space aircraft launching site, present a method based on database of generating data quickly for test, and apply it. It has played an important role in the test for the C3I system of space aircraft launching site.

Key words: database; data for test; method studying

航天发射场信息处理系统(以下简称C3I系统)担负着航天发射的指挥保障任务,对上接受上一级指挥控制中心的指挥,对下指挥、管理、监测、监视地面发控系统、测控系统等诸多系统的工作状态,具备指挥保障、监视显示、信息交换和数据管理等功能。系统具有信息接口多、信息交换格式复杂、实时性强等特点,其应用软件的质量对确保完成航天发射任务起着至关重要的作用。软件测试则是保证应用软件质量的关键环节[1]。

在用传统方法进行的软件测试中,测试数据的生成是借助于多个处理程序来完成的。为了测试软件的功能,需要设计上百个测试用例;每一个测试用例至少需要一批测试数据;每一批测试数据由一个参数或多个参数组成;每个参数的上、下限不尽相同。要生成测试数据必须为每一批测试数据编写一个处理程序;处理程序的执行过程就是测试数据的生成过程。考虑到正常、异常和边界等情况,测试数据的规模巨大,这种测试方法效率低、容易出错,不利于测试管理。研制一种快速的测试数据生成方法已成为该软件测试工作中的当务之急。

1 基本概念

1.1 数据库的定义

数据库是通用化的综合性数据集合,可以提供为各种用户共享而具有最小的冗余度和较高的数据与程序的独立性。在多种程序并发地使用数据时,数据库能有效及时地处理数据,并提供安全性和完整性,具有数据结构化、最低冗余度、较高的程序与数据独立性,易于扩充,易于编制应用程序等优点。

1.2 ORACLE数据库

关系数据库是目前技术最成熟、被广泛采用的一种数据库。ORACLE数据库是目前最流行的客户机/服务器(Client/Server)体系结构的一种关系数据库,是以高级结构化查询语言(SQL)为基础的大型关系数据库。物理上是存储于硬盘的各种文件,是活动的,可扩充的,随着数据的添加和应用程序的增大而变化,在逻辑上是由许多表空间构成[2]。如图1所示。

为了保证在测试数据生成过程中对参数信息引用的一致性,需要建立一套参数配置信息表,并设计一致的访问方法。因此,我们在测试数据生成方法中采用了ORACLE数据库,并在数据库中建立参数信息表。参数表的建立、修改工作通过ORACLE数据库进行。

参数在数据库中组织形式如表1。

在生成测试数据时,根据参数在参数表中的属性,可以唯一识别一个参数,将参数的数据组织成信息帧,然后,将信息帧存入到数据文件中去。

2 测试数据需求

在软件测试过程中,需要模拟上一级指挥中心、航天器发射地面发控系统、测试系统等外系统向C3I系统发送的数据,这些数据在网络中以下面的格式进行传输。

信息场由信息头和有效数据两个部分组成,具体结构如表2。

其中,有效数据部分有三种格式:完整表信息帧、单表挑点信息帧和多表挑点信息帧。

1)完整表信息帧格式

有效数据字段先填表号,后面紧跟具体参数,按照信息约定表中指定的顺序和格式连续编排对应的参数值,具体如表3所示。

2)单表挑点信息帧格式

有效数据字段先填表号,后面紧跟各类信息,按照信息在信息约定表中对应的参数序号值、参数值编排,具体如表4所示。

3)多表挑点信息帧格式

有效数据字段内的各类信息按信息在信息约定表中对应的表号值、参数序号值(1个字节的无符号整型数)、参数值编排,具体如表5所示:

表5

各个系统需要向C3I系统传送信息的参数以数据库表的形式存人数据库。

3 设计思想及实现方法

3.1 设计思想

为保证灵活、快速有效地生成测试用例所需的测试数据,通过网络实现测试所需的数据网上传输,采用数据库技术和网络技术可快速实现测试数据的生成。其设计思想是:通过网络技术访问待测软件中的参数定义数据库结构和内容,生成测试数据结构表,并将其存储到文件中。打开数据库文件,根据测试用例的测试数据需求,由测试人员通过界面操作选择待生成的测试参数、测试数据信息帧类型、信源地址、测试所需的数据帧数等信息,按第3节测试数据需求的格式生成测试数据,并存贮在测试文件中,如图2所示。

生成测试数据时,有效数据由数据库中待生成参数的极限值按下列计算方法生成测试用例所需的测试数据,即:

假设某参数的理论最大值为Vmax,最小值为Vmin;测试需生成N个测试数据,用户可设定的极大值为V′max,极小值为V′min,则生成的测试数据计算方法为:

(1)

其中,i=0,1,2,3,…,N-1;δi为噪声信号。

1) 当

按公式(1)计算生成的即为正常值测试生成数据;

2) 当

按公式(1)计算生成的即为边界值测试生成数据;

3) 当

按公式(1)计算生成的即为非法值数据或叠加噪声的测试生成数据。

3.2 实现方法

借助于ORACLE数据库和VC++开发环境,我们可以将测试方法用编程语言来实现,从而开发一个测试数据自动生成软件来实现软件测试数据的自动生成。

1)设置帧标识

生成数据组帧时,要设置帧标识。完整信息帧标识表示一张数据表中的所有参数数据,单表挑点信息帧标识表示一张数据表中部分参数的数据,多表挑点信息帧标识表示多张数据表中部分参数的数据,其它的帧标识都是错误帧标识。

2)设置上下限值

参数上下限值可以和参数理论的上下限值一致,也可以不一致。我们把参数的下限值设定为比理论的下限值略低的值,把参数的上限值设定为比参数理论的下限值略高的值,则生成的测试数据就可以测试应用软件对参数的下边界值的处理能力。我们把参数的下限值设定为比理论的上限值略低的值,把参数的上限值设定为比参数理论的上限值略高的值,则生成的测试数据就可以有效测试应用软件对参数的上边界值的处理能力。

3)设置信源地址

设置正确的信源地址标识信息的来源,设置错误的信源地址可以生成错误的数据帧。

4)设置字节偏移量

字节偏移量为0表示没有字节偏移,字节偏移量不为0表示一种错误的帧。

测试方法的实现如图3所示。其中,?A、?B、?C、?D分别代表完整信息帧生成、单表挑点信息帧生成、多表挑点信息帧生成和异常信息帧数据的生成情况。四种情况的逻辑框图结构相同,只是在判断帧类型、生成帧头和生成数据时实现方法不一致。由于篇幅的限制,本文只画出第一种情况的框图。

4 方法特点

4.1 充分利用数据库

该方法的一个显著特点是充分利用了数据库,将被测系统应用软件需要接收、处理的其它系统的所有参数录入数据库。参数在数据库中的组织层次为:表号、参数序号。所有的参数被分配到若干张数据库表中,参数在表中由参数序号排定位置。伴随参数序号录入数据库的还可以包括参数其它信息,如参数名称、参数代号、参数类型、参数长度、参数上下限、量纲、单位、显示格式、输出方向、是否实时入库、特殊处理、备注等。但至少要包括参数名称来标识参数的意义。表号用于标识本表参数是属于哪个系统的;参数序号标明参数在参数表中的位置。

只有使用数据库才能做到测试数据生成灵活性与快速性。充分利用数据库是该方法生成测试快速、自动特点的基础。无论生成哪一个参数或哪些参数的测试数据,不用分别为它们编写程序,只需在测试软件界面上选择、点击即可。

4.2 快速、自动生成测试数据

生成测试数据由于只需在系统界面上选择,所以可以节省时间,实现生成测试数据的快速性和自动化。过去生成一个测试用例的测试数据需要1小时左右,采用本方法至多需要2分钟。尤其在测试过程中有补充测试用例时,使用本方法更显得得心应手。设有100个测试用例,至多8个小时就可以生成全部的测试数据。若采用分别编写处理程序的方法来生成软件测试数据,生成100个测试用例的测试数据至少需要10天时间,采用新的方法效率提高了10倍。

4.3 通用性强

考虑我们为发射场C3I系统应用软件开发的测试数据自动生成软件,无论飞船的状态和参数如何变化,只需修改相应的数据库,测试数据自动生成软件不用修改。如果增加一个向发射场C3I系统传输数据的系统,那么,不需要修改测试数据生成软件,只需要修改相应的数据库即可。

5 结束语

软件测试数据的生成是否容易、方便、快速,关系到软件测试用例能否顺利实现。C3I系统应用软件一般规模庞大、功能复杂,按划分等价类的方法设计出来的测试用例数量巨大,与软件开发周期短,软件测试时间有限的现实构成一对矛盾。要想在规定的时间内执行所有的测试用例,非常困难。

本文介绍的基于数据库的快速测试数据生成方法是在总结发射场C3I系统应用软件测试数据生成方法基础上的创新,是对提高应用软件测试自动化水平有益的尝试,对解决当前软件开发周期短,软件测试人员不足,测试时间有限的矛盾有一定的作用,同时还可以推广到一般的C3I系统应用软件测试中去。但是,该方法还不能解决目前软件测试中所有的数据生成问题,仅仅是数据生成技术的一个方面。其方法本身还有待完善和提高。

参考文献:

[1] 朱鸿,金凌紫.软件质量保证与测试[M].北京:科学出版社,1997.

[2] Michael Abbey,等.Oracle8i初学者指南[M].北京:机械工业出版社,2000.

上一篇:视频技术在网络播放flash课件中的应用 下一篇:基于网络传输的温湿度监测系统