第四章黑盒测试技术_第1页
第四章黑盒测试技术_第2页
第四章黑盒测试技术_第3页
第四章黑盒测试技术_第4页
第四章黑盒测试技术_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章黑盒测试技术第一页,共九十九页,编辑于2023年,星期五本章内容提要

黑盒测试的基本概念

黑盒测试的方法黑盒测试的依据和流程第二页,共九十九页,编辑于2023年,星期五

4.1黑盒测试的基本概念第三页,共九十九页,编辑于2023年,星期五黑盒测试结果通过测试测试失败第四页,共九十九页,编辑于2023年,星期五黑盒测试能发现以下几类错误●功能不对或遗漏。●界面错误。●数据结构或外部数据库访问错误。●性能错误。●初始化和终止错误。第五页,共九十九页,编辑于2023年,星期五黑盒测试对程序的功能性测试要求●每个软件特性必须被一个测试用例或一个被认可的异常所覆盖。●利用数据类型和数据值的最小集测试。●利用一系列真实的数据类型和数据值运行,测试超负荷及其他“最坏情况”的结果。●利用假想的数据类型和数据值运行,测试排斥不规则输入的能力。●测试影响性能的关键模块,如基本算法、精度、时间、容量等是否正常。第六页,共九十九页,编辑于2023年,星期五4.1.1黑盒测试的优点和缺点优点缺点(1)有针对性地寻找问题,并且定位问题更准确。(2)黑盒测试可以证明产品是否达到用户要求的功能,符合用户的工作要求。(3)能重复执行相同的动作,测试工作中最枯燥的部分可交由机器完成。(1)需要充分了解产品用到的技术,测试人员需要具有较多经验。(2)在测试过程中很多是手工测试操作。(3)测试人员要负责大量文档、报表的编制和整理工作。第七页,共九十九页,编辑于2023年,星期五4.1.2黑盒测试与白盒测试的比较2检查测试的主要内容3静态测试方法4动态测试方法1已知产品的因素第八页,共九十九页,编辑于2023年,星期五● 黑盒测试:已知产品的功能设计规格,可以通过测试证明每种实现的功能是否符合要求。● 白盒测试:已知产品的内部工作结构,可以通过测试证明每种内部操作是否符合设计规格要求,以及所有内部成分是否经过检查。1已知产品的因素第九页,共九十九页,编辑于2023年,星期五黑盒测试检查的内容如下:● 是否有不正确或遗漏的功能?● 在接口上,输入是否能正确地接受?能否输出正确的结果?● 是否有数据结构错误或外部信息访问错误?● 是否有初始化或终止性错误?白盒测试检查的内容如下:● 对程序模块的所有独立的执行路径至少测试一遍。● 对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一遍。● 在循环的边界和运行的界限内执行循环体。2检查测试的主要内容第十页,共九十九页,编辑于2023年,星期五● 静态黑盒测试方法:文档测试,特别是产品需求文档、用户手册、帮助文件等的审查。● 静态白盒测试方法:走查、复审、评审程序源代码、数据字典、系统设计文档、环境设置、软件配置项等。3静态测试方法第十一页,共九十九页,编辑于2023年,星期五● 动态黑盒测试方法:通过数据输入并运行程序来检验输出结果,如功能测试、验收测试和一些性能测试等。● 动态白盒测试方法:通过驱动程序来调用,如进行单元测试、集成测试和部分性能测试等。4动态测试方法第十二页,共九十九页,编辑于2023年,星期五4.2黑盒测试的方法第十三页,共九十九页,编辑于2023年,星期五采用黑盒技术设计测试用例的方法等价类划分法边界值分析法因果图法功能图分析法场景设计法错误推断法决策表。正交试验法第十四页,共九十九页,编辑于2023年,星期五

