《数据库测试学习.pptx》由会员分享,可在线阅读,更多相关《数据库测试学习.pptx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、既然数据库开发在软件系统中的比重逐步提高,那么由于数据库开发过程中存在的问题也随之而来。一个软件系统的功能,性能,安全性往往和数据库开发有直接的关系。所以,我们有必要对数据库作为一个独立的系统进行测试。第1页/共20页数据库测试分类从测试过程角度来说我们也可以把数据库测试分为:系统测试集成测试单元测试从测试关注点角度对数据库进行分类:功能测试性能测试安全测试健壮性测试,容错性测试和恢复能力等第2页/共20页数据库完整性测试数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。数据库完整性原即:主码完整性:主码不能为空;外码完整性:外码必须等于对应的主码或者为空。数据合理性指数据在数据
2、库中的类型,长度,索引等是否建的比较合理。在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统(DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。第3页/共20页比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为#,但是#在部门编号中确找
3、不到,这就违反外码完整性原则。员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。第4页/共20页功能测试数据库系统功能为主要测试对象,因为能否正确地提供数据存储及管理的功能、能否有效和正确地对存储在数据库中的模式对象和非模式对象进行管理,是其能否正常提供数据管理服务的基础,也是数据库管理系统能够真正投入使用的前提,同时考虑到数据库系统的可管理性,这些系统功能均通过图形化管理工具来测试。系统功能部分的测试点为安装与配置、数据库存储管理、模式对象管理、非模式对象管理、交互式查询工具、性能监测与调优、数据迁
4、移工具及作业管理几个方面。各个部分又分成若干个具体的测试项目,具体测试点概括如下:第5页/共20页1、安装与配置主要测试点为:是否具有完整的图形化安装程序是否提供集中式多服务器管理及网络配置是否在安装界面中显示数据文件、日志文件、控制文件等参数文件的默认路径及其命名规则是否提供运行参数查看与设置功能是能够正确地进行数据库的创建和删除等第6页/共20页2、数据库存储管理主要测试点为:表空间(文件组)管理数据文件管理日志文件管理归档文件管理等第7页/共20页3、模式对象管理模式对象管理是数据库管理系统最基本的数据管理服务功能特性,是数据库所有功能的基础,主要测试点为:表管理主要测试点为图形方式下表
5、的创建,图形方式下修改表、数据类型下拉框选择与修改、重组表数据、图形工具中查看编辑数据,支持图形下拉框条件选择与查询、表属性及相关性图形化显示等。索引管理主要测试点为创建、修改索引信息,提供索引定义类型选择,索引的存储管理,索引重组与合并等。视图管理主要测试点包括图形方式下创建、删除视图,图形工具中查看视图定义,图形工具中查看视图数据、支持条件查询,视图属性及其相关性图形化显示等。约束管理主要测试点包括约束定义与修改(主键/外键/(NOT)NULL/CHECK/UNIQUE/DEFAULT设置)、支持约束状态控制(延时/立即)、约束查看、相关性图形化显示等。存储过程管理主要测试点包括创建、删除
6、存储过程;图形工具中查看、修改存储过程代码(支持所得即所写)等。触发器管理主要测试点包括支持图形工具中创建、删除触发器:支持行级触发器;支持语句级触发器:图形工具中查看、修改触发器代码(支持所得即所写)等。第8页/共20页4、非模式对象管理模式管理包括模式的创建、删除、查看、用户指派等用户管理包括用户的创建、删除、修改、授权、口令策略管理角色管理包括角色的创建、删除、修改、查看、用户指派权限管理包括数据库对象权限的查看与指派、用户对象权限第9页/共20页性能测试性能测试主要包括,插入,查询的并发,满负荷下的持续运行时间,数据库响应时间,CPU占用率,SQL语句优化等。简单来说可以有下述三种方式
7、:测量单个操作的性能以工业标准的性能测试模型来测试以用户的实际应用程序来测试第10页/共20页测量单个操作的性能通常来说为了直观简单比较数据库的性能,可以单纯比较数据库的增查改删(INSERT/SELECT/UPDATE/DELETE)等操作的性能来比较各个数据库的性能优异。这种方法的好处是简单而直观,并且用户可以很容易进行这种测试。但这种方法缺乏客观性以及全面的对比,因为数据库的性能体现在多用户时能否有效调配系统资源实现系统的高吞吐,而单纯的各个操作的比较很难反映系统的整体性能,所以这种方法不为工业界所接受。但也不失去为一种简便的方法。另外还可以加进测试数据的导入时间,备份以及恢复的时间长短
8、,还有排序等操作,以获得对数据库的个性能的指标。第11页/共20页以工业标准的性能测试模型来测试目前主流的性能测试的方法是模拟现实的业务逻辑,以对比系统的整体性能。目前有专门的非营利组织事务处理性能委员会制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并管理测试结果的发布。其制定了一系列权威的商务应用基准程序的规范,包括:TPC-App:模拟跨平台的模拟网络交易。TPC-C:模拟一个批发商的货物管理环境TPC-E:模拟大型企业信息服务测试基准程序TPC-H:模拟数据仓数据分析程序第12页/共20页以用户的实际应用程序来测试由于工业标准的性能测试模型只制定了几种常见的应用的
9、性能测试规范,而用户的实际的应用程序通常会更为多样,甚至有时和工业标准的模型差别甚大,这样就工业标准的模型的参考意义并不是十分大,因而最为客观以及有意义的是客户根据自己的应用制定模拟的测试程序,通过模拟程序对各个数据库进行性能评估,从而找出最适合该应用的数据库。第13页/共20页安全测试数据库的操作,最基本的还是增,删,查和改,看基本的这些操作是否成功,然后考虑一些异常数据、并发数据、延迟数据(涉及网络)、同步数据的测试。数据方面,除了异常数据、并发、延迟、同步数据的测试外,可以补充如下方面的测试:数据库的验证测试数据保护测试数据库的服务器硬盘在被访问和备份时是否可以防拷,数据库的客户端在访问
10、和备份时是否可以防拷使用什么样的杀毒软件和防火墙?它们是安全的么?在数据库所有过程中,你所使用的杀毒软件和防火墙是否同时开启了数据库保护功能?数据库安全规范的更新时间和更新方式数据库安全日志数据库版本更新后,原数据库中的数据是否已经备份,备份在导入导出过程中是否遗漏或者不兼容。第14页/共20页数据库的验证测试目前常用到的就是用户名称和密码结合的测试,主要看使用者是否按照他的帐号权限进行操作。重点关注数据库默认的帐户名和密码。现在有些数据库有智能识别卡,那就牵扯到智能识别卡是否实现了它应实现的功能和不应实现的功能。另外还有生物识别。第15页/共20页数据保护测试数据库数据写入,读出,在网络上传
11、输过程中是否被加密;备份,删除过程中因为意外情况(服务器硬盘被拔出,网络断线等)是否产生数据丢失;丢失的数据是否可以找回,数据库设置时,是完全备份,差异备份还是其他备份方式;第16页/共20页数据库安全规范的更新时间和更新方式举个例子:A从2008年入职公司,2009年合同到期,那么这一年时间内,A的帐号A123和密码123是有效的;到10年1月1日时,A登陆数据库应提示:您的帐户已过期请联系管理员,并无法登入。A离职以后,A的帐号A123直接从数据库中删除。第17页/共20页数据库安全日志如果真的出了问题,安全日志上是否有更新,是否会弹出警报。不过安全日志只是个亡羊补牢的方法,不过好的DBA一定非常关注这个东西。第18页/共20页对测试人员的要求了解数据库特性。了解数据库的安装、连接、配置。如果不会这些,也就谈不上去测试数据库的应用;了解数据库的特性,跟据系统数据管理的需要选择正确的数据库做为系统支持;熟悉数据库的参数设置及调优,不同的数据库差别很大。这些特性会对数据库的使用,特别是性能方面造成很大的影响;熟练操作SQL,可以方便的进行数据库数据的查询和修改;(如果可能,了解数据库固有的问题,会能帮助你暴露问题、有效进行测试;数据库本身就是个系统,其稳定性比较高,但是问题总是会存在。第19页/共20页感谢您的观看。第20页/共20页
限制150内