L-第3章_黑盒测试用例设计方法_第1页
L-第3章_黑盒测试用例设计方法_第2页
L-第3章_黑盒测试用例设计方法_第3页
L-第3章_黑盒测试用例设计方法_第4页
L-第3章_黑盒测试用例设计方法_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

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

文档简介

1、1第三章第三章 黑盒测试用例设计方法黑盒测试用例设计方法 3-2本章内容本章内容p讨论常用的黑盒测试用例设计方法,包括讨论常用的黑盒测试用例设计方法,包括 n等价类划分等价类划分n边界值测试边界值测试n决策表决策表n错误猜测错误猜测n场景法场景法n正交实验法正交实验法n综合运用黑盒用例设计方法综合运用黑盒用例设计方法 3-3黑盒测试黑盒测试n把系统看成一个不透明的黑匣,在完全把系统看成一个不透明的黑匣,在完全不考虑系统内部结构不考虑系统内部结构和处理过程和处理过程的情况下,只关注在选择的的情况下,只关注在选择的输入输入和相应的执行条和相应的执行条件下所产生的件下所产生的输输出结果,验证系统是否

2、达到出结果,验证系统是否达到用户需求用户需求。n常用的黑盒测试技术包括常用的黑盒测试技术包括1.等价类划分等价类划分2.边界值测试边界值测试3.决策表决策表4.错误猜测错误猜测5.场景法场景法 3-4p如果你打算测试一个如果你打算测试一个计算器程序的功能,计算器程序的功能,你认为需要进行多少你认为需要进行多少次输入?次输入?不可能进行完全的测试不可能进行完全的测试p结论是不计其数结论是不计其数1.整型整型: 从从 1+1 到到 999999999999999999999999999999+ 9999999999999999999999999999992.小数小数:1.0+0.1,1.0+0.2

3、等等等等3.键盘上的任何一种组合键盘上的任何一种组合4.为乘法和除法运算重复上面的操作为乘法和除法运算重复上面的操作 3-5黑盒测试黑盒测试n通常运用一种测试用例设计方法不能获得理想的测试用例通常运用一种测试用例设计方法不能获得理想的测试用例集。在设计测试用例时,比较实用的方法是集。在设计测试用例时,比较实用的方法是综合运用几种综合运用几种设计技术设计技术,取长补短。,取长补短。n进行黑盒测试设计方法的进行黑盒测试设计方法的主要依据主要依据是软件系统需求规格说是软件系统需求规格说明书,之前需要确保说明书是经过明书,之前需要确保说明书是经过评审评审的。另外,如果没的。另外,如果没有说明书的话,可

4、以选择有说明书的话,可以选择探索式探索式测试。测试。n黑盒测试思想不仅可以用于测试软件的功能,同时,也可黑盒测试思想不仅可以用于测试软件的功能,同时,也可用于测试软件的用于测试软件的非功能非功能,如性能、安全、可用性等,如性能、安全、可用性等 3-6等价类划分等价类划分p等价类等价类n对一个等价关系而言对一个等价关系而言,某个元素相应的等价类是指与其等某个元素相应的等价类是指与其等价的所有元素的集合:价的所有元素的集合:1.等价类中的各个元素具有相同的属性等价类中的各个元素具有相同的属性2.(被划分集合被划分集合)各个等价类之间不会存在相同的元素,各个等价类之间不会存在相同的元素,它们的并集是

5、被划分集合的全集它们的并集是被划分集合的全集 3-7等价类划分等价类划分p测试思想测试思想n在进行测试用例设计时,以具有相同的预期结果为等在进行测试用例设计时,以具有相同的预期结果为等价划分原则,将系统的被测试域价划分原则,将系统的被测试域划分为划分为不同的等价类不同的等价类集合,从中集合,从中选出代表作选出代表作为测试用例,以期达到尽可能为测试用例,以期达到尽可能完备同时又可完备同时又可避免冗余避免冗余的测试。的测试。n被被测试域测试域可能是输入域、输出域、输入或输出域的部可能是输入域、输出域、输入或输出域的部分或任何其它值得测试的范围。分或任何其它值得测试的范围。 3-8等价类划分等价类划

6、分p分类分类 n有效等价类:对系统来说是有效的输入有效等价类:对系统来说是有效的输入n无效等价类:所有其它可能存在的情况无效等价类:所有其它可能存在的情况p设计测试用例设计测试用例步骤步骤n划分等价类划分等价类n确定测试用例:解决如何组合各个被测条件等价类的问确定测试用例:解决如何组合各个被测条件等价类的问题题p完全组合完全组合p部分组合部分组合 3-9划分等价类划分等价类(1)-(1)-说明说明在划分等价类时,可以参考下面的建议:在划分等价类时,可以参考下面的建议:1.如果某个输入条件规定如果某个输入条件规定值的范围值的范围,可以确定一个有效等,可以确定一个有效等价类和两个无效等价类价类和两

7、个无效等价类2.如果输入条件规定了一个如果输入条件规定了一个输入值的集合输入值的集合,可以确定一个,可以确定一个有效等价类和一个无效等价类。有效等价类和一个无效等价类。3.如果输入条件是一个如果输入条件是一个布尔表达式布尔表达式的条件,可以确定一个的条件,可以确定一个有效等价类和一个无效等价类有效等价类和一个无效等价类 3-10划分等价类划分等价类(2)(2)p说明说明4.如果输入条件定义了一个如果输入条件定义了一个“必须必须”的情况,比如的情况,比如”标标识的第一字符必须是字母识的第一字符必须是字母”那么可以确定一个有效等那么可以确定一个有效等价类和一个无效等价类。价类和一个无效等价类。5.

