第4章 黑盒测试第2节等价类测试_第1页
第4章 黑盒测试第2节等价类测试_第2页
第4章 黑盒测试第2节等价类测试_第3页
第4章 黑盒测试第2节等价类测试_第4页
第4章 黑盒测试第2节等价类测试_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、Software Testing第4章 黑 盒 测 试 Software Testing黑盒测试黑盒测试w软件测试方法w边界值测试w等价类测试等价类测试w基于判定表的测试w因果图Software Testingw等价类w等价类测试类型w案例主要内容主要内容Software Testing问题引入问题引入w测试的矛盾测试的矛盾为保证软件产品的质量,我们需要进行完备(彻底)的测试;但这是不现实的,因为:输入量太大输出结果太多软件实现途径太多Software Testing问题引入问题引入w测试的矛盾测试的矛盾从经济的角度来说,我们希望测试没有冗余;一个好的测试用例在于能发现至今未发现的错误;一个成

2、功的测试是发现了至今未发现的错误的测试。Software Testingw等价类方法可令测试事半功倍。等价类方法可令测试事半功倍。w目的:为了在有限的测试资源的情况下,用少量有代表性的数据得到比较好的测试效果。w方法:把所有输入数据划分为若干部分,然后从每个子集选取少数具有代表性的数据作为测试用例。问题引入问题引入 实现一个对所有实数进行开平方运算( y = sqrt(x) )的程序的测试。提示:提示:逐一测试,采用穷举法!逐一测试,采用穷举法!局部代表整体局部代表整体!正实数正实数:+1.4444+1.4444负实数负实数:-2.345-2.3450 0等价类等价类划分划分Software

3、Testing4.2.1 等价类等价类划分等价类测试等价类的分类划分等价类的方法用等价类设计测试用例Software Testing1. 划划 分分w划分划分是指互不相交的一组子集,这些子集的并是整个集合。划分的定义给定集合B,以及B的一组子集A1、A2、An,这些子集是B的一个划分,当且仅当: A1A2AnB,且 ij AiAjSoftware Testing划分在软件测试中的作用划分在软件测试中的作用w划分对于测试的作用:完备性无冗余性w边界值分析方法的固有弱点是漏洞和冗余性Software Testing2. 等价类等价类测试测试w等价类定义等价类是输入域的某个子集合子集合,而所有的等价

4、类的并集是整个输入域。在子集合中,各个输入数据对于揭露程序中的错误是等效等效的。w等价类的特点完备性无冗余性等价性Software Testingw等价类测试的假设:测试某等价类的代表值,就等效于对这个等价类中其他值的测试。w等价类测试的思想:把全部的输入数据划分成若干个等价类划分成若干个等价类,在每在每一个等价类中取一个数据一个等价类中取一个数据来进行测试。2. 等价类测试等价类测试输入域输入域划分划分1234少数、少数、代表性代表性子子集集1子子集集3子子集集4子子集集2等价类等价类Software Testing3. 等价类的分类等价类的分类w有效等价类有效等价类对于程序的规格说明来说,

5、是合理的、有意义的输入数据所构成的集合;w无效等价类无效等价类对于程序的规格说明来说,是不合理的、没有意义的输入数据所构成的集合;有效等价类有效等价类无效等价类无效等价类有意义的、有意义的、合理的输入合理的输入数据所组成数据所组成的集合的集合无意义的、无意义的、不合理的输不合理的输入数据所构入数据所构成的集合成的集合等价类等价类 一个有效等价类:为非空密码; 一个无效等价类为:空密码 两个有效等价类:男,女 一个无效等价类:其他值Software Testing4. 4. 划分等价类的方法划分等价类的方法w(1)如果输入条件规定了取值范围或值的个数就可确定一个有效等价类和两个无效等价类。例如:

6、输入学生成绩,范围是0到100Software Testingw(2)规定输入数据的一组值(n个值),并且程序要对每一个输入值分别进行处理,则可以确定n个有效等价类和一个无效等价类。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一。4. 4. 划分等价类的方法划分等价类的方法Software Testingw(3) 输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。例如:“标识符以字母开头”4. 4. 划分等价类的方法划分等价类的方法Software Testingw(4) 如果输入条件是一个布尔量布尔量,则可以确立一个有效等价类和一个无效

