数据库开发不同阶段测试技术研究

2010-09-04 08:59河南许继仪表有限公司郭改霞张斌斌
河南科技 2010年5期
关键词:数据库系统磁盘使用者

河南许继仪表有限公司 郭改霞 张斌斌

数据库开发不同阶段测试技术研究

河南许继仪表有限公司 郭改霞 张斌斌

随着现代计算机科技的飞速发展和社会信息化程度的不断提高,数据库已逐步成为计算机信息系统和计算机应用系统的基础和核心,而数据库系统测试的重要性也越来越引起人们的关注,本文就数据库的测试技术进行初步的探讨,希望对数据系统的测试起到抛砖引玉的作用。

数据库系统的生命周期可以分成设计、开发和成品三个阶段。越早进行数据库性能优化成本就越低,收益也越大,反之越晚进行数据库性能优化成本就越高,收益也越小。因此,数据库系统问题发现的越早,为修改缺陷所付出的代价就越小。根据数据库系统的生命周期,数据库系统测试可分成三个层次来进行:集成测试、数据验证和系统测试。集成测试也可以说是数据库结构测试,对数据库逻辑结构和物理结构的规范性进行测试,开始于软件开发的概要设计阶段。数据验证主要是回顾程序代码及数据库测试环境中的数据映射,验证通过程序载入数据库的数据是否与源数据相符合,并验证数据的正确性,数据验证测试在软件测试的确认测试阶段进行。系统测试是对数据库系统的整体性能进行检测,在数据验证测试之后进行。

一、集成测试

数据库结构规范性测试一般开始于软件开发的概要设计阶段,在数据库设计完成之后进行。集成测试的第一阶段是数据库逻辑结构测试,第二阶段是物理模型的验证。

1.逻辑结构检测。一个规范的数据库设计应遵循以下原则。首先必须定义主键,并且在每个表的最上部。

除此之外,关系型数据库一般遵循三个范式。参照这些原则和范式,对数据库逻辑结构主要进行以下检测:数据库表是否创建了主键,主键是否能保证记录的唯一性;是否建立索引和约束、已创建的索引或约束是否必要、是否正确;是否创建表间的主外键关系、主外键关系是否能保证数据库的完整性。

数据库规范化测试除人工检测外,还可以借助自动化数据库测试工具进行测试。如ERWin和ERWinExaminer,这两种工具是数据库建模工具和数据库规范性测试工具。可以利用ERWin创建数据库的逻辑模型,利用ERWinExaminer工具对逻辑模型进行规范化检测,测试人员只需要对测试结果进行分析,就能找出数据库逻辑结构中存在的缺陷。

2.物理结构验证。集成测试的第二阶段是物理模型的验证。在逻辑模型中的一些元素将包含在物理表中,有些元素可能只作为占位符存在,在物理模型创建时被替换掉,逻辑模型中的几个表也可能被合并成一个物理表,因此在创建物理模型之前,必须建立不需要载入的数据元素清单。数据库管理员应根据物理表的访问方式,合理地设置数据文件的存放位置,确定索引所包含的数据元素,以改善物理表的访问速度和效率。然后,逻辑数据模型就可以转换成具有实际数据库测试环境的物理模型。

集成测试的第三种元素是通过程序或其他数据装载工具向数据库中装载数据,在装载数据之前,应首先设置好数据源。在数据装载的过程中,将发现数据类型和尺寸方面的错误,这些错误将被记录到日志中,在数据装载完成或失败之后,可以查看日志以确定问题的所在。

二、数据验证

在数据验证期间最重要的工作是验证程序对数据的映射。因为数据库表中对各数据元素的尺寸都进行了限制,源数据被装载进测试数据库中可能要经过适当的裁减,因此应重点验证那些认为应该装载到指定数据元素中的数据是否确实来源于源数据集合。

数据验证的第二步采用计数的方式进行。进行简单数据库查询时,可以在源数据集合和测试数据库中分别进行查询,如果两次查询的结果相同,则可以假定在数据载入过程中,没有丢失数据,数据装载过程是安全的。