8、如果有理由确信,某一等价类中的各元素在程序中的如果有理由确信,某一等价类中的各元素在程序中的处理有区别,那就把这个等价类分成更小的等价类。处理有区别,那就把这个等价类分成更小的等价类。 3-11确定测试用例确定测试用例p步骤步骤1.划分等价类划分等价类。2.为每一个有效等价类和无效等价类规定为每一个有效等价类和无效等价类规定一个唯一的编号一个唯一的编号。3.设计一个测试用例,使其设计一个测试用例,使其尽可能多尽可能多地地覆盖尚未覆盖的有覆盖尚未覆盖的有效等价类效等价类, 重复这一步直到所有有效等价类均被测试用重复这一步直到所有有效等价类均被测试用例所覆盖。例所覆盖。4.设计一个测试用例,使其设

9、计一个测试用例,使其只覆盖一个无效等价类只覆盖一个无效等价类,重复,重复这一步,直到所有无效等价类均被覆盖。这一步,直到所有无效等价类均被覆盖。 3-12p表示法表示法n使用下面的表格有利于确定测试用例使用下面的表格有利于确定测试用例 3-13例:报表日期例:报表日期设某公司要打印设某公司要打印20012005年的报表,其年的报表,其中报表日期为中报表日期为6位数字组成,其中,前位数字组成,其中,前4位为年份,位为年份,后两位为月份。后两位为月份。 3-14第一步:划分等价类第一步:划分等价类条件条件有效等价类有效等价类编号编号无效等价类无效等价类编号编号报表日期的报表日期的类型及长度类型及长

10、度6位数字字符位数字字符1有非数字字符有非数字字符4少于少于6个数字字符个数字字符5多于多于6个数字字符个数字字符6年份范围年份范围在在20012005之间之间2小于小于20017大于大于20058月份范围月份范围在在112之间之间3小于小于19大于大于1210 3-15第二步:为有效等价类设计测试第二步:为有效等价类设计测试用例用例对表中编号为对表中编号为1、2、3的的3个有效等价类用一个有效等价类用一个测试用例覆盖:个测试用例覆盖:测试数据测试数据期望结果期望结果覆盖范围覆盖范围200105输入有效输入有效等价类等价类1,2,3 3-16第第三三步:步:为每一个无效等价类至为每一个无效等价