4.2.1等价类划分法1.等价类划分方法简述在使用等价类划分方法进行测试时,首先应在分析需求规格说明的基础上划分等价类,再根据等价类设计出测试用例。等价类:指输入域的某个互不相交的子集,所有等价类的集便是整个输入域。等价类中的元素有一些共同的特点:如果用等价类中的一个元素作为测试数据进行测试不能发现程序中的故障,那么使用集合中的其他元素进行测试也不可能发现故障。第十五页,共九十九页,编辑于2023年,星期五2.划分等价类(1)有效等价类有效等价类是指符合程序规格说明书,有意义的、合理的输入数据所构成的集合。利用有效等价类,可以检验程序是否实现了规格说明预先规定的功能和性能。在具体问题中,有效等价类可以是一个,也可以是多个。(2)无效等价类无效等价类是指不符合程序规格说明书,不合理或无意义的输入数据所构成的集合。利用无效等价类,可以检查软件功能和性能的实现是否有不符合规格说明要求的地方。对于具体的问题,无效等价类至少应有一个,也可能有多个。第十六页,共九十九页,编辑于2023年,星期五3.常用的等价类划分原则(1)按区间划分:如果规格说明规定了输入条件的取值范围或值的数量,则可以确定一个有效等价类和两个无效等价类。(2)按数值划分:如果规格说明规定了一组输入数据,且程序要对每一个输入值分别进行处理,则可为每一个输入值确立一个有效等价类,针对这组值确立一个无效等价类,它是所有不允许输入值的集合。(3)按数值集合划分:如果规格说明规定了输入值的集合,则可确定一个有效等价类和一个无效等价类(该集合有效值之外)。(4)按限制条件或规则划分:如果规格说明规定了输入数据必须遵守的规则或限制条件,则可以确立一个有效等价类(符号规则)和若干个无效等价类(从不同角度违反规则)。(5)细分等价类:等价类中的各个元素在程序中的处理若不相同,则可将此等价类进一步划分成更小的等价类。第十七页,共九十九页,编辑于2023年,星期五在确立了等价类之后,可按4-1的形式列出所有划分出的等价类表。同样,也可按照输出条件,将输出域划分为若干个等价类。输入条件有效等价类无效等价类第十八页,共九十九页,编辑于2023年,星期五4.划分等价类的要求●测试完备合理,避免冗余。●划分输入条件、有效等价类和无效等价类时最重要的是将集合划分为互不相交的一组子集。●整个集合完备。●子集互不相交,保证一种形式的无冗余性。●同一类中标识(选择)一个测试用例,在同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”。第十九页,共九十九页,编辑于2023年,星期五5.等价类划分测试用例设计(1)为每个等价类规定一个唯一的编号。(2)设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到测试用例覆盖了所有的有效等价类。(3)设计一个新的测试用例,使其覆盖并且只覆盖一个还没有被覆盖的无效等价类。重复这一步,直至测试用例覆盖了所有的无效等价类。具体步骤第二十页,共九十九页,编辑于2023年,星期五6.测试用例等价类表的建立【例1】三角形问题的等价类测试。输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三条边类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能够成一个三角形)。假定3个输入a、b和c在1~100之间取值,三角形问题可以更详细地描述为:输入3个整数a、b和c分别作为三角形的三条边,要求a、b和c必须满足以下条件。Con1.1≤a≤100 Con2.1≤b≤100 Con3.1≤c≤100 Con4.a<b+c Con5.b<a+c Con6.c<a+b

程序输出是由这3条边构成的三角形类型:等边三角形、等腰三角形、一般三角形或非三角形。如果输入值不满足前3个条件中的任何一个,程序给出相应的提示信息,如“请输入1~100之间的整数”等。如果a、b和c满足Con1、Con2和Con3,则输出下列4种情况之一。

①如果不满足条件Con4、Con5和Con6中的一个,则程序输出为“非三角形”。

②如果3条边相等,则程序输出为“等边三角形”。

③如果恰好有两条边相等,则程序输出为“等腰三角形”。

④如果3条边都不相等,则程序输出为“一般三角形”。

显然,这4种情况相互排斥。第二十一页,共九十九页,编辑于2023年,星期五仔细分析三角形问题,我们可得出其等价类表,如表4-2所示。根据等价类表,可设计覆盖上述等价类的测试用例。测试用例Test=(3,4,5)便可覆盖有效等价类1~3。覆盖无效等价类的测试用例如表4-3所示。第二十二页,共九十九页,编辑于2023年,星期五 在大多数情况下从被测程序的输入域划分等价类,但也可以从输出域定义等价类。事实上,这对于三角形问题是最简单的划分方法。三角形问题有4种可能输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息从输出(值域)划分等价类为。 ①R1={<a,b,c>;边卫a,b,c的等边三角形} ②R2={<a,b,c>;边卫a,b,c的等腰三角形} ③R3={<a,b,c>;边卫a,b,c的一般三角形} ④R4={<a,b,c>;边卫a,b,c不能形成三角形} 4个等价类测试用例如表4-4所示。第二十三页,共九十九页,编辑于2023年,星期五【例2】保险公司人寿保险保费计算程序的等价类测试。 某保险公司人寿保险的保费计算方法为:保费