7、等价类。例如:在登陆网站时使用验证码。4. 4. 划分等价类的方法划分等价类的方法Software Testingw(5 5)如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。例如:程序用于判断几何图形的形状。4. 4. 划分等价类的方法划分等价类的方法Software Testing5. 5. 用等价类设计测试用例用等价类设计测试用例w(1)(1)划分等价类,形成等价类表w(2)(2)设计一新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止;w(3)(3)设计一新测试用例,使其只覆盖一个无效等价类,重复这一

8、步骤直到所有无效等价类均被覆盖。(1)根据等价类划分原则,确定等价类,列出等价类表。 (2)根据等价类,确定测试用例。少而全、多而专少而全、多而专 编号编号有效等价类有效等价类无效等价类无效等价类 为每一个等价类规定一个唯一的编号。 设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。“少而全少而全”“多而专多而专”Software Testing4.4.2 等价类测试的分类等价类测试的分类w单缺陷与多缺陷假设产生弱等价类与强等价类测试之分;w是否进行无效数据的处理产生健壮与一般等价类测试之分。Software Testing等

9、价类测试的分类:等价类测试的分类:弱一般等价类测试强一般等价类测试弱健壮等价类测试强健壮等价类测试Software Testingw讨论对象一个具有两个自变量x1和x2的函数FF实现为一个程序且输入变量x1和x2的边界以及边界内的区间a x1 d,区间为a, b),b, c),c, de x2 g,区间为e, f), f, gw讨论对象(续)Software Testing1. 弱一般等价类测试弱一般等价类测试w弱一般等价类测试的假设:“单缺陷”假设失效极少是由两个或多个缺陷的同时发生引起的w测试用例设计:选取的测试用例覆盖所有的有效等价类。 弱一般等价类测试用例弱一般等价类测试用例Softw

10、are Testing2. 强一般等价类测试强一般等价类测试w基于多缺陷假设;w测试用例设计:将每个变量的有效等价类做笛卡尔积,设计测试用例覆盖笛卡尔积的每个元素。 一个变量个数为n的函数的强一般等价类测试会产生多少个测试用例?思考:思考:强一般等价类测试用例Software Testing3. 弱健壮等价类测试弱健壮等价类测试w弱:基于单缺陷假设弱:基于单缺陷假设w健壮:考虑无效值健壮:考虑无效值w测试用例设计:对有效输入,使用每个有效等价类的一个值对无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的弱健壮等价类测试用例Software Testing4. 4. 强健壮等价类测试强

11、健壮等价类测试w强健壮等价类测试:基于多缺陷假设,从所有等价类的笛卡尔积的每一个元素中获得测试用例强:多缺陷假设强:多缺陷假设健壮:考虑无效值健壮:考虑无效值强健壮等价类测试用例 一个变量个数为n的函数的强健壮等价类测试会产生多少个测试用例?思考:思考:Software Testing4.2.3 案例案例w三角形三角形问题问题程序规定:“输入三个正整数a、b、c,分别作为三角形的三条边长。通过程序判定是否能构成三角形。如果能构成三角形,进一步判断三角形的类型。当此三角形为一般三角形、等腰三角形及等边三角形时,分别作不同的操作。”用等价类划分方法为该程序进行测试用例设计。w 正整数。 三个数。

12、构成一般三角形。 构成等腰三角形。 构成等边三角形。 不能构成三角形。 (1) 分析题目中给出的条件和隐含的输入要求,分析题目中给出的条件和隐含的输入要求,输入条件如下:输入条件如下:Software Testing(2) 根据输入条件的要求划分等价类,列出等根据输入条件的要求划分等价类,列出等价类表并编号,如表价类表并编号,如表4-2-4所示。所示。 输入输入条件条件有效等有效等价类价类编编号号无效等价类无效等价类编号编号三三个个正正整整数数正整数正整数1 1一边为非正一边为非正整数整数a a为非正整数为非正整数1010b b为非正整数为非正整数1111c c为非正整数为非正整数1212两边