11、类至少设计一个少设计一个测试用例测试用例测试数据测试数据期望结果期望结果覆盖范围覆盖范围001MAY输入无效输入无效等价类等价类420015输入无效输入无效等价类等价类52001001输入无效输入无效等价类等价类6200001输入无效输入无效等价类等价类1,7,3200801输入无效输入无效等价类等价类1,8,3200100输入无效输入无效等价类等价类1,2,9200113输入无效输入无效等价类等价类1,2,10 3-17案例案例p功能说明功能说明nNextDate(年,月,日)是三个变量的函数。函数返(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,日期都是回输入

12、日期的下一个日期。变量年份,月份,日期都是整数值,且满足下面的条件:整数值,且满足下面的条件: 1900年年 2060 ,1月月 12, 1日日 31. n分析和比较两种不同的等价类划分方法以及三种设计的分析和比较两种不同的等价类划分方法以及三种设计的结果。结果。 3-18参考答案参考答案1 1n等价类及其编号等价类及其编号p测试用例测试用例1.覆盖等价类覆盖等价类1,2,3: 测试输入测试输入=(2006,6,16), 预期结果预期结果=(2006,6,17)2.覆盖等价类覆盖等价类4,2,3: 测试输入测试输入=(1890,4,10), 预期结果预期结果=“输入错误输入错误!”3.覆盖等价

13、类覆盖等价类5,2,3: 测试输入测试输入=(2062,4,10), 预期结果预期结果=“输入错误输入错误!” 3-19参考答案参考答案1 1p测试用例测试用例4.覆盖等价类覆盖等价类1,6,3: 测试输入测试输入=(2006,-2,16), 预期结果预期结果=“输入错输入错误误!”5.覆盖等价类覆盖等价类1,7,3: 测试输入测试输入=(2006,13,16), 预期结果预期结果=“输入错输入错误误!”6.覆盖等价类覆盖等价类1,2,8: 测试输入测试输入=(2006,6,0), 预期结果预期结果=“输入错误输入错误!”7.覆盖等价类覆盖等价类1,2,9: 测试输入测试输入=(2006,4,

14、33), 预期结果预期结果=“输入错误输入错误!” 3-20参考答案参考答案2 2p另一种答案另一种答案n等价类及其编号等价类及其编号 3-21参考答案参考答案2 2p测试用例测试用例11.覆盖等价类覆盖等价类1,3,7: 测试输入测试输入=(2000,7,16), 预期结果预期结果=(2000,7,17)2.覆盖等价类覆盖等价类2,4,8: 测试输入测试输入=(2006,4,29), 预期结果预期结果=(2006,4,30)3.覆盖等价类覆盖等价类1,5,9: 测试输入测试输入=(2000,2,30), 预期结果预期结果=“输入错误输入错误!” 3-22参考答案参考答案2 2p测试用例测试用

15、例1(续)(续)4.覆盖等价类覆盖等价类2,6,10: 测试输入测试输入=(2001,12,31),预期结果预期结果=(2002,1,1)5.覆盖等价类覆盖等价类11,3,7: 测试输入测试输入=(1830,3,19), 预期结果预期结果=“输入错误输入错误!”6.覆盖等价类覆盖等价类12,3,7: 测试输入测试输入=(3000,3,19), 预期结果预期结果=“输入错误输入错误!” 3-23参考答案参考答案2 2p测试用例测试用例1(续)(续)7.覆盖等价类覆盖等价类1,13,7: 测试输入测试输入=(2004,-2,10),预期结果预期结果=“输入错误输入错误!”8.覆盖等价类覆盖等价类1

16、,14,7: 测试输入测试输入=(2004,15,10),预期结果预期结果=输入错误输入错误!”9.覆盖等价类覆盖等价类1,3,15: 测试输入测试输入=(2004,8,-2), 预期结果预期结果=“输入错误输入错误!”10.覆盖等价类覆盖等价类1,3,16: 测试输入测试输入=(2004,8,38),预期结果预期结果=“输入错误输入错误!” 3-24参考答案参考答案3 3p测试用例测试用例2(续)(续)1.覆盖等价类覆盖等价类2,3,10: 测试输入测试输入=(2001,7,31), 预期结果预期结果=(2001,8,1)2.覆盖等价类覆盖等价类2,4,9: 测试输入测试输入=(2006,4

17、,30), 预期结果预期结果=(2006,5,1)3.覆盖等价类覆盖等价类1,5,8: 测试输入测试输入=(2000,2,29), 预期结果预期结果=(2000,3,1) 3-25参考答案参考答案3 3p测试用例测试用例2(续)(续)4.覆盖等价类覆盖等价类2,6,7: 测试输入测试输入=(2001,12,15),预期结果预期结果=(2001,12,16)5.覆盖等价类覆盖等价类11,3,7: 测试输入测试输入=(1830,3,19), 预期结果预期结果=“输入错误输入错误!”6.覆盖等价类覆盖等价类12,3,7: 测试输入测试输入=(3000,3,19), 预期结果预期结果=“输入错误输入错

18、误!” 3-26参考答案参考答案3 3p测试用例测试用例2(续)(续)7.覆盖等价类覆盖等价类1,13,7: 测试输入测试输入=(2004,-2,10),预期结果预期结果=“输入错误输入错误!”8.覆盖等价类覆盖等价类1,14,7: 测试输入测试输入=(2004,15,10),预期结果预期结果=输入错误输入错误!”9.覆盖等价类覆盖等价类1,3,15: 测试输入测试输入=(2004,8,-2), 预期结果预期结果=“输入错误输入错误!”10.覆盖等价类覆盖等价类1,3,16: 测试输入测试输入=(2004,8,38),预期结果预期结果=“输入错误输入错误!” 3-27案例讨论案例讨论p对三种设

19、计结果的讨论对三种设计结果的讨论n每种结果都覆盖了一些应该测试的功能点。每种结果都覆盖了一些应该测试的功能点。1.1.第一组第一组结果过多的关注于对无效等价类的测试,结果过多的关注于对无效等价类的测试,遗漏了遗漏了很多很多NextDateNextDate问题需测试的关键点,比如平年闰年、二月、大小月、问题需测试的关键点,比如平年闰年、二月、大小月、月底等等。月底等等。2.2.第二组第二组结果包含了第一组的结果的基础上,结果包含了第一组的结果的基础上,增加了增加了对二月、年对二月、年底等的测试。底等的测试。3.3.第三组第三组结果通过日常知识的运用,使得测试用例结果通过日常知识的运用,使得测试用

20、例涵盖了大部分涵盖了大部分需测试的要点,尤其是测试用例需测试的要点,尤其是测试用例1 1,2 2,3 3的有效性明显要比前二的有效性明显要比前二种结果中的要好,种结果中的要好,但仍有些遗漏但仍有些遗漏,例如年底、平年的二月等。,例如年底、平年的二月等。 3-28案例讨论案例讨论p如何再次提高测试用例质量呢?如何再次提高测试用例质量呢?1.在实际测试时,可以考虑增加一些测试用例来在实际测试时,可以考虑增加一些测试用例来补充补充想到但是通想到但是通过使用测试用例设计方法没有办法覆盖到的测试点(实际上,过使用测试用例设计方法没有办法覆盖到的测试点(实际上,运用了运用了错误猜测法错误猜测法)2.根据功

21、能规格说明,选取恰当的测试用例设计方法。根据功能规格说明,选取恰当的测试用例设计方法。Nextdate各个输入变量之间其实各个输入变量之间其实并不是完全独立的并不是完全独立的,在设计,在设计测试用例时并没有考虑到这点,可以使用:测试用例时并没有考虑到这点,可以使用:n各个变量之间进行全组合各个变量之间进行全组合n决策表决策表3.综合运用综合运用多种测试用例设计方法,以求得测试质量与成本之间多种测试用例设计方法,以求得测试质量与成本之间的平衡的平衡 3-29p弱一般等价类弱一般等价类n设计若干测试用例,每个测试用例应尽可能多地覆盖尚未设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的被测变

22、量的有效等价类并且覆盖的被测变量的有效等价类并且每个被测变量的有效等每个被测变量的有效等价类应至少出现一次价类应至少出现一次.n测试用例测试用例个数为个数为:各个被测变量中的最大有效等价类个数:各个被测变量中的最大有效等价类个数.p强一般等价类强一般等价类n设计若干测试用例,使其覆盖所有被测变量有效等价类的设计若干测试用例,使其覆盖所有被测变量有效等价类的组合组合.n测试用例测试用例个数为个数为:各个被测变量有效等价类数各个被测变量有效等价类数.等价类方法的补充说明等价类方法的补充说明 3-30p弱健壮等价类弱健壮等价类n设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的有设计若干测试用

23、例,每个测试用例应尽可能多地覆盖尚未覆盖的有效等价类,效等价类,对于无效等价类,每个测试用例只考虑一个对于无效等价类,每个测试用例只考虑一个被测变量的被测变量的无效等价类无效等价类n测试用例个数为:各个被测变量中的最大有效等价类个数测试用例个数为:各个被测变量中的最大有效等价类个数+各个各个被测变量的无效等价类数被测变量的无效等价类数p强健壮等价类强健壮等价类n设计若干测试用例,使其覆盖设计若干测试用例,使其覆盖所有所有被测变量的有效等价类和无效等被测变量的有效等价类和无效等价类的组合价类的组合n测试用例个数为:测试用例个数为:各个被测变量的(有效等价类数各个被测变量的(有效等价类数+无效等价

24、类无效等价类数数)等价类方法的补充说明等价类方法的补充说明 3-31p函数函数y = f (x1,x2) 输入变量的取值范围分别为输入变量的取值范围分别为:x1 a,d, x2 e,g , 根据规格说明划分得相应的等价类根据规格说明划分得相应的等价类nX1:有效等价类有效等价类 a, b) b, c) c, d;无效等价类(;无效等价类(-,a), (d, +)nX2:有效等价类有效等价类 e,f) f,g;无效等价类(;无效等价类(-,e), (g, +)abcdefg图例图例 弱一般等价类测试用例弱一般等价类测试用例 强一般等价类测试用例强一般等价类测试用例 弱健壮等价类测试用例弱健壮等价

25、类测试用例 强健壮等价类测试用例强健壮等价类测试用例等价类方法的补充说明等价类方法的补充说明 3-32运用强健壮等价类方法运用强健壮等价类方法p强健壮等价类强健壮等价类n用例个数:用例个数:4*6*6 = 144n利用强健壮等价类获得的测试用例虽然覆盖了需测试的各个要利用强健壮等价类获得的测试用例虽然覆盖了需测试的各个要点,但是测试用例个数却大幅度提高,而且包含了若干无意义点,但是测试用例个数却大幅度提高,而且包含了若干无意义的测试用例的测试用例 3-33练习练习 电话号码电话号码p城市的电话号码由两部分组成。这两部分的名称和内城市的电话号码由两部分组成。这两部分的名称和内容分别是:容分别是:

26、p 地区码:以地区码:以0开头的三位或者四位数字(包括开头的三位或者四位数字(包括0););p电话号码:以非电话号码:以非0、非、非1开头的七位或者八位数字。开头的七位或者八位数字。p假定被调试的程序能接受一切符合上述规定的电话号假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的调试用例。来设计它的调试用例。 3-34划分等价类并编号划分等价类并编号输入数据输入数据有效等价类有效等价类无效等价类无效等价类地区码地区码1.以以0开头的开头的3位位数串数串2.以以0开头的开头的4位位数串数串3.以以0

27、开头的含有非数字字符的串开头的含有非数字字符的串4.以以0开头的小于开头的小于3位的数串位的数串5.以以0开头的大于开头的大于4位的数串位的数串6.以非以非0开头的数串开头的数串电话号码电话号码7.以非以非0、非、非1开开头的头的7位数串位数串8.以非以非0、非、非1开开头的头的8位数串位数串9.以以0开头的数串开头的数串10.以以1开头的数串开头的数串11.以非以非0、非、非1开头的含有非法字符开头的含有非法字符7或者或者8位数串位数串12.以非以非0、非、非1开头的小于开头的小于7位数串位数串13.以非以非0、非、非1开头的大于开头的大于8位数串位数串 3-35为有效等价类设计测试用例为有

28、效等价类设计测试用例 测试数据测试数据期望结果期望结果覆盖范围覆盖范围010 23145678显示有效输入显示有效输入1、8023 2234567显示有效输入显示有效输入1、70851 3456789显示有效输入显示有效输入2、70851 23145678显示有效输入显示有效输入2、8 3-36为每一个无效等价类至少设计一个测试用例为每一个无效等价类至少设计一个测试用例 测试数据测试数据期望结果期望结果覆盖范围覆盖范围0a34 23456789显示无效输入显示无效输入305 23456789显示无效输入显示无效输入401234 23456789显示无效输入显示无效输入52341 2345678

29、9显示无效输入显示无效输入6028 01234567显示无效输入显示无效输入9028 12345678显示无效输入显示无效输入10028 qw123456显示无效输入显示无效输入11028 623456显示无效输入显示无效输入12028 886234569显示无效输入显示无效输入13 3-37练习:某学籍管理系统中有增加学生信息练习:某学籍管理系统中有增加学生信息的功能,该功能的说明如下的功能,该功能的说明如下p一条学生信息包括学生的学号、姓名。一条学生信息包括学生的学号、姓名。p学号是学生信息的关键字,不能重复。每个班级的学号范围和学号是学生信息的关键字,不能重复。每个班级的学号范围和学号的

30、数据要求见数据字典。增加重复学号和非数据字典要求学号的数据要求见数据字典。增加重复学号和非数据字典要求的学号时,系统应给出提示。增加信息时,学号是必须输入的,的学号时,系统应给出提示。增加信息时,学号是必须输入的,否则,系统应给出提示。下表是数据字典中关于学号的要求。否则,系统应给出提示。下表是数据字典中关于学号的要求。 3-38p首先,列出所有等价首先,列出所有等价类类,如下表所示如下表所示。 3-39p 选择测试用例,覆盖选择测试用例,覆盖有效有效等价类,如表所示。等价类,如表所示。选择测试用例,覆盖所有的选择测试用例,覆盖所有的无效无效等价类,如表所示。等价类,如表所示。 3-40p某程

31、序规定:某程序规定:输入三个整数输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算形及等边三角形时,分别作计算 。用等价类划分方法为该程序进行测试。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)p 分析题目中给出和隐含的对输入条件的要求:分析题目中给出和隐含的对输入条件的要

32、求: p (1)整数)整数 (2)三个数)三个数 (3)非零数)非零数 (4)正数)正数 p (5)两边之和大于第三边)两边之和大于第三边 (6)等腰)等腰 (7)等边)等边 p 如果如果 a 、 b 、 c 满足条件(满足条件( 1 ) ( 4 ),则输出下列四种情况之一:),则输出下列四种情况之一:p 1)如果不满足条件(如果不满足条件(5),则程序输出为),则程序输出为 非三角形非三角形 。p 2)如果三条边相等即满足条件(如果三条边相等即满足条件(7),则程序输出为),则程序输出为 等边三角形等边三角形 。p 3)如果只有两条边相等、即满足条件(如果只有两条边相等、即满足条件(6),则

33、程序输出为),则程序输出为 等腰三角形等腰三角形 。p 4)如果三条边都不相等,则程序输出为如果三条边都不相等,则程序输出为 一般三角形一般三角形 。 p 列出等价类表并编号列出等价类表并编号 3-41p边界值边界值n任何值得测试的范围的临界点,可分为任何值得测试的范围的临界点,可分为:1.边界值边界值:明确地定义在规格说明书中:明确地定义在规格说明书中 2.次边界次边界:隐含在软件中必须经过分析才能获得:隐含在软件中必须经过分析才能获得 p测试思想测试思想n取边界点附近的值作为测试用例的输入,可参考如下的取边界点附近的值作为测试用例的输入,可参考如下的设计原则设计原则:1.如果输入条件定义了

