数据库测试用例虚拟仿真系统的研究与设计

2021-05-10 02:53杨爱民吴志磊刘洁
中国信息技术教育 2021年8期
关键词:仿真实验数据库

杨爱民 吴志磊 刘洁

摘要:本文介绍了数据库测试用例虚拟仿真系统的研究方法与设计思路,提出了以语义知识库推理法则为代表的三种计算机数据库用例生成仿真数据方式,为高等院校数据库类课程实验以及企业应用软件测试提供了相应的仿真数据与实验环境。

关键词:数据库;测试用例;仿真实验

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2021)08-0105-04

● 研究背景及意义

随着大数据时代的来临,越来越多的应用软件(如电子商务、网上售票、医疗、超市等)在设计数据库时都需要运用海量的真实数据进行性能、功能以及压力测试,以保证软件上线后的正常运行。但是,要想得到海量的真实数据,对大多数测试者而言都不太现实,这一方面是因为渠道问题无法大批量获取原始数据,另一方面如果采用人工录入,需要耗费的巨大的人力、物力,如北京某商厦百货业管理系统,在上线前由4个计算机专业录入员花了近20天的时间才完成了10万条记录的数据录入的初级测试,而离系统饱和测试(100万条)还相差很远。而对于其他大型的软件如12306售票系统等,需要的测试数据会高达上亿条,这对于一般手工录入来说是无法完成的。为此,本项目研究的是一个“数据库测试用例自动生成虚拟仿真系统”,该仿真系统可以借助语义知识库、智能算法,并通过接口程序为主流数据库提供用例自动生成仿真数据,以检验数据库的承载力,以及应用软件的可靠性,从而为数据库课程实验以及企业应用软件提供相应的仿真测试数据。

● 国内外研究现状和发展动态

国外研究创立了一套相对成熟的理论,创造了一批比较优秀的自动化测试工具。其中,典型自动化测试框架比较有名的有Automated Testing Specialists Inc提出的基于数据驱动的自动化测试方法以及GUI测试方法、Mercury Interavtive Inc提出的关键字驱动自动化测试方法及录制/回放式的自动化测试方法。

从国内学者对自动化测试领域的研究现状来看,基于智能优化算法的软件测试用例自动生成技术已经取得了不错的进展。国防科技大学的单锦辉(2002)博士将迭代松弛法改进之后再用于测试用例自动生成,并开发了完整的系统原型[1];贺滢(2015)首次提出了应用粒子群算法自动生成测试用例,并且在智能寻优算法的基础上对TC自动生成方法进行了系统的研究[2];刘慰(2018)等人提出一种以遗传算法为核心的测试数据生成方法,自动生成测试数据并且使用XML文件来记录测试结果[3];侯俊(2018)等人针对现在Web测试主要依赖人工测试的问题,在Web测试生成单个测试用例的基础上提出了一种基于WSDL文档和形式化模型树Web服务操作测试用例的自动生成方法,该方法大幅度提高了Web测试用例生成的效率,节省了测试消耗的时间。[4]

但国内目前数據库用例测试的地位不高,大多数的公司还只是停留在软件单元测试、集成测试和功能(软件交付前的功能、性能)测试上,没有一套完整的数据库用例测试标准化准则,也缺乏完全商业化的操作机构,其主要原因是数据库用例测试需要大量的人力及时间成本。但在大数据发展趋势下,数据库管理系统不断被应用于企业管理中,帮助企业更好地管理大量数据。因此,就国内现状而言,测试用例自动生成技术使用价值大,应用前景广,但研究普遍相对较少,目前还没有成熟的主流数据库的测试用例系统的相关报道,同欧美国家软件测试行业的差距较大。

● 系统的设计思路及方法

本实验方案的设计思路是在大数据测试用例上,不去关心具体应用软件的数据库怎么设计,而是根据现有流行数据库的通用字段结构,按字段类型设计出一个通用的数据结构模型,然后再定义语义知识库、关联条件库、语义种子库,以及原始字库等,并以此作为支撑,提供应用软件数据接口。这样,在遇到不同的应用软件时,只要捕捉到应用软件数据库表的结构(或人工提供),然后通过接口程序匹配,给出生成条件,即可开始生成海量数据。系统设计技术路线如图1所示。数据库测试用例生成,实际上是结合了智能算法、语义知识库、文献研究演绎等相关智能化知识体系加上程序设计而完成的一套比较复杂的虚拟仿真实验系统。

本系统的设计原理是由测试用例自动生成工具自动捕获数据库应用系统表,从而获得数据库中的表、表结构及其属性信息等。在为其生成测试用例的时候,既能判断出表参照关系是否存在循环关系,也能显示生成表测试用例的先后顺序,同时为了能让用户直接明了地看到数据库之间的直接参照关系,自动生成工具也能将表之间的参照关系可视化。[5]

