background image

软件开发中的数据库测试技术

 摘要:

 根据以往软件测试经验,对数据库测试的内容和方法,进行了详细的分析,阐明

了数据库测试在软件开发中的重要性。

 

  关键词:

 数据库测试;性能测试;DataFactory 

  

0 引言 

  数据库系统的开发在应用软件开发中所占的比重越来越大,随之而来的问题也越来越
突出。比如:数据冗余,功能和性能方面存在的问题已经严重影响应用软件的使用。软件测
试人员往往重视对软件功能和编码的测试,而忽略对软件性能,特别是数据库访问并发测
试。因为,他们固有的思想中认为数据库设计存在问题对系统性能影响不大,或从根本上忽
略了数据库在软件开发中的地位,直到出现了问题,才想到对数据库的测试,但往往也是
仅仅通过对编码的测试工作中捎带对数据库进行一定的测试,这远远是不够的。目前,中铁
网上订票系统在大用户同时在线订票中系统频频瘫痪,就是最好的佐证。

 

  所以,在应用软件的测试工作中,应该将数据库作为一个独立的部分进行充分的测试
这样才可以得到应用软件所需要的性能优化的数据库。那么,应该对哪些内容进行测试,如
何进行测试呢?

 

  

1 数据库设计的测试 

  数据库是应用的基础,其性能直接影响应用软件的性能。为了使数据库具有较好的性能,
需要对数据库中的表进行规范化设计。规范化的范式可分为第一范式、第二范式、第三范式 、
BCNF 范式、第四范式和第五范式。一般来说,逻辑数据库设计应满足第三范式的要求,这
是因为满足第三范式的表结构容易维护,且基本满足实际应用的要求。因此,实际应用中一
般都按照第三范式的标准进行规范化。但是,规范化也有缺点:由于将一个表拆分成为多个
表,在查询时需要多表连接,降低了查询速度。故数据库设计的测试包括前期需求分析产生
数据库逻辑模型和后期业务系统开发中的测试两部分(这里指的是后者),我在这里称为
实体测试。

 

  数据库是由若干的实体组成的,包括(表,视图,存储过程等),数据库最基本的测
试就是实体测试,通过对这些实体的测试,可以发现数据库实体设计得是否充分,是否有
遗漏,每个实体的内容是否全面,扩展性如何。

 

  实体测试,可以用来发现应用软件在功能上存在的不足,也可以发现数据冗余的问题。
经过测试,测试人员对有异议的问题要及时和数据库的设计人员进行沟通解决。

 

  

2 数据一致性测试 

  在进行实体测试后,应进一步检查下面的内容以保障数据的一致性:

 

  

2.1 表的主键测试根据应用系统的实际需求,对每个表的主键进行测试,验证是否存在

记录不唯一的情况,如果有,则要重新设置主键,使表中记录唯一。

 

  

2.2 表之间主外键关系的测试数据库中主外键字段在名称,数据类型,字段长度上的一

致性测试。

 

  

2.3 级联表,删除主表数据后,相应从报表数据应同时删除的问题例如学生表和学生成

绩表,学生数据已经删除,成绩表中相应学生的成绩记录应同时删除。