在多维数据库系统中,多个数据库表会有完全一样的副本,因此需要对这些表进行比较来验证这些表的一致性。如果副本与原表之间没有差异,则可以默认这些表100%经过了验证。也可以随机从测试环境中抽取一组数据,与存储在数据库中的数据进行比较,如果两种数据一致,则更能增强对数据库程序的信心。

三、系统测试

系统测试是对数据库的系统性能、数据一致性、完整性、安全性等方面的综合性测试,在软件开发的最后阶段进行。

1.数据库系统性能检测。在进行数据库性能检测之前,须先要检测数据的硬件环境,如网络环境、内存、磁盘I/O及CPU。在硬件环境满足的情况下方可进行性能检测。性能检测主要从以下几个方面进行。

磁盘I/O读写监视,监控磁盘的数据块使用情况以及被频繁读写的热点区域。通过这些信息使用者就可以较容易地平衡在磁盘上数据量的存储分配以及磁盘的I/O分配,有效地帮助使用者作好磁盘容量规划并在当前的磁盘设备上有效的提高数据的读写效率。

检测CPU时间,找出占有CPU最多的进程及相关数据库表。

检测数据库服务器的吞吐量,找出读取数据库业务最繁忙的时段。

检测数据库用户的响应时间,找出响应时间最长的进程或用户。

监控超出共享内存缓冲区的操作数,按照这个基准,使用者可以对缓冲区进行额外的调整,以便更好地支持实际系统的运行需要,提高用户生产效率。

监测上一轮期间作业等待缓冲区的时间,帮助使用者发现可能存在的并发性问题。通过一段时间的监测,使用者可以得出该实际生产系统并发访问的需求和可用性等基准参数。

根据用户事务或者表空间监控事务日志。通过这项监控,使用者可以清晰的了解到重要作业对数据库存储、CPU操作和内存使用的情况,精确测算和分析现有资源,使之能够更好的适应对数据库的持续工作要求。

监测关键业务数据表的表空间增长,当空间低于预定的阀值时发出警告。通过这项功能,使用者可以有效地安排关键业务数据的存储,并且有效地防止因为数据空间不足而导致的关键业务停顿。

2.数据库系统一致性、完整性测试。在集成测试阶段对数据库的一致性和完整性已经有了一定的保证,但只是在基于数据库静态结构的基础上进行的,对数据库系统的动态行为不能保证。数据一致性的意外破坏可能由以下原因造成的。

在事务处理过程中发生崩溃;对数据库的并发访问所导致的异常;在几个计算机上分布数据所导致的异常;违反事务保证数据一致性这一假设的逻辑错误所导致的异常。

针对以上可能产生的情况,应采用如下测试策略。

在数据处理过程中,人为中止程序,查看数据一致性是否遭到破坏;模拟多用户同时访问数据库系统的情况,查看数据一致性是否遭到破坏;如数据库系统存在多个服务器,在人为制造故障系统又重新正常运行后,还要查看不同数据库之间的一致性;频繁添加/删除/修改数据,数据包括正常数据和不合理数据两种,查看数据的一致性和完整性是否一致。

3.数据库系统安全性测试。数据库系统中存储的数据需要保护,以防止未授权访问、恶意破坏或修改以及意外引入的不一致性。为保护数据库,必须在以下几个层次上采取安全性措施:物理层、人际层、操作系统层、网络层、数据库系统层。针对数据库系统层的进行测试的安全测试主要包括以下几个方面:数据库系统管理员用户是否加密、密码是否容易破解、是否限制了用户的登录次数等。

四、结束语

本文概述了数据库系统不同阶段的不同测试技术和方法,数据库系统测试开始于软件开发的概要设计阶段,终止于软件开发的系统测试阶段。采用的测试技术包括手工测试和自动化工具测试,但是目前用于数据库系统测试的自动化工具并不多,大多需要测试人员依靠自己的数据库设计和管理经验以及对软件业务流程的理解进行测试,测试结果也会因测试人员的水平不同而不同。

猜你喜欢
数据库系统磁盘使用者
解决Windows磁盘签名冲突
修改磁盘属性
新型拼插休闲椅,让人与人的距离更近
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
磁盘组群组及iSCSI Target设置
创建VSAN群集
实时数据库系统数据安全采集方案
抓拍神器
核反应堆材料数据库系统及其应用