目前,本系统可以通过三种方式生成测试用例,如下页图2所示。

一是基于已有的语义知识库让计算机按照一定的语义规则推理自动生成测试用例。

这种方法主要针对含语义类型的字段内容,如姓名、地名、商品名等,通过构建相关类字段的语义知识库以及普通字库,生成时由用户按需要输入相关语义种子,构建用户自定义的语义种子库,然后结合遗传算法调用字库,生成符合语义规则的数据内容。

二是从已有的同种或异种关系数据库中直接导入生成。

有时在生成某一数据字段时,需要用同种数据库或异种数据库的另一数据表数据来生成,如学生成绩管理系统中学生表包含学号、姓名、性别、系部、出生日期,课程表包含课程号、课程名、学分,选课表包含学号、课程号、成绩,其中选课表中的学号及课程号分别需要从学生表和课程表的数据中生成,这就需要在生成选课表时,调用学生表和课程表的数据进行导入,这是同种数据库的导入生成。有时同类系统如船务管理系统、货物管理系统,用的不是同类数据库,但某些数据类型内容相似,引用时,则需要异种数据库数据的导入。这种导入方式,在导入前提供通常用的数据库的接口程序,需要引用哪种数据库,通过设置接口程序实现对接,然后再由用户设定一些导入规则,如生成数量、时间范围等,即可实现同种或异种数据库数据的导入生成。

三是根据表的结构和属性以及用户指定的约束规则随机自动生成。

此类数据一般是针对时间类、数字类和非语义字符类数据,可以通过用户给定约束条件,如生成数量、数值/时间范围等约束条件,按一定算法自动生成,为了灵活高效管理字段实例引擎,引入“时间、非语义类字符、数字(含整数和实数)、逻辑”四种类型引擎接入插件。整个系统对自动生成的表测试用例可以进行维护。数据库用例仿真实验系统的功能实现如图3所示。

● 系统的仿真实验结果分析

本系统设计完成后,笔者对所在学校设置了数据库、软件工程等课程的班级开设的60多个实验案例及软件作品进行了测试用例实验,实验结果表明,学生实验的数据表中80%的数据可以直接利用本系统生成,剩余的数据通过重新定义语义规则也基本上可以全部实现,同时本系统还针对地方企业进行了应用软件用例测试分析,如某船务代理有限公司的船务代理系统,生成了100多万条数据进行压力测试,还有山东工商学院、浙江大学宁波理工学院、宁波财经学院、浙江万里学院的全国大学生体质上报系统,也是采用该仿真系统瞬间生成数万条仿真数据来进行压力测试,如图4所示。

本系统主要体现出以下两个特色:

(1)通用性。本仿真系统设计完成后,可以通过数据库接口程序,与目前市场上流行的主流数据库对接,实现了主流数据库的测试用例自动生成,具备了数据库用例的通用性。

(2)智能化。通过运用算法模型,设计语义知识库及表与字段的模型库,智能化地与应用案例数据库进行匹配,实时生成海量仿真数据。

● 结论

数据库用例测试仿真系统是按照用户需求,为应用软件特别是数据处理量非常大的应用软件瞬间智能化地生成海量仿真测试数据,以检验软件的可靠性及数据处理压力的最大临界值,为企业数据的备份转储或数据库的升级提供预警,减轻了测试人员繁重的手工劳动。

目前,本系统主要实现了ACCESS、MYSQL、SQL-SERVER几种数据库之间的对接以及常规数据的自动生成,但对一些特殊字段类数据,如图像、声音、二进制等数据格式,还无法自动生成,课题组将在后期继续研究针对大型数据库以及特殊字段的自动测试生成,并将研究成果向社会推广。

参考文献:

[1]单锦辉,高仲仪.面向路径的测试数据自动生成工具及其图形界面Tcl/TK设计[J].计算机工程与应用,2002(01):74-77.

[2]贺滢,徐蔚鸿,李杨林.基于RACPSO的测试用例自动生成方法[J].计算机工程,2016(05):67-70.

[3]劉慰,应新洋.基于遗传算法与XML的测试用例自动生成执行系统研究与实现[J].计算机时代,2018(02):44-47.

[4]候俊,周红,马春燕,等.面向WEB服务的测试用例自动化生成方法[J].西北工业大学学报,2018(02):14-15.

[5]张文祥.关系数据库测试用例自动生成研究[M].北京:科学出版社,2004.

猜你喜欢
仿真实验数据库
数据库
数据库
仿真软件在制药人才培养中的作用分析
开展体验式教学创新研究 提高化学课堂有效性
基于多重视阈下的《电子控制技术》课程的教学探讨
数据库
基于ETAP的电气设计仿真实验
数据库
数据库
计算数据中心的动态数据聚集算法研究