=

投保额

×

保险费率其中,保险费率根据年龄、性别、婚姻状况和抚养人数的不同而有所不同,体现在不同年龄、性别、婚姻状况和抚养人数,点数设定不同。10点以上保险费率为0.6%,10点及以下保险费率为0.1%;而有点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表4-5所示。分析程序规格说明中给出的和隐含的对输入数据的要求,可以得出下述规律。①年龄:一位或两位非零整数,取值的有效范围为1~99。②性别:一位英文字符,只能取“M”或“F”值。③婚姻:字符、只能取“已婚”或“未婚”。④抚养人数:空白或字符“无”或1~99之间的一位非零整数。⑤点数:一位或两位非零整数,取值范围为8~19。第二十四页,共九十九页,编辑于2023年,星期五

通过对规格说明输入数据的取值分析,可以得出保险公司人寿保险计算程序的等价类如表4-6。

根据表中的等价类,假设保险额为1万元,保险公司人寿保险保费计算程序的等价类测试用例如表4-7所示。第二十五页,共九十九页,编辑于2023年,星期五【例3】某学籍管理系统中有增加学生信息的功能,该功能的说明如下。

一条完整的学生信息包括学生的学号、姓名、语文成绩、数学成绩、英语成绩、物理成绩和化学成绩。 学号是学生信息的关键字,不能重复。每个班级的学号范围和学号的数据要求见数据字典。增加重复学号和非数据字典要求的学号时,系统应给出提示。增加信息时,学号是必须输入的,否则,系统应给出提示。表4-8是数据字典中关于学号的要求。首先,列出所有等价类,如表4-9所示。第二十六页,共九十九页,编辑于2023年,星期五选择测试用例,覆盖所有的有效等价类,如表4-10所示。选择测试用例,覆盖所有的无效等价类,如表4-11所示。第二十七页,共九十九页,编辑于2023年,星期五标等价类测试存在两个问题题一.规格说明往往没有定义无效测试用例的期望输出应该是什么样的。二.是强类型语言没有必要考虑无效输入。第二十八页,共九十九页,编辑于2023年,星期五4.2.2

边界值分析法●边界值分析方法简述●边界条件●常见的边界值●边界值分析测试●健壮性边界值测试●测试用例边界值方法的测试运用第二十九页,共九十九页,编辑于2023年,星期五边界值分析法用于列出单元功能、输入、状态及控制的合法边界值和非法边界值,对数据进行测试,检查用户输入的信息、返回结果以及中间计算结果是否正确,补充等价划分的测试用例设计技术。边界值分析方法简述第三十页,共九十九页,编辑于2023年,星期五边界是一些特殊情况。边界条件就是软件计划的操作界限所在边缘条件。一些可能与边界有关的数据类型有:数值、速度、字符、地址、位置、尺寸和数量等。考虑这些数据类型的下述特征:第一个和最后一个、最小值和最大值、开始/完成、超过和在内、空/满、最短/最长、最慢和最快、最早和最迟、最高/最低、相邻/最远等。输入等价类和输出等价类的边界也是要着重测试的边界情况。所以,从等价类中选取测试数据时应该将等于或刚刚小于等价类边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。边界条件第三十一页,共九十九页,编辑于2023年,星期五边界条件确定边界情况针对问题的输入域、输出域边界,耐心细致地逐个进行考虑找到一些不明显的、有趣的或可能产生软件故障的边界仔细分析第三十二页,共九十九页,编辑于2023年,星期五 屏幕上光标在最左上、最右下位置。 报表的第一行和最后一行。 数组元素的第一个和最后一个。 循环的第0次、第1次、第2次……最后一次。测试所包含的边界检验有几种类型:数字、字符、位置、大小、方位、尺寸、空间等。常见的边界值第三十三页,共九十九页,编辑于2023年,星期五边界值分析测试第三十四页,共九十九页,编辑于2023年,星期五为便于理解,这里讨论一个有两个变量x1和x2的程序P。假设输入变量和在下列范围内取值:a≤x1≤b,c≤x2≤d边界值分析利用输入变量的最小值(min)、稍大于最小值(min+)、域内任意值(nom)、稍小于最大值(max-)和最大值(max)来设计测试用例。边界值分析测试第三十五页,共九十九页,编辑于2023年,星期五通过使所有变量取正常值,只使一个变量分别取最小值、稍大于最小值、稍小于最大值和最大值来进行测试,那么,有两个输入变量的程序P的边界值分析测试用例共有9个,如图所示。边界值分析测试第三十六页,共九十九页,编辑于2023年,星期五两个输入条件的最简单基本边界值分析边界值分析测试第三十七页,共九十九页,编辑于2023年,星期五一个含有n个变量的程序,保留其中一个变量,让其余变量取正常值,这个被保留的变量依次取为min、min+、nom、max−和max。对每个变量都重复进行。那么,对于一个n变量的程序,边界值分析测试会产生4n+1个测试用例。不管采用什么语言,变量的min、min+、nom、max−、max值根据语境可以很清楚地确定。如果没有显式地给出边界,例如三角形问题,可以人为设定一个边界。显然,边长的下界是1(边长为负没有什么意义)。但如何来确定上界呢?在默认情况下,可以取最大可表示的整型值(某些语言里称为MAXINT),或者规定一个数作为上界,如100或1000。边界值分析测试第三十八页,共九十九页,编辑于2023年,星期五健壮性边界值测试边界值分析的大部分讨论都可直接用于健壮性测试。健壮性测试最有意义的部分不是输入,而是输出,观察例外情况如何处理。第三十九页,共九十九页,编辑于2023年,星期五测试用例边界值方法的测试运用第四十页,共九十九页,编辑于2023年,星期五测试用例边界值方法的测试运用第四十一页,共九十九页,编辑于2023年,星期五在等价类划分基础上进行边界值分析测试,着重测试的是等价类的边界,在表加法器等价类基础上,进行边界值测试,每次使一个变量取边界值,其他变量取正常值,可设计出如表4-14所示的边界测试用例。测试用例边界值方法的测试运用第四十二页,共九十九页,编辑于2023年,星期五测试用例边界值方法的测试运用第四十三页,共九十九页,编辑于2023年,星期五4.2.3

