第6章 数据库测试PPT讲稿.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第6章 数据库测试PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第6章 数据库测试PPT讲稿.ppt(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章章 数据库测试数据库测试第1页,共93页,编辑于2022年,星期一内容提要内容提要v在数据库系统开发过程中,需求分析不充分、设计考虑不周、代码编写错误等都可能造成数据库错误和缺陷。如果这些隐藏在数据库内的错误和缺陷不排除,将导致数据库运行不正常、用户蒙受损失,甚至造成灾难性后果。为了保证数据库的质量,找出数据库中存在的可能错误和缺陷,有必要对数据库进行测试。本章首先介绍数据库测试的概念、方法和步骤,然后介绍测试用例设计的原理与方法,最后介绍数据库模式测试、功能测试、性能测试及调试的基本概念和方法。第2页,共93页,编辑于2022年,星期一6.1 概述概述v6.1.1数据库测试的定义v数
2、据库测试一般与其数据库系统测试同时进行。数据库测试方法和手段与计算机软件测试大体相同,只是测试范围和重点有些不同。v数据库测试可以简单地定义为:数据库测试是为了发现错误和缺陷而运行数据库的过程。实际上,为了保证数据库的质量,数据库测试贯穿数据库开发的全过程,即数据库需求分析、设计、实现等阶段的工作成果均需要测试。因此,数据库测试是根据数据库的需求规格说明书和源代码的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行数据库,以发现数据库错误和缺陷的过程。第3页,共93页,编辑于2022年,星期一6.1 概述概述v数据库测试的目的在于发现错误和缺陷,而不是证明
3、数据库没有错误和缺陷。一个成功的测试是发现至今没有发现的错误和缺陷的测试,一个好的测试用例是发现至今没有发现的错误和缺陷的测试用例。v数据库测试的主要内容是数据库模式测试、功能测试和性能测试。v数据库测试的任务是编制测试计划、运行测试用例、形成测试结论、撰写测试分析报告。数据库分析、设计和实现人员根据测试分析报告,分析引起错误和缺陷的原因、寻求排除错误和弥补缺陷的方法,最终排除错误和缺陷。第4页,共93页,编辑于2022年,星期一6.1.2 数据库测试的原则数据库测试的原则v6.1.2 数据库测试的原则v(1)数据库测试是一个测试排错(排除错误和缺陷)再测试再排错、循环往复、数据库质量不断改进
4、的过程。v(2)尽早地和不断地进行数据库测试。数据库测试不只是在数据库实现后才进行测试,而在数据库需求分析、设计等阶段也需要测试。v(3)测试用例应由测试输入数据和与之对应的预期输出结果两部分组成。预期输出结果用于与实际输出结果比较。第5页,共93页,编辑于2022年,星期一6.1.2 数据库测试的原则数据库测试的原则v(4)系统开发人员要避免测试自己所作的数据库需求分析文档、设计文档和实现代码。经验表明,别人测试使得测试工作更客观、更有效。自己测试的不利之处在于:一是心理问题,一般的人不愿否认自己的工作。二是思维惯性,自己在分析、设计和实现时的疏忽在测试时可能仍然不能发现。v(5)在设计测试
5、用例时,应当包含合理的输入数据和不合理的输入数据。合理的输入数据是能验证数据库正确的数据。不合理的输入数据是指数据库中不可能存储或处理的数据,用于测试数据库在输入异常(如用户在键盘上按错键)时能否正确处理。第6页,共93页,编辑于2022年,星期一6.1.2 数据库测试的原则数据库测试的原则v(6)充分注意测试中的错误群集现象。经验表明,测试排错后的文档或源代码中残存的错误数量与排错前的错误数量成正相关关系,形成错误群集现象。例如,某个存储过程被检出错误,该存储过程排错后增加了一个入口参数,因此所有调用该存储过程的程序均需修改。这就是一个错误引发一群错误。v(7)严格执行测试计划,杜绝测试的随
6、意性。测试计划包括测试目标、测试环境、测试准备、测试方法、测试人员及分工,逐个列出测试项目(包括项目名称、测试目的、测试内容、测试进度、测试步骤、测试结果评价标准、测试用例)。第7页,共93页,编辑于2022年,星期一6.1.2 数据库测试的原则数据库测试的原则v(8)对每一个测试结果做全面复查,避免疏漏和失误。v(9)进行出错统计、撰写测试分析报告。测试分析报告包括实际测试环境、测试方法、测试人员、总体结论与评价,按项目逐个列出测试结果(包括实际输入与输出结果、发现的问题、说明是否通过测试、排错建议)。第8页,共93页,编辑于2022年,星期一6.1.3 数据库测试的方法数据库测试的方法v6
7、.1.3 数据库测试的方法v按照对数据库的内部结构和工作过程了解的程度,数据库测试的方法分为白盒测试和黑盒测试。v1.白盒测试v白盒测试是已知数据库的内部结构和工作过程,通过测试来检验数据库是否按照需求规格说明书的要求正常运行。在测试时,把测试对象看作一个打开的盒子,它允许测试人员利用数据库的内部结构等信息,设计或选择测试用例,对数据结构、存储过程及触发器的逻辑路径等进行测试,确定实际的状态是否与预期的状态一致。第9页,共93页,编辑于2022年,星期一6.1.3 数据库测试的方法数据库测试的方法v数据库测试人员使用白盒测试方法,除可以对数据结构进行测试外,还可以对存储过程和触发器的模块进行如
8、下的检查:v(1)对模块的所有独立的执行路径至少测试一次。v(2)对所有的逻辑判断的取“真”与取“假”的两种情况都至少测试一次。v(3)在循环的边界和运行的边界内执行循环体。v(4)测试内部数据结构的有效性等。v常用的白盒测试方法包括代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法。测试方法不同,测试用例的设计方法也存在差异。第10页,共93页,编辑于2022年,星期一黑盒测试黑盒测试v2.黑盒测试v黑盒测试是在已知数据库所具有的功能的基础上,通过测试来检验每个功能是否都能正常运行并达到预期结果。在测试时,把数据库看作一个不能打开的黑盒子,在完全不考虑数据库内部结构和内部
9、特性的情况下,测试人员根据经验,通过相应的数据库系统或数据库访问工具进行测试。这种测试主要是为了测试如下问题是否正确处理:第11页,共93页,编辑于2022年,星期一黑盒测试黑盒测试v(1)数据结构(例如,数据类型、宽度)是否正确定义?v(2)输入能否正确地接受?能否输出正确的结果?v(3)能否能够正确插入(增加)、更新、删除数据?v(4)主码、外码是否正确定义?v(5)数据库操作权限定义是否正确?v(6)是否正确处理并发操作?v(7)表级、列级完整性约束条件是否满足?v(8)数据库的处理能力是否满足要求?第12页,共93页,编辑于2022年,星期一黑盒测试黑盒测试v(9)数据库的可靠性、可维
10、护性是否满足要求?v黑盒测试着眼于数据库的功能和性能,不考虑其内部逻辑结构进行测试,主要用于数据库确认测试。v常用的黑盒测试方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法。黑盒测试的关键是设计测试用例。第13页,共93页,编辑于2022年,星期一6.1.4 数据库测试的步骤数据库测试的步骤单元测试 集成测试 确认测试 系统测试 图6-1 数据库测试的步骤第14页,共93页,编辑于2022年,星期一6.1.4 数据库测试的步骤数据库测试的步骤v1单元测试v单元测试集中检查数据库设计的单个表、视图、索引、存储过程、触发器、数据库系统模块,通
11、过测试发现其中分析、设计与编码的可能错误。v2集成测试v集成测试是将数据库系统模块按照设计要求组装起来,在组装的同时进行测试。主要目的是发现与接口有关的问题。如数据通过接口可能丢失,一个模块与另一个模块可能有由于疏忽而造成有害影响,把子功能组合起来可能不产生预期的主功能等。第15页,共93页,编辑于2022年,星期一6.1.4 数据库测试的步骤数据库测试的步骤v 3确认测试v确认测试的任务是验证数据库系统的功能和性能及其他特性是否与用户的要求一致。对数据库系统的功能和性能要求在需求规格说明书中已经明确规定。确认测试应交付的文档有:确认测试分析报告、最终的用户手册和操作手册、项目开发总结报告等。
12、v 4系统测试v系统测试是将通过确认测试的数据库系统的软件、硬件、外设、某些支持软件和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对数据库系统进行一系列的集成测试和确认测试。系统测试的目的在于通过与系统需求作比较,发现与系统需求不符合或矛盾的地方。v按照上述步骤对数据库进行测试并通过后,数据库应该满足需求规格说明书的要求。第16页,共93页,编辑于2022年,星期一6.1.5 数据库测试输出结果的展现数据库测试输出结果的展现v6.1.5 数据库测试输出结果的展现v数据库测试的输出结果主要有三个去向:存储到数据库、存储到特殊格式的数据文件、输出到屏幕或打印机等外围设备。v如果测试输出
13、结果存储到数据库,可以用数据库系统或专门的数据库访问工具查看它们。例如,在成绩管理系统中,成绩输入模块插入的成绩记录既可以用成绩查询模块查看,也可以用专门的数据库访问工具查看,如Delphi 的SQL Explorer。当然,一些数据库产品还带有自己专门的访问工具,如Microsoft SQL Server数据库可以用SQL查询分析器(SQL Query Analyzer)、SQL Server企业管理器(SQL Server Enterprise Manager)这两个工具查看。第17页,共93页,编辑于2022年,星期一6.1.5 数据库测试输出结果的展现数据库测试输出结果的展现v如果测试
14、输出结果存储到特殊格式的数据文件,数据库系统有查询这个数据文件内容的功能时就用被测试的数据库系统查看它们,否则只能用专门的工具查看了。v如果测试输出结果输出到屏幕或打印机等外围设备,测试人员应该按测试计划检查测试输出结果是否与预期结果一致。第18页,共93页,编辑于2022年,星期一6.2 测试用例设计测试用例设计v设计数据库测试用例就是针对数据库的功能和性能而设计的测试方案,并编入测试计划中。测试用例的设计既要考虑正常情况,也应考虑极限情况以及字段取最大值和最小值等边界情况。因为测试的目的是暴露数据库中隐藏的错误和缺陷,所以在设计测试用例时要充分考虑那些易于发现错误和缺陷的测试用例。好的测试
15、用例应该有较高的发现错误和缺陷的概率。第19页,共93页,编辑于2022年,星期一6.2.1 白盒测试的测试用例设计白盒测试的测试用例设计v6.2.1 白盒测试的测试用例设计v逻辑覆盖法和基本路径测试法是计算机软件白盒测试用例设计的两个重要方法。这两个方法也适合存储过程、触发器、嵌入式SQL等数据库程序的测试。v为了举例方便,下面给出一个程序流程图(见图6-2)。图中字母A、B、C、D、E、F、G代表其旁边语句的编号。第20页,共93页,编辑于2022年,星期一6.2.1 白盒测试的测试用例设计白盒测试的测试用例设计开始结束X2 and Y3?X5 or Y3?AY=Y-1X=1YesNoX=
16、2YesNo图6-2 程序流程图示例BDEFCG第21页,共93页,编辑于2022年,星期一语句覆盖语句覆盖 v(1)语句覆盖 语句覆盖是设计足够多的测试用例,运行所测程序,使得程序中每条可执行语句至少被执行一次。不过,每条可执行语句至少执行一次是最基本的要求,但是它不能保证发现逻辑运算和程序逻辑错误,且并不是所有的分支被执行过。v例6-1 考虑图6-2,语句覆盖的测试用例如表6-1所示。注意,该组测试用例不能覆盖判断E为假的分支。而且,如果判断C误写为X2 or Y3,该组测试用例仍能够实现语句覆盖,因此该组测试用例发现不了这个错误。v测试用例一般不是唯一的。例如,表6-2的测试用例也可以实
17、现语句覆盖。第22页,共93页,编辑于2022年,星期一语句覆盖语句覆盖 表6-1 语句覆盖测试用例(组1)序号输入预期输出覆盖语句XYXY16423覆盖语句C、D、E、F22111覆盖语句C、B第23页,共93页,编辑于2022年,星期一语句覆盖语句覆盖 表6-2 语句覆盖测试用例(组2)序号输入预期输出覆盖语句XYXY16524覆盖语句C、D、E、F21111覆盖语句C、B第24页,共93页,编辑于2022年,星期一判定覆盖判定覆盖 v(2)判定覆盖 判定覆盖又称分支覆盖,是设计足够多的测试用例,运行所测程序,使得程序中每个判断的取真分支和取假分支分别至少执行一次。v例6-2 考虑图6-2
18、,其中C、E为判断。判定覆盖的测试用例如表6-3所示。v虽然判定覆盖能够保证所有判断的取真分支和取假分支执行至少一次,但判定覆盖不能保证发现条件表达式错误。例如,如果语句C误写为X2 or Y3,表6-3给出的测试用例仍能够实现判定覆盖,因此该组测试用例发现不了这个错误。第25页,共93页,编辑于2022年,星期一判定覆盖判定覆盖 表6-3 判定覆盖测试用例序号输入预期输出覆盖分支XYXY16524覆盖语句C、语句E的取真分支25453覆盖语句C的取真分支、语句E的取假分支31111覆盖语句C的取假分支第26页,共93页,编辑于2022年,星期一条件覆盖条件覆盖 v(3)条件覆盖 条件覆盖是设
19、计足够多的测试用例,运行所测程序,使得每个判断的每个条件成分取真值和假值分别至少执行一次。v例6-3 考虑图6-2。首先对所有判断的条件成分取值进行标记:v条件覆盖的测试用例如表6-4所示。第27页,共93页,编辑于2022年,星期一条件覆盖条件覆盖 表6-4 条件覆盖测试用例易见,表6-4的测试用例同表6-3是一样的。因此条件覆盖的测试用例并不能保证条件表达式错误被检出。第28页,共93页,编辑于2022年,星期一判定判定-条件覆盖条件覆盖 v(4)判定-条件覆盖 判定-条件覆盖是设计足够多的测试用例,同时满足判定覆盖和条件覆盖。v例6-4 考虑图6-2,并沿用例6-3的记号。判定-条件覆盖
20、的测试用例如表6-5所示。表6-5的测试用例同表6-3、表6-4是一样的。可见,判定-条件覆盖的测试用例仍不能保证条件表达式错误被检出。第29页,共93页,编辑于2022年,星期一判定判定-条件覆盖条件覆盖 表6-5 条件覆盖测试用例第30页,共93页,编辑于2022年,星期一条件组合覆盖条件组合覆盖 v(5)条件组合覆盖 条件组合覆盖是设计足够多的测试用例,运行所测程序,使得每个判断中的所有条件成分取值组合至少执行一次。v例6-5 考虑图6-2,并沿用例6-3的记号。判断C的条件成分组合有4个:第31页,共93页,编辑于2022年,星期一条件组合覆盖条件组合覆盖表6-6 条件组合覆盖测试用例
21、第32页,共93页,编辑于2022年,星期一条件组合覆盖条件组合覆盖v组合覆盖的测试用例可同时实现判定覆盖、条件覆盖和判定-条件覆盖,但当判断的条件成分过多时,测试用例的数量可能成几何级数增长。例如,如果某个判断有5个条件成分,因为每个条件成分有取真值、取假值两种可能,则有25=32种组合方案。v另外,组合覆盖的测试用例不一定能覆盖全部程序路径。这里,程序路径(简称路径)是指从程序入口(开始)到出口(结束)的任何路径。第33页,共93页,编辑于2022年,星期一路径覆盖路径覆盖 v(6)路径覆盖 路径覆盖是设计足够多的测试用例,覆盖程序中所有可能的路径。v例6-6 考虑图6-2。全部路径为AC
22、DEFG、ACDEG、ACBG。路径覆盖的测试用例如表6-7所示。表6-7的测试用例同表6-3是一样的。第34页,共93页,编辑于2022年,星期一路径覆盖路径覆盖表6-7 路径覆盖测试用例序号输入预期输出覆盖路径XYXY16524覆盖路径ACDEFG25453覆盖路径ACDEG31111覆盖路径ACBG第35页,共93页,编辑于2022年,星期一基本路径测试法基本路径测试法v2.基本路径测试法v基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。v限于篇幅,本书对基本路径测试法不作深入讨论。有兴趣的读者可以参考软件测试等方面的
23、专著或教科书。第36页,共93页,编辑于2022年,星期一6.2.2 黑盒测试的测试用例设计黑盒测试的测试用例设计v6.2.2 黑盒测试的测试用例设计v1.等价类划分法v一个数据的集合称为关于程序输入数据的等价类(简称为等价类),如果集合中的一个数据作为测试输入数据不能发现该程序的错误,那么使用集合中的其他数据作为测试输入数据也不能发现错误。v所谓等价类划分法是把全部可能的输入数据划分为若干等价类,从每个类中选取一个数据作为输入数据来测试程序。v等价类划分法设计测试用例分为两步:划分等价类、确定测试用例。第37页,共93页,编辑于2022年,星期一6.2.2 黑盒测试的测试用例设计黑盒测试的测
24、试用例设计v(1)划分等价类和列出等价类表 等价类分为有效等价类和无效等价类。所谓有效等价类,指对于程序的需求规格说明而言是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了需求规格说明中所规定的功能和性能。不是有效等价类的数据的集合称为无效等价类。v设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接受合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。第38页,共93页,编辑于2022年,星期一6.2.2 黑盒测试的测试用例设计黑盒测试的测试用例设计v划分等价类需要经验,下述列出划分等价类的几个原则:v1)如果输入条件规定了取值范围,则可以定
25、义一个有效等价类和两个无效等价类。v例6-7 设在程序的需求规格说明中对输入条件有一句话:“班级的人数从199”。v有效等价类有一个:“1人数99”,无效等价类有两个:“人数1”、“人数99”。第39页,共93页,编辑于2022年,星期一6.2.2 黑盒测试的测试用例设计黑盒测试的测试用例设计v2)如果输入条件规定了输入值的集合,或者规定了“必须如何”的条件,则可以定义一个有效等价类和一个无效等价类。v例6-8 设学生(学号,姓名,性别,所在系,班号,出生日期)关系规定性别属性取值于集合“男”,“女”。v有效等价类有一个:“男”,“女”,无效等价类有一个:除“男”、“女”外的所有字符串。第40
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 数据库测试PPT讲稿 数据库 测试 PPT 讲稿
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内