34、数值区间如果输入条件定义了数值区间(a,b),那么测试用例应包括,那么测试用例应包括a、b、稍微比稍微比a大、稍微比大、稍微比b大、稍微比大、稍微比a小和稍微比小和稍微比b小等几种情况小等几种情况. 举个例子,如果举个例子,如果a,b是整数是整数, 除在除在a,b之间取正常点外,之间取正常点外,a,b,a-1,b-1,a+1,b+1都应被测试都应被测试.边界值测试边界值测试 3-42 3-43p覆盖有效等价类的测试用例:覆盖有效等价类的测试用例:p a b c 覆盖等价类号码覆盖等价类号码p 3 4 5 (1)-(7)p 4 4 5 (1)-(7),(),(8)p 4 5 5 (1)-(7),

35、),(9) p 5 4 5 (1)-(7),),(10)p 4 4 4 (1)-(7),),(11)p 覆盖无效等价类的测试用例:覆盖无效等价类的测试用例: 3-44 3-45p设计应遵循的设计应遵循的原则原则2.如果输入条件规定了如果输入条件规定了值的个数值的个数, 那么最小个数、最大个数、那么最小个数、最大个数、大于和小于最小值、大于和小于最大值都应该被测试。大于和小于最小值、大于和小于最大值都应该被测试。3.如果程序的如果程序的输入域是有序集合输入域是有序集合,则应选取集合的第一个元,则应选取集合的第一个元素和最后一个元素作为测试用例素和最后一个元素作为测试用例4.上述原则也适用于上述原