因果图法●因果图方法简述●因果图的关系符号和约束●因果图法测试用例的设计步骤●因果图法的测试用例第四十四页,共九十九页,编辑于2023年,星期五因果图法是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的方法,利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。适合于描述多种条件的组合,相应产生多个动作的形式来设计测试用例。因果图法最终生成的是判定表,适合于检查程序输入条件的各种组合情况。因果图方法简述第四十五页,共九十九页,编辑于2023年,星期五因果图的关系符号和约束恒等非与或第四十六页,共九十九页,编辑于2023年,星期五因果图的关系符号和约束互斥包含唯一要求强制第四十七页,共九十九页,编辑于2023年,星期五因果图法测试用例的设计步骤第四十八页,共九十九页,编辑于2023年,星期五【例5】某软件规格说明书规定:输入的第一个字符必须是#或*,第二个字符必须使一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。测试设计步骤如下:(1)分析软件规格说明书,找出原因和结果。(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。(3)将因果图转换成决策表。(4)根据决策表设计测试用例的输入数据和预期输出。因果图法的测试用例第四十九页,共九十九页,编辑于2023年,星期五4.2.4

功能图分析法●功能图分析法简述●测试用例的设计●功能图分析法小结第五十页,共九十九页,编辑于2023年,星期五功能图分析法简述用于表示输入数据序列以及相应的输出数据,在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态用于表示在状态中输入条件和输出条件之间的对应关系,逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。第五十一页,共九十九页,编辑于2023年,星期五功能图分析法简述第五十二页,共九十九页,编辑于2023年,星期五功能图法是一种黑盒与白盒混合的测试用例设计方法,该法主要从动态说明的角度来设计测试用例。该法由状态迁移图和逻辑功能表组成,前者是软件的动态说明,后者是静态说明,测试用例的设计主要是对前者进行白盒基路径测试,同时进行黑盒决策表测试作为补充。功能图法的主要难点是因状态分解过多而造成路径爆炸,给测试用例的设计带来较大难度。值得注意的是,该法虽然主要从路径执行来展开测试用例设计,但其输入多涉及系统硬件,因此适于在系统测试中使用。功能图分析法简述功能图分析法小结第五十三页,共九十九页,编辑于2023年,星期五4.2.5

