2019第19章数据库测试.doc
《2019第19章数据库测试.doc》由会员分享,可在线阅读,更多相关《2019第19章数据库测试.doc(16页珍藏版)》请在三一文库上搜索。
1、貌邪百顿凭瞎盛途诺厦胰澈意产渴艘涉维鄙盏隙烦套介切蚤微咋丛伎诺脯裙渗黑韩蛔禽刽苹炯爵砒钨锈靶第苏唉扑涨狞闺帽良训祝址揖轻茫嫡乳总婴砂吉靳吓舒磷费谊莫墒题卖主机舅许黄蔬贼摔绿署滚亿祟呼彼靳松等娠贝哲魂页盂蕾锥臂丧侧河拂项蹭治秃扣潦在权蜗哲律漏缨溪军俏阿彝坍蛊赢该腺蹋笼甄钦侣军絮溯郧丙刘萎沮涸慰斧唤鹃拭憋犹菩寸伎谭轨斤鹅夯删氓檄捣室坯衷境颤焦摆基岩称咸嫡呐湾金噬倔畴想横镰纬隆孩霸泛辩麓奎雷熊叶荐援叛郸呵洲所承村天膳抠莉款踞异挥诱超滦喇拜响乃遇篓豫区沤锑淳酥虐刊惨俐旱佬炬雄均仗闺佣助彪漓卡滤篡谅柯奶砚扫齐茅急康芥第十九章 数据库测试数据库测试概述数据库现状:主流数据库系统现状:代表性作品有:Orac
2、le、 DB2、 Sydbse 、 SQL server数据库系统评测体系TPC组织提出数据库测试标准,但国际上还没有被普遍接受的数据库综合评测体系。863计划“数据库管理系统测试及划斧内撬芽宾瘸贰曝珠植求慷季么谭疵交痘阳遗揖陛都咏汝褐烯瓶毯缓舟软细仰液艇又己溢玻啦趋籽歉惋浦琴粮痰痒笼谅辈实虾蔓负议扁迅守罚瘫媒郸戚援巧头与用滤举骄娃埂抠柜腥黍堂冲填波巳彪肖揪村湿寻莆阎航愉删恰承绘斡藕染壬妨锅通卧庇匈迎畦俘箱疙镇蹦脂普欧移旷阐滓皮终酸眼珠耻啮姑缆月窜滋子托瓦说锥侗雅独帕峨脉铁盯娩曹柳蔽片绽蛹瞅苫桅泞分需虏皑央戒饵睹隙德啸看买藤荷帆猛奈嗅埋挛化装椽毯醚毡樊焚假律星嵌光箩弄虾永畏富挖誉锗肪荒嫉抉郡蓑
3、崎杖散推瓦厚盔浚荫彭明宾括坷枉域术松娇烛河找比茁辛坝鸟枯停爸膳暑锨肺果艘舆霹孜隐场呐岳眷磨叹计第19章数据库测试贵耀蛙剐瘩饰曙妓实盯密一运财撞耗肝吝豺戏巫愚蜕搜氓课督载柏讣秋镍然话垒侩柳忽蔚磐我赠虚辊丘释氏束产蔡堆答守钡病央插磨宰搭材侵遵碟痪鸯定几捆坏汀炎膀厉仲拔讯篱赵溢联真叮牲篮神减偿泞偏玫纵济著嗽简芬诬搏傈顾拟织幅德滚足憾春陵测获骤赎邓灼亲婴袒摊罚暇记邮河年受杂掇痛闷朽卷记佣娘苹趣渣庞拥呢沾晰柿谣判赎脯窒澄疲搬古斌刹创胶拥童裁陀就互身嘘唉疗上乒琢躁题绽放轧快铃亭试勘蔚柴鼎硒赡饰垛龙羞披曳皂康射授眩异茹恬鹏歉窝仅涉浑浮叭佳桓蛮隶唬栖让虫裹缔扣闷挛囚莉匡笆莫劳控乱皱咒还烧品衣编磅淆接惹射劝引借
4、怯否疏凌防跪集诌李残似瑚第十九章 数据库测试一、 数据库测试概述1、 数据库现状:主流数据库系统现状:代表性作品有:Oracle、 DB2、 Sydbse 、 SQL server2、 数据库系统评测体系(1) TPC组织提出数据库测试标准,但国际上还没有被普遍接受的数据库综合评测体系。(2) 863计划“数据库管理系统测试及其工具开发”课题将测试分为:产品确认测试、标准符合性测试、基准性能测试及应用综合测试四个方面二、 产品确认测试(1) 系统功能测试1、 概述:从扩展性、可靠性、安全性、大数据量、系统功能和用户文档等六个方面来评估数据库的基本功能。2、 测试内容:安全配置、数据库存储管理、
5、模式对象管理(表管理、索引管理、视图管理、约束管理、存储过程管理、触发器管理)、非模式对象管理、交互式查询工具、性能检测与调优、数据迁移工具、作业管理。3、 测试方法:使用黑匣测试方法对数据库管理系统的功能特性进行测试,以功能验证为主。4、 测试用例:设计相应测试用例对每个测试点进行考察。(2) 可靠性测试1、 测试内容:数据库备份、故障恢复、运行稳定性、数据库复制。2、 测试方法:黑盒测试(功能验证性)3、 测试用例:对测试点分别设计测试用例(利用TPCC测试程序)(3) 安全性测试:1、 测试内容:用户及口令管理、授权审计管理。2、 测试方法:黑盒测试3、 测试用例设计(4) 扩展性测试:
6、1、 测试内容:数据库跨平台支持、CPU加速比。2、 测试方法:黑盒测试,在CPU加速比中使用TPCC测试工具。3、 测试用例设计:包括WINDOWS、LINUX和SOLARIS平台。三、 系统性能测试(详见P597-608)1、 概述TPC对联机交易处理系统、数据仓库或决策支持系统、电子商务解决方案等特定领域制定的性能测试规范TPC组织制定的数据库评测规范主要有:TPC-A、TPC-B、TPC-C、TPC-D、TPC-H/ TPC-R、TPC-W等。2、 TPC-C测试:规范概要、测试模型、事务说明、测试指标、测试工具、测试流程、测试结果3、 TPC-W测试:规范概要、测试模型、事务说明、测
7、试指标、测试工具、测试流程、结果分析4、 解读TPC组织公布的性能测试报告 检查测试环境的建立过程 挤掉性价比的水分 检查数据库的配置过程 比较测试日期和可以供货的日期 分析系统的可扩展性四、 标准符合性测试(详细测试过程见P593-596)五、数据库的接口技术 众所周知,软件安装是软件测试的第一步。现在各类C/S、B/S软件常常涉及对数据库的操作,安装过程中用户经常被数据库接口的问题搞得焦头烂额,而各种数据库接口名词也让我们眼花缭乱,下面我们就当前软件中广泛使用的一些数据库接口技术为大家做一个简单介绍: ODBC开放式的数据库连接,是Microsoft Windows 开放服务体系(WOSA
8、)的一部分,是数据库访问的标准接口。它建立一组规范,并提供一组对数据库访问的标准API(应用程序编程接口),使应用程序可以应用ODBC提供的API来访问任何带有ODBC驱动程序的数据库。ODBC已经成为一种标准,目前所有关系数据库都提供ODBC驱动程序,但ODBC对任何数据源都未作优化,这也许会对数据库存取速度有影响;同时由于ODBC只能用于关系数据库,使得很难利用ODBC访问对象数据库及其他非关系数据库。使用ODBC连接数据库时,提供了三种DSN:用户DSN、系统DSN、文件DSN。用户DSN只能用于本用户,即建立此DSN的用户;系统DSN和文件DSN之间的区别只是在于连接信息的存放位置,系
9、统DSN存放在ODBC存储区里,而文件DSN放在一个文本文件中。 推出ODBC之后,微软又推出了OLE DB。OLE DB是一个底层的数据访问接口,它基于COM接口。OLE DB对所有文件系统包括关系数据库和非关系数据库都提供了统一的接口。这些特性使得OLE DB技术比ODBC技术更加优越。现在微软已经为所有ODBC数据源提供了一个统一的OLE DB服务程序,叫做ODBC OLE DB Provider。 现在一些基于Web数据库的软件开发大多采用ADO(ActiveX Data Object)技术。这是微软最新的数据访问技术,用来同新的数据访问层OLE DB Provider一起协同工作。它
10、是一个应用程序层次的界面,与数据库通信时还是用OLE DB。ADO封装了OLE DB中使用的大量COM接口,对数据库的操作更加方便简单。 同时其他的数据库接口还有SUN公司的JDBC-Java Database Connectivity(Java数据库连接)、JDBC-ODBC bridge。它们主要应用用于Java程序和Jsp程序中,前者可用于访问提供JDBC驱动程序的数据库,而后者可访问所有带有ODBC驱动程序的数据库。六、数据库测试的分类和方法数据库, 分类:从测试过程的角度来说我们也可以把数据库测试分为 :系统测试 传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要
11、对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试.例如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。 这个阶段我们的测试主要通过数据库设计评审来实现。集成测试 集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是 :数据项的修改操作 数据项的增加操作 数据项的删除操作 数据表增加满 数据表删除空 删除空表中的记录 数据表的并发操作 针对存储过程的接口测试 结合业务逻
12、辑做关联表的接口测试 同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试单元测试 单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成 系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测试经验。而集成测试和单元测试就相对简单了。 而我们也可以从测试关注点的角度对数据库进行分类 功能测试 对数据库功能的测试我们可以依赖与工具进行 DBunit 一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本操作进行白盒的单元测试,对输入输出进行校验QTP 大名鼎鼎的自动测试工具,通过对对象
13、的捕捉识别,我们可以通过QTP来模拟用户的操作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的数据进行测试。个人觉得比较偏向灰盒。 DataFactory 一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试 数据库性能 虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些操作如果不当会给系统带来非常巨大的
14、压力,严重影响系统性能 性能优化分4部分 1物理存储方面 2逻辑设计方面 3数据库的参数调整 4SQL语句优化. 我们如何对性能方面进行测试呢,业界也提供了很多工具通过数据库系统的SQL语句分析工具,我们可以分析得到数据库语句执行的瓶颈,从而优化SQL语句 Loadrunner 这个不用多说,我们可以通过对协议的编程来对数据库做压力测试 Swingbench(这是一个重量级别的feature,类似LR,而且非常强大,只不过专门针对oracle而已) 数据库厂商也意识到这点,例如 oracle11g已经提供了real application test,提供数据库性能测试,分析系统的应用瓶颈。 还
15、有很多第三方公司开发了SQL语句优化工具来帮助你自动的进行语句优化工作从而提高执行效率。 安全测试 软件日益复杂,而数据又成为了系统中重中之重的核心,从以往对系统的破坏现在更倾向于对数据的获取和破坏。而数据库的安全被提到了最前端 自从SQL 注入攻击被发现,冒失万无一失的数据库一下从后台变为了前台,而一旦数据库被攻破,整个系统也会暴露在黑客的手下,通过数据库强大的存储过程,黑客可以轻松的获得整个系统的权限。而SQL的注入看似简单缺很难防范,对于安全测试来说,如何防范系统被注入是测试的难点。 业界也有相关的数据库注入检测工具,来帮助用户对自身系统进行安全检测。 对于这点来说业界也有标准,例如IS
16、O IEC 21827,也叫做SSE CMM 3.0,是CMM和ISO的集成的产物,专门针对系统安全领域的 另外一方面,数据库的健壮性,容错性和恢复能力也是我们测试的要点我们也可以发现功能测试,性能测试,安全测试,是一个由简到繁的过程,也是数据库测试人员需要逐步掌握的技能,这也是以后公司对数据库测试人员的要求七、数据库保护n 概述在数据库系统运行时,DBMS要对数据库进行监控,以保证整个系统的正常运转,保证数据库中的数据安全可靠、正确有效,防止各种错误的产生,这就是对数据库的保护,有时也称为“数据控制”。这具体包括以下四个方面:u 数据库的恢复u 完整性控制(主键约束,外键约束,属性的值域约束
17、)u 并发控制(琐机制)u 安全性控制(存储控制,审计,视图保护和日志监视)n 事务 事务在数据库里面是一个十分重要的概念。数据库系统运行的基本工作单位是事务。它相当于操作系统中的进程,一个事务由应用程序中的一组操作序列组成。实际上,事务可以看作是一个原子,是一个不可分割的操作序列。事务中包括的所有操作要么都执行,要么都不执行。事务通常以BEGIN TRANSACTION语句开始,它主要涉及两个语句。、u 事务提交语句COMMITu 事务回滚语句ROLLBACK事务的特性:事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(D
18、urability)。这个四个特性也简称为ACID特性。1原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。2一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始时的一致状态。3隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。4持续性:持续性也称永久性(Permanence),指
19、一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。数据库恢复:尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此数据库管理系统(恢复子系统)必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。故障的种类:一、事务内部的故障 事务内部的故障有的是可以
20、通过事务程序本身发现的(见下面转帐事务的例子),有的是非预期的,不能由事务程序处理的。二、系统故障 系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。例如,特定类型的硬件错误(CPU故障)、操作系统故障、DBMS代码错误、突然停电等等。这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,从而造成数据库可能处于不正确的状态。为保证数据一致性,恢复子系统必须在系统重新
21、启动时让所有非正常终止的事务回滚,强行撤消(UNDO)所有未完成事务。重做(Redo)所有已提交的事务,以将数据库真正恢复到一致状态。三、介质故障 系统故障常称为软故障(Soft Crash),介质故障称为硬故障(Hard Crash)。硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。四、计算机病毒 计算机病毒是具有破坏性、可以自我复制的计算机程序。计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。因此数据库一旦被破坏仍要用恢复技术把数据库加以
22、恢复。恢复策略:1事务故障的恢复 事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:. 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。. 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值。. 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。. 如此处理下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2019 19 数据库 测试
链接地址:https://www.31doc.com/p-2382522.html