36、则也适用于输出条件输出条件5.如果在程序中的如果在程序中的数据结构有指定的边界数据结构有指定的边界,那么选择这个数,那么选择这个数据结构边界上的值作为测试用例。据结构边界上的值作为测试用例。6.分析规格说明,找出分析规格说明,找出其它可能的边界条件其它可能的边界条件边界值测试边界值测试 3-46p功能描述功能描述n某选课系统中规定每门课程的选修人数在某选课系统中规定每门课程的选修人数在20,60之间,小于之间,小于20人不开设该门选修课,大于人不开设该门选修课,大于60人不接人不接受后面的选课要求。受后面的选课要求。p测试设计测试设计n输入变量:选课人数输入变量:选课人数n测试输入测试输入1.

37、选择当选课人数分别为选择当选课人数分别为19,20,21, 59,60和和61等几个边界点等几个边界点2.再加上一个正常值点再加上一个正常值点40案例案例 3-47常见的边界值常见的边界值 1)对对16-bit 的整数而言的整数而言: 32767 和和 -32768 是边界是边界 2)屏幕上光标屏幕上光标:在最左上、最右下位置在最左上、最右下位置 3)报表的报表的:第一行和最后一行第一行和最后一行 4)数组元素的数组元素的:第一个和最后一个第一个和最后一个 5)循环的循环的:第第 0 次、第次、第 1 次和倒数第次和倒数第 2 次、最后一次次、最后一次 3-48边界值测试边界值测试p从理论上来