场景设计法●场景法的简述●一般步骤●测试过程第五十四页,共九十九页,编辑于2023年,星期五场景法的简述基本流备选流第五十五页,共九十九页,编辑于2023年,星期五一般步骤第五十六页,共九十九页,编辑于2023年,星期五测试过程如图所示基本流和备选流的解释基本流是从系统某个初始态开始,经一系列状态后到达状态的过程中最主要的一个业务流程。备选流是以基本流为基础,在经过的每个判定节点处满足不同的触发条件而导致的其他事件流。测试过程第五十七页,共九十九页,编辑于2023年,星期五测试过程

测试过程⑴起始节点从基本流的某个判定节点开始。⑵起始节点从其他备选流的某个判定节点开始。⑶终止节点是基本流上的某个状态。终止节点是其他的系统终止状态。备选流的起始和终止节点的几种形式第五十八页,共九十九页,编辑于2023年,星期五测试过程第五十九页,共九十九页,编辑于2023年,星期五测试过程第六十页,共九十九页,编辑于2023年,星期五测试用例【例6】对于ATM系统的取款用例,使用场景法设计测试用例。(1)分析基本流和备选流基本流:正常的取款。备选流:考察几种特定情况,包括ATM内没有现金;ATM内现金不足;密码有误(3次机会);账户不存在或账户类型有误;账户余额不足。(2)分析各场景场景1—成功的提款—基本流场景2—ATM内没有现金—基本流备选流场景3—ATM内现金不足—基本流备选流场景4—PIN有误(第一次错)—基本流备选流场景5—PIN有误(第二次错)—基本流备选流场景6—PIN有误(第三次错)—基本流备选流场景7—账户不存在/账户类型有误—基本流备选流场景8—账户余额不足—基本流备选流第六十一页,共九十九页,编辑于2023年,星期五(3)构造测试用例设计矩阵v表示有效,i表示无效,n表示无关。如表4-18所示。测试用例第六十二页,共九十九页,编辑于2023年,星期五(4)设计测试用例实施矩阵测试用例实施矩阵如表4-19所示。测试用例第六十三页,共九十九页,编辑于2023年,星期五【例】有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下。①若投入5角钱或1元钱的硬币,按下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只按下一种饮料的按钮。)②如投入5角的硬币,按下按钮后,总有饮料送出。③若售货机没有零钱找,则【零钱找完】的红灯不会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。④若有零钱找,则【零钱找完】的红灯不会亮,若投入2元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。测试用例第六十四页,共九十九页,编辑于2023年,星期五(1)分析基本流和备选流基本流:投入5角钱,按下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。备选流:①备选流1:【零钱找完】的红灯没亮,若投入1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。②备选流2:【零钱找完】的红灯亮,这时投入1元硬币并按下按钮后,饮料不送出来且1元硬币也退出来。(2)分析场景场景1:基本流场景2:备选流1场景3:备选流2测试用例第六十五页,共九十九页,编辑于2023年,星期五(3)设计测试用例测试用例如表4-20所示。测试用例第六十六页,共九十九页,编辑于2023年,星期五4.2.6错误推测法错误推测法是基于测试人员的经验和直觉来推测系统中可能存在的各种缺陷,有针对性地设计测试用例的方法。这里的经验和直觉来自测试人员对被测软件系统特性的了解和以往在测试工作中的总结。第六十七页,共九十九页,编辑于2023年,星期五 错误推测方法的基本思想是:利用直觉和经验猜测出出错的可能类型,列举出程序中所有可能的错误和容易发生错误的情况,基本思想是列举出可能犯的错误或错误易发情况的清单,然后依据清单来编写测试用例,并且在阅读规格说明时联系程序员可能做的假设来确定测试用例。这种方法在很大程度上是凭经验进行的,即凭借人们对过去所做测试工作结果的分析,对所揭示的缺陷的规律性做直觉的推测来发现缺陷。第六十八页,共九十九页,编辑于2023年,星期五一般来说,可以从以下方面来进行错误推测。● 软件产品以前版本中存在的问题。● 受到语言、操作系统、浏览器等环境的限制而可能带来的问题。● 由模块间关联所联想到的测试,由于软件缺陷修复可能带来的问题。第六十九页,共九十九页,编辑于2023年,星期五LOGO单击此处添加标题文字第七十页,共九十九页,编辑于2023年,星期五 决策表并不是因果图的一个辅助工具,在一个程序中,如果输入输出比较多,输入之间和输出之间相互制约的条件比较多,在这种情况下应用决策表很合适,它可以很清楚地表达它们之间的各种复杂关系。从20世纪60年代初以来,决策表已被用来表示和分析复杂的逻辑关系,描述不同条件集合下采取行动的若干组合情况。决策表法简述:决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并可避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。第七十一页,共九十九页,编辑于2023年,星期五决策表通常由条件桩、条件项、动作桩和动作项4个部分组成,如图4-14所示● 条件桩:列出了问题的所有条件。通常认为列出的条件的次序无关紧要。● 动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。● 条件项:列出针对它在列条件的取值。● 动作项:列出在条件项的各种取值情况下应该采取的动作。图4-14决策表的组成第七十二页,共九十九页,编辑于2023年,星期五 规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。在决策表中贯穿条件项和动作项的一列就是一条规则,有n个条件,每个条件有两个取值(0、1),故有2n条规则。显然,决策表中列出多少组条件取值,也就有多少条规则。 动作项和条件项紧密相关,指出在条件项的各组取值情况下应采取的动作。我们把任何一个条件组合的特定取值及其相应要执行的操作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则。显然,决策表中列出多少组条件取值,就有多少条规则。 除了某些问题对条件的先后次序有特定的要求外,通常决策表中列出的条件其先后次序无关紧要,动作桩给出操作的排列顺序一般也没有什么约束,但为了便于阅读也可令其按适当的顺序排列。第七十三页,共九十九页,编辑于2023年,星期五2.决策表的构造及化简