13、为非正两边为非正整数整数a a,b b为非正整数为非正整数1313a a,c c为非正整数为非正整数1414b b,c c为非正整数为非正整数1515三边均为非正整数三边均为非正整数1616三个数三个数2 2只输入一个只输入一个数数只给只给a a1717只给只给b b1818只给只给c c1919只输入两个只输入两个数数只给只给a a,b b2020只给只给a a,c c2121只给只给b b,c c2222未输入数未输入数2323三角形的等价类输入条件输入条件有效等价类有效等价类编号编号无效等价类无效等价类编号编号构成一般三构成一般三角形角形a + b c,且且abc3a + b b,且且a

14、bc4a + c a,且且abc5b + c a28b + c = a29构成等腰三构成等腰三角形角形a = b,a c,且两边之和大,且两边之和大于第三边于第三边6a = c,a b,且两边之和大,且两边之和大于第三边于第三边7b = c,a b,且两边之和大,且两边之和大于第三边于第三边8构成等边三构成等边三角形角形a = b = c9三角形的等价类Software Testing(3) 设计测试用例,覆盖上表中的等价类,如设计测试用例,覆盖上表中的等价类,如表表4-2-5所示。所示。 Software Testing6 -5 6 6 提示:输入不符合要求 10 7 6 0 6 提示:输入

15、不符合要求 11 8 6 6 3.6 提示:输入不符合要求 12 9 0 -5 6 提示:输入不符合要求 13 10 5.6 6 -2 提示:输入不符合要求 14 11 6 0 3.5 提示:输入不符合要求 15 12 3.5 5.6 4.5 提示:输入不符合要求 16 13 6 提示:请输入数据 17 14 5 提示:请输入数据 18 15 5 提示:请输入数据 19 16 6 6 提示:请输入数据 20 17 6 4 提示:请输入数据 21 18 5 6 提示:请输入数据 22 19 提示:请输入数据 23 20 5 6 15 不能构成三角形 24 21 6 7 13 不能构成三角形 25

16、 22 4 10 5 不能构成三角形 26 23 6 10 4 不能构成三角形 27 24 5 6 15 不能构成三角形 28 25 7 8 15 不能构成三角形 29 课堂练习课堂练习w电话号码 某城市电话号码由三部分组成,分别是: 地区码 空白或4位数字; 前 缀为三位数字,但不能为“0”,“1”; 后 缀4位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。请用等价类方法进行测试,设计测试用例。Software Testing(1) 根据输入条件,划分出有效等价类和无效等价类,根据输入条件,划分出有效等价类和无效等价类,如表如表4-2-2所示。所示。 S

17、oftware Testing第一步第二步第三步1.形成等价类表2.每一等价类规定一个唯一的编号1.设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类;2.重复这一步骤,直到所有有效等价类均被测试用例所覆盖1.设计一新测试用例,使其只覆盖一个无效等价类2.重复这一步骤直到所有无效等价类均被覆盖;少而全少而全多而专多而专Software Testing等价类测试指导等价类测试指导方针方针w1. 等价类测试的弱形式不如对应的强形式的测试全面。w2. 如果实现语言是强类型,则没有必要使用健壮形式的测试。w3. 如果错误条件非常重要,则进行健壮形式的测试是合适的。Software Testingw

18、4. 如果输入数据以离散值区间和集合定义,则等价类测试是合适的。当然也适用于如果变量值越界系统就会出现故障的系统。w5. 通过结合边界值测试,等价类测试可得到加强。w6. 如果程序函数很复杂,则等价类测试是被指示的。在这种情况下,函数的复杂性可以帮助标识有用的等价类。Software Testingw7. 强等价类测试假设变量是独立的,相应的测试用例相乘会引起冗余问题。如果存在依赖关系,则常常会生成错误测试用例。w8. 在发现合适的等价关系之前,可能需要进行多次尝试。w9. 强和弱形式的等价类测试之间的差别,有助于区分累进测试和回归测试。Software Testing任务任务1任务任务2任务