38、说,边界值可分为从理论上来说,边界值可分为n仅考虑仅考虑有效区间有效区间单个变量边界值单个变量边界值(一般边界值):用在(一般边界值):用在最小值,略高于最小值,最小值,略高于最小值,正常值正常值,略低于最大值和最大,略低于最大值和最大值处取变量的值。如果被测变量个数为值处取变量的值。如果被测变量个数为n n,则测试用例个,则测试用例个数为数为4n+14n+1n仅考虑仅考虑有效区间有效区间多个变量边界值同时作用多个变量边界值同时作用(一般最坏情(一般最坏情况边界值):用各个变量的最小值,略高于最小值,况边界值):用各个变量的最小值,略高于最小值,正正常值常值,略低于最大值和最大值的笛卡尔积集。

39、如果被测,略低于最大值和最大值的笛卡尔积集。如果被测变量个数为变量个数为n n,则测试用例个数为,则测试用例个数为5 5n n 3-49边界值测试边界值测试n同时考虑有效区间和无效区间同时考虑有效区间和无效区间单个变量边界值单个变量边界值(健壮边界(健壮边界值):除了在最小值,略高于最小值,正常值,略低于最大值):除了在最小值,略高于最小值,正常值,略低于最大值和最大值处取变量的值,还要在略超过最大值以及略小于值和最大值处取变量的值,还要在略超过最大值以及略小于最小值之处值。如果被测变量个数为最小值之处值。如果被测变量个数为n n,则测试用例个数为,则测试用例个数为6n+1.6n+1.n同时考

40、虑有效区间和无效区间同时考虑有效区间和无效区间多个变量边界值同时作用多个变量边界值同时作用(健(健壮最坏情况边界值):用各个变量的略小于最小值,最小值,壮最坏情况边界值):用各个变量的略小于最小值,最小值,略高于最小值,正常值,略低于最大值,最大值和略超过大略高于最小值,正常值,略低于最大值,最大值和略超过大值的完全组合。如果被测变量个数为值的完全组合。如果被测变量个数为n n,则测试用例个数为,则测试用例个数为7 7n n 3-50p函数函数y = f (x1,x2) 输入变量的取值范围分别为输入变量的取值范围分别为:x1 a,b, x2 c,d , 边界值方法边界值方法abcdX2X1一般

41、边界值一般边界值 3-51p函数函数y = f (x1,x2) 输入变量的取值范围分别为输入变量的取值范围分别为:x1 a,b, x2 c,d , 边界值方法边界值方法abcdX2X1一般最坏情况边界值一般最坏情况边界值 3-52p函数函数y = f (x1,x2) 输入变量的取值范围分别为输入变量的取值范围分别为:x1 a,b, x2 c,d , 边界值方法边界值方法健壮边界值健壮边界值abcdX2X1 3-53p函数函数y = f (x1,x2) 输入变量的取值范围分别为输入变量的取值范围分别为:x1 a,d, x2 e,g , 边界值方法边界值方法健壮最坏边界值健壮最坏边界值abcdX2

42、X1 3-54p三角形问题三角形问题p输入三个不超过输入三个不超过200的整数,这三个值分别代表三角形三条边的长度,的整数,这三个值分别代表三角形三条边的长度,请判断这三个数构成的三角形是等边三角形,等腰三角形还是不等边请判断这三个数构成的三角形是等边三角形,等腰三角形还是不等边三角形并将结果打印出来。三角形并将结果打印出来。p测试设计测试设计n三个输入变量:第一条边,第二条边,第三条边三个输入变量:第一条边,第二条边,第三条边n测试输入测试输入n选择三条边长度分别为选择三条边长度分别为0,1,2,100,199,200,201等几等几个边界点个边界点n当仅有一个变量取边界值,其它取正常值当仅

43、有一个变量取边界值,其它取正常值.n所有变量取边界值所有变量取边界值.案例案例 3-55p三角形问题三角形问题n从得到的结果看,多变量同时取边界值得到的测试用例集的质量显从得到的结果看,多变量同时取边界值得到的测试用例集的质量显然然没有仅考虑一个变量边界值的情况好没有仅考虑一个变量边界值的情况好。虽然前者覆盖了后者所有。虽然前者覆盖了后者所有的测试用例,但是花费的代价确实不小,前者的测试用例数是后者的测试用例,但是花费的代价确实不小,前者的测试用例数是后者的十八倍,预期结果为的十八倍,预期结果为“输入错误输入错误”的用例约占总测试用例数的用例约占总测试用例数63.6%,而且这些测试用例中的大多

44、数是没有意义的,而且这些测试用例中的大多数是没有意义的n这主要是因为多变量同时取边界值关注的是变量同时取边界值点时这主要是因为多变量同时取边界值关注的是变量同时取边界值点时对于功能的影响,对于功能的影响,三角形问题的各个变量之间相对独立三角形问题的各个变量之间相对独立,因此对于,因此对于三角形问题仅考虑使用一个变量取边界值,另外一个变量取正常值三角形问题仅考虑使用一个变量取边界值,另外一个变量取正常值的情况就可以了的情况就可以了案例讨论案例讨论 3-56p边界值测试比较适合运用在有下列含义的变量上边界值测试比较适合运用在有下列含义的变量上n数值数值n字母字母n位置位置n数量数量n速度速度n大小

45、大小边界值测试边界值测试 3-57p除了遵循前面论述的边界值设计原则,还应考虑测试下面的情况除了遵循前面论述的边界值设计原则,还应考虑测试下面的情况n第一个第一个/最后一个最后一个, 第一个第一个-1/最后一个最后一个+1n开始开始/结束结束, 开始开始-1/结束结束+1n超过超过/低于低于, 刚刚超过刚刚超过/刚刚低于刚刚低于n空的空的/满的满的, 比空的少点比空的少点/比满的多些比满的多些n最短的最短的/最长的最长的, 稍微短点稍微短点/稍微长点稍微长点n最慢的最慢的/最快的最快的, 稍微慢点稍微慢点/稍微快点稍微快点n最早的最早的/最晚的最晚的, 稍微早点稍微早点/稍微晚点稍微晚点n最大