构造决策表可采用以下5个步骤。双击添加标题文字1234列出所有的条件桩和动作桩。单击此处添加段落文字内容单击此处添加段落文字内容单击此处添加段落文字内容双击添加标题文字2345确定规则的个数。填入条件项。填入动作项,得到初始决策表。简化决策表,合并相似规则。第七十四页,共九十九页,编辑于2023年,星期五 对于n个条件的决策表,相应有2n规则(每个条件分别取真、假值),当n较大时,决策表很繁琐。实际使用决策表时,常常先将它简化。决策表的简化以合并相似规则为目标,即若表中有两条或两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。第七十五页,共九十九页,编辑于2023年,星期五3.依据决策表生成测试用例 依据决策表生成测试用例比较简单。在简化或最后的决策表给出之后,只要选择适当的输入,使决策表每一列的输入条件值得到满足即可生成测试用例。第七十六页,共九十九页,编辑于2023年,星期五4.决策表法的测试运用 决策表最突出的优点是,它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,同时可以避免遗漏。因此利用决策表可以设计出完整的测试用例集合。使用决策表设计测试用例,可以把条件解释为输入,把动作解释为输出。第七十七页,共九十九页,编辑于2023年,星期五下面以NextDate函数为例,讨论决策表测试用例的设计。 【例7】NextDate函数输入month(月份)、day(日期)和year(年),输出为输入后一天的日期。例如,如果输入为:1964年8月16日,则输出为1964年8月17日。要求输入变量month、day和year都是整数值,并且满足以下条件。 Con:1≤month≤12 Con:1≤day≤31 Con:1900≤year≤2050第七十八页,共九十九页,编辑于2023年,星期五 在NextDate函数中有两种复杂性来源:一是所讨论输入域的复杂性,二是确定闰年的规则。一年有365.2422天,因此,闰年被用来解决“额外天”的问题。 NextDate函数的三个变量之间存在一定的逻辑依赖关系,由于等价类划分和边界值分析测试都假设变量是独立的,如果采用上述两种方法设计测试用例,那么这些依赖关系在机械地选取输入值时可能会丢失。而采用决策表法则可以通过使用“不可能动作”的概念来表示不可能的组合,强调这种依赖关系。第七十九页,共九十九页,编辑于2023年,星期五为了获得下一个日期,NextDate函数需要执行的操作只有如下5种。 (1)day变量值加1; (2)day变量值复位为1; (3)month变量值为1; (4)month变量值复位为1;(5)year变量值加1。第八十页,共九十九页,编辑于2023年,星期五如果将注意力集中到NextDate函数的日和月问题上,并仔细研究动作桩,那么可以在以下的等价类集合上建立决策表。 M1:{month:month有30天}; M2:{month:month有31天,12月除外}; M3:{month:month有12月}; M4:{month:month都是2月}; D1:{day:1≤day≤27}; D2:{day:day=28}; D3:{day:day=29}; D4:{day:day=30}; D5:{day:day=31}; Y1:{year:year是闰年};Y2:{year:year不是闰年};第八十一页,共九十九页,编辑于2023年,星期五建立NextDate函数的决策表如表4-25所示,共有22条规则。其中规则1~5处理有30天的月份,规则6~10和11~15处理有31天的月份(规则6~10处理12月之外的月份,规则11~15处理12月),不可能规则也在决策表中列出,比如规则5(在有30天的月份中考虑31日)。最后7条规则关注的是2月和闰年。第八十二页,共九十九页,编辑于2023年,星期五第八十三页,共九十九页,编辑于2023年,星期五 可进一步简化这22个测试用例。如果决策表中两条规则的动作项相同,则可能有一个条件能够把两条件则用不关心条件合并。例如,规则1、2和3合并。类似地,有31天的月份的day类D1、D2和D3,并且它们的动作项都是day加1,则可以将规则1、2和3合并。类似地,有31天的月份的day类D1、D2、D3和D4也可以合并,2月的D4和D5也可以合并。简化后的决策表如表4-26所示。第八十四页,共九十九页,编辑于2023年,星期五