19、任务3任务任务4任务任务5任务任务1v任务任务1 1:邮件地址的测试:邮件地址的测试(1 1)确定等价类,列出等价类表确定等价类,列出等价类表有效等价类:有效等价类: 字符长度大于字符长度大于6 6且小于且小于1818(1 1)字符长度等于字符长度等于6 6(2 2)字符长度等于字符长度等于1818(3 3)第一个字符必须为字母(第一个字符必须为字母(4 4)- -隐含隐含其他字符可以为字母、数字其他字符可以为字母、数字以及下划线的任意组合(以及下划线的任意组合(5 5)无效等价类:无效等价类:字符长度大于字符长度大于1818(6 6)长度小于长度小于6 6 (7 7)第一个字符为非字母第一个

20、字符为非字母(8 8)空格空格(9 9)标点符号标点符号(10)(10)运算符运算符(11)(11)其他可显示字符其他可显示字符(12)(12)S+na12(4),(5),(11)无效A1b2c39r_tr 18个字符(3),(4),(5)有效1namenaa(1),(5),(8)无效(2 2)确定测试用例。确定测试用例。测试输入执行条件预期输出z_san12(1),(4),(5)有效A1be.n12tr 19个字符(4),(5),(6)无效name(4),(5),(7)无效S name12(4),(5),(9)无效S?na12(4),(5),(10)无效z_na12(2),(4),(5)有效

21、S#na12(4),(5),(12)无效少而全少而全多而专多而专v程序有三个输入变量程序有三个输入变量mouthmouth、dayday、yearyear(均为整数,且满足:均为整数,且满足:1=mouth=121=mouth=12,1=day=311=day=31,1900=year=20501900=year=2050),分别),分别作为输入日期的月份、日、年份,通过程作为输入日期的月份、日、年份,通过程序可以输出日期在日历上隔一天(第三天序可以输出日期在日历上隔一天(第三天)的日期)的日期。v请请用等价类用等价类测试方法测试方法设计测试用例。设计测试用例。等价类等价类输入条输入条件件有效

22、等价类有效等价类编号编号无效等价类无效等价类编号编号month整数整数1浮点数浮点数101=month=122month1212day整数整数3浮点数浮点数13month为为1、3、5、7、8、10或或12时时1=day=314day3115month为为4、6、9、11时时1=day3016month为为2且且year为闰年为闰年时,时,1=day2917month为为2且且year不是闰不是闰年时,年时,1=day2818year整数整数8浮点数浮点数191990=year=20509year2050211) 1) 划划分分等等价价类类2) 2) 设设计计测测试试用用例例结合边界值分析法测

23、试用测试用例编号例编号输入数据输入数据预期结果预期结果覆盖等价类覆盖等价类monthdayyear11119901990-1-31、2、3、4、8、92113019911991-12-21、2、3、5、8、9322919961996-3-21、2、3、6、8、9422820502050-3-21、2、3、7、8、951.521995拒绝拒绝106051996拒绝拒绝11732301997拒绝拒绝12831.31905拒绝拒绝139501906拒绝拒绝拒绝拒绝16122302004拒绝拒绝拒5

24、拒绝拒绝19157211989拒绝拒绝20168222051拒绝拒绝21monthday yearNNDate1212月月小月小月二月二月大月大月本月外本月外输出输出本月内本月内输入输入monthdayyearM1: monthM1: month有有3030天天=4,6,9,11=4,6,9,11;M2: monthM2: month有有3131天,天,1212月月除外除外=1,3,5,7,8,10=1,3,5,7,8,10; M3: monthM3: month是是1212月月 ;M4: monthM4: month是是2 2月月 ;D1:day:1dayD1:day:1day2626;D2

25、: D2: day:dayday:day=27=27;D3: D3: day:dayday:day=28=28;D4: D4: day:dayday:day=29=29; D5: D5: day:dayday:day=30=30;D6: D6: day:dayday:day=31=31;Y1:Y1:year:yearyear:year是闰年是闰年 ;Y2: Y2: year:yearyear:year不是闰年不是闰年 1) 1) 划分等价类划分等价类月份的有效等价类:月份的有效等价类: M1=mouth=4,6,9,11M1=mouth=4,6,9,11M2=mouth=1,3,5,7,8,10M2=mouth=1,3,5,7,8,10M3=mouth=12M3=mouth=12M4=mouth=2M4=mouth=21) 1) 划分等价类划分等价类日期日期的有效等价类:的有效等价类:D1=1=day=26D1=1=day=26D2=day=27D2=day=27D3=day=28D3=day=28D4=day=29D4=day=29D5=d

温馨提示

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

评论

0/150

提交评论