46、的最大的/最小的最小的, 最大的最大的+1/最小的最小的-1n最高的最高的/最低的最低的, 最高的最高的+1/最低的最低的-1n距离最近的距离最近的/距离最远的距离最远的边界值测试边界值测试 3-58边界值测试思想讨论边界值测试思想讨论p对于输出变量的边界上同样可以考虑使用边界值测试对于输出变量的边界上同样可以考虑使用边界值测试.p虽然边界值测试是以黑盒测试方法的面貌出现,但是虽然边界值测试是以黑盒测试方法的面貌出现,但是其思想不仅可以用于测试功能,同样可以将边界值测其思想不仅可以用于测试功能,同样可以将边界值测试的思想用于测试代码试的思想用于测试代码.p参见书参见书P47的示例:代码的示例:

47、代码 3-59与等价划分的区别与等价划分的区别p边界值分析使用与等价类划分法相同的划边界值分析使用与等价类划分法相同的划分。分。p只是边界值分析假定错误更多地存在于划只是边界值分析假定错误更多地存在于划分的边界上,边界值分析不是从某等价类分的边界上,边界值分析不是从某等价类中随便挑一个作为代表,而是在等价类的中随便挑一个作为代表,而是在等价类的边界上以及两侧的情况设计测试用例。边界上以及两侧的情况设计测试用例。 3-60边界值分析边界值分析p例:例:测试计算平方根的函数测试计算平方根的函数 输入:实数输入:实数 输出:实数输出:实数 规格说明:当输入一个规格说明:当输入一个0或比或比0大的数的

48、时候,大的数的时候,返回其正平方根;当输入一个小于返回其正平方根;当输入一个小于0的数时,显示的数时,显示错误信息错误信息“平方根非法平方根非法-输入值小于输入值小于0”并返回;并返回; 3-61p等价类划分:等价类划分:n可以考虑作出如下划分:可以考虑作出如下划分:p输入输入 (i)=0p输出输出 (a)=0 和和 (b) Errorn测试用例测试用例p边界值分析:边界值分析:n划分划分(ii)的边界为的边界为0和最大正实数;划分和最大正实数;划分(i)的边界为最的边界为最小负实数和小负实数和0。由此得到以下测试用例:。由此得到以下测试用例:p输入输入 最小负实数最小负实数p输入输入 绝对值