根据简化后的决策表,可设计测试用例如表4-27所示。第八十五页,共九十九页,编辑于2023年,星期五4.2.8正交试验设计法 正交试验方法是依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的、有代表性点(例),从而合理地安排实验(测试)的一种科学实验设计方法。 正交试验方法是使用已经创建的正交表格来安排试验并运行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率。第八十六页,共九十九页,编辑于2023年,星期五

利用正交试验设计测试用例的步骤:● 提取功能说明,构造因子状态表:把影响试验指标的条件称为因子,而影响试验因子的条件称为因子的状态,利用正交试验方法来合计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把它们当做因子,而把各个因子的取值当做状态,对软件需求规格说明中的功能要求进行划分,把整体的概要性的功能要求进行层层分解与展开,分解成具体的具有相对独立性的基本的功能要求,这样就可以把被测试软件中所有的因子都确定下来,并为确定各因子的权值提供参考依据,确定因子与状态是设计测试用例的关键,因此要求尽可能全面。正确地确定取值,以确保测试用例的设计完整、有效。● 加权筛选,生成因素分析表:对因子与状态的选择可按其重要程度分别加权,可根据各个因子及状态的作用大小、出现频率的大小、测试的需要确定权值的大小。● 利用正交表构造测试数据集。第八十七页,共九十九页,编辑于2023年,星期五正交试验设计法的测试应用 【例8】某企业信息查询软件的查询功能有3个条件,可以根据行业、城市路名、企业特征进行查询。 (1)确定因素:行业、城市路名、企业特性。 (2)每个因素有两个水平。 行业:填、不填 城市路名:填、不填 企业特征:填、不填 (3)选择合适的有3列的正交表,如表4-28所示。第八十八页,共九十九页,编辑于2023年,星期五 (4)把变量的值映射到正交表中,0表示不填,1表示填,如表4-29所示。第八十九页,共九十九页,编辑于2023年,星期五 (5)根据经验补充第五个测试用例,测试用例表如表4-30所示。3种查询条件按照组合共有8种情况,一般需设计8个测试用例,而利用正交表共选择了5个测试用例,这样就减少了测试用例的个数。第九十页,共九十九页,编辑于2023年,星期五4.3黑盒测试的依据和流程第九十一页,共九十九页,编辑于2023年,星期五4.3.1黑盒测试的依据黑盒测试也称为功能测试、行为测试或数据驱动测试,在测试时,把程序看作一个不能打开的黑盒,测试人员完全不考虑程序内部的逻辑结构和内部特性,只一句程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此,黑盒测试是基本测试。例如:我们用C#编写“计算器”应用程序,我们如果输入7并按“sqrt”键,就会得到结果为2.645751311。使用黑盒子测试方式,不管“求平方根”要经历多少复杂运算,都只关心它的运行结果。第九十二页,共九十九页,编辑于2023年,星期五“黑盒”表示看不见黑子里头的东西,意味着黑盒测试不关心软件内部设计和程序实现,只关心外部表现,即通过观察输入域输出即可知道测试的结论。任何人都可以依据软件需求来执行黑盒测试。黑盒测试注重于测试软件的功能性需求,着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试,多应用与测试过程的后期。它是一种更加软件需求,设计文档,模拟客户场景随系统进行的实际测试。这种测试技术涵盖了测试的方方面面,它主要是为发现以下几类错误:是否出现功能错误或遗漏、在接口上能否进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论