49、很小的负数绝对值很小的负数p输入输入 0p输入输入 绝对值很小的正数绝对值很小的正数p输入输入 最大正实数最大正实数 3-62决策表决策表 p定义定义n决策表由四个部分组成,分别是条件桩决策表由四个部分组成,分别是条件桩(condition stub), 条件项条件项(condition entry), 动作桩动作桩(action stub)和动作项(和动作项(action entry). 1.条件桩是条件的列表条件桩是条件的列表 2.动作桩是满足条件时系统可能产生的动作的列表动作桩是满足条件时系统可能产生的动作的列表.3.条件项是条件值的组合条件项是条件值的组合 4.动作项是在条件值组合情况

50、下发生的动作动作项是在条件值组合情况下发生的动作5.表中的每一列称为一条规则。规则定义了动作在什么条件下发生表中的每一列称为一条规则。规则定义了动作在什么条件下发生p决策表分为决策表分为n有限项决策表:每个条件只有两个值有限项决策表:每个条件只有两个值,如如Y/N, T/F,1/0 等等.n扩展项决策表:条件项的取值有多个(大于扩展项决策表:条件项的取值有多个(大于2个)个) 3-63决策表示例决策表示例p下面的决策表描述了读书时的场景下面的决策表描述了读书时的场景条件桩条件桩动作桩动作桩条件项条件项动作项动作项规则规则 3-64决策表决策表 p和测试用例之间的关系和测试用例之间的关系n一条规

51、则对应一个测试用例一条规则对应一个测试用例, 条件项构成了测试用例的输入,相应的动作条件项构成了测试用例的输入,相应的动作项则是预期结果项则是预期结果输入条件输入条件输出结果输出结果测试输入测试输入预期结果预期结果测试用例测试用例条件桩条件桩动作桩动作桩条件项条件项动作项动作项 3-65不相关项不相关项p为了减少测试用例的个数,我们可以合并具有相同动作结果的规则为了减少测试用例的个数,我们可以合并具有相同动作结果的规则第一个条件无论取何值都会产生相同的动作,所以我们可以将第一条规则和第五条规则利用不相关项进行合并 3-66不相关项不相关项p不相关项用不相关项用“-”表示表示. p规则数降低到规

52、则数降低到4,相应的测试用例数也降低到,相应的测试用例数也降低到4 3-67决策表决策表 p决策表设计测试用例的步骤决策表设计测试用例的步骤1.分析规格说明确定条件和动作分析规格说明确定条件和动作2.将条件和动作分别填入条件桩和动作桩中将条件和动作分别填入条件桩和动作桩中3.在条件项中,根据逻辑关系填入条件的各种组合情况在条件项中,根据逻辑关系填入条件的各种组合情况4.在动作项中,根据规格说明,给每个条件的组合情况填在动作项中,根据规格说明,给每个条件的组合情况填入相应的动作入相应的动作5.重复步骤重复步骤3、4直到所有逻辑关系被遍历完为止直到所有逻辑关系被遍历完为止 3-68有限项决策表有限

53、项决策表p示例示例n三角形问题:输入三个整数,这三个值分别表示三角形三条边的长度,请三角形问题:输入三个整数,这三个值分别表示三角形三条边的长度,请判断这个三角形是等边三角形,还是等腰三角形还是不等边三角形并打印判断这个三角形是等边三角形,还是等腰三角形还是不等边三角形并打印相应的结果相应的结果na,b,c 分别代表输入的整数,三角形问题的决策表为:分别代表输入的整数,三角形问题的决策表为: 3-69有限项决策表有限项决策表p测试用例测试用例n规则规则1:1:测试输入测试输入 = (60,16,26), = (60,16,26), 预期结果预期结果 = = 非三角形非三角形n规则规则2:2:测

54、试输入测试输入 = (50,50,0), = (50,50,0), 预期结果预期结果 = = 非三角形非三角形n规则规则3:3:测试输入测试输入 = (0,0,0), = (0,0,0), 预期结果预期结果 = = 非三角形非三角形n规则规则4:4:测试输入测试输入 = (60,60,60), = (60,60,60), 预期结果预期结果 = = 等边三角形等边三角形 3-70有限项决策表有限项决策表p测试用例测试用例n规则规则5:5:这种组合在现实中不可能存在这种组合在现实中不可能存在n规则规则6:6:这种组合在现实中不可能存在这种组合在现实中不可能存在n规则规则7:7:测试输入测试输入 =

55、 (60,60,26), = (60,60,26), 预期结果预期结果 = = 等腰三角形等腰三角形n规则规则8:8:这种组合在现实中不可能存在这种组合在现实中不可能存在 3-71有限项决策表有限项决策表p测试用例测试用例n规则规则9:9:测试输入测试输入 = (60,26,60), = (60,26,60), 预期结果预期结果 = = 等腰三角形等腰三角形. .n规则规则10:10:测试输入测试输入 = (26,60,60), = (26,60,60), 预期结果预期结果 = = 等腰三角形等腰三角形n规则规则11:11:测试输入测试输入 = (30,40,50), = (30,40,50)

56、, 预期结果预期结果 = = 不等边三角形不等边三角形 3-72有限项决策表有限项决策表p注意注意:n一共有一共有8个测试用例个测试用例 n这这8个测试用例仅仅测试了三角形问题的逻辑个测试用例仅仅测试了三角形问题的逻辑 3-73扩展项决策表扩展项决策表p示例示例nNextDateNextDate(年,月,日)是三个变量的函数。函数返回输入日期的下一个(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,日期都是整数值,且满足下面的条件:日期。变量年份,月份,日期都是整数值,且满足下面的条件: 19001900年年 2060 ,12060 ,1月月 12, 112, 1日

57、日 3131n如果你选择有限项决策表,那么表中会存在如果你选择有限项决策表,那么表中会存在256条规则条规则. 试试下面的方法试试下面的方法n日期的值包括日期的值包括pD1=从从1到到27pD2=28pD3=29pD4=30pD5=31n年份的值包括年份的值包括pY1=闰年闰年pY2=平年平年 n月份的值包括月份的值包括pM1=31天的月,除去天的月,除去12月月pM2=30天的月天的月pM3=2月月pM4=12月月 3-74扩展项决策表扩展项决策表pNextDate问题的扩展项决策表问题的扩展项决策表:n日期的值包括日期的值包括pD1=从从1到到27pD2=28pD3=29pD4=30pD5

58、=31n年份的值包括年份的值包括pY1=闰年闰年pY2=平年平年 n月份的值包括月份的值包括pM1=31天的月,除去天的月,除去12月月pM2=30天的月天的月pM3=2月月pM4=12月月 3-75扩展项决策表扩展项决策表p测试用例测试用例n规则规则1:测试输入测试输入 = (2007,7,19), 预期结果预期结果 = “2007-7-20”n规则规则2:测试输入测试输入 = (2007,7,31), 预期结果预期结果 = “2007-8-1”n规则规则3:测试输入测试输入 = (2007,9,25), 预期结果预期结果 = “2007-9-26”n规则规则4:测试输入测试输入 = (20

59、07,9,30), 预期结果预期结果 = “2007-10-1” 3-76扩展项决策表扩展项决策表p测试用例测试用例n规则规则5:测试输入测试输入 = (2007,11,31),预期结果,预期结果 = “日期输入错误日期输入错误”n规则规则6:测试输入测试输入 = (2000,2,15), 预期结果预期结果 = “2000-2-16”n规则规则7:测试输入测试输入 = (2000,2,29), 预期结果预期结果 = “2000-3-1”n规则规则8:测试输入测试输入 = (2000,2,30), 预期结果预期结果 = “日期输入错误日期输入错误” 3-77扩展项决策表扩展项决策表p测试用例测试

60、用例n规则规则9:测试输入测试输入 = (2007,2,15), 预期结果预期结果 = “2007-2-16”n规则规则10:测试输入测试输入 = (2007,2,28), 预期结果预期结果 = “2007-3-1”n规则规则11: 测试输入测试输入 = (2007,2,28), 预期结果预期结果 = “日期输入错误日期输入错误”n规则规则12: 测试输入测试输入 = (2006,12,16), 预期结果预期结果 = “2006-12-17”n规则规则13: 测试输入测试输入 = (2006,12,31), 预期结果预期结果 = “2007-1-1” 3-78建议建议 p建议建议 n当测试逻辑

温馨提示

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

评论

0/150

提交评论