第7课时黑盒测试—案例分析与实践_第1页
第7课时黑盒测试—案例分析与实践_第2页
第7课时黑盒测试—案例分析与实践_第3页
第7课时黑盒测试—案例分析与实践_第4页
第7课时黑盒测试—案例分析与实践_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、软件测试技术与实践内容提纲n复习n讨论常用的黑盒测试用例设计方法,包括 n等价类划分n边界值测试n决策表n因果图n综合运用黑盒用例设计方法n总结上一节课我们学了什么呢? 3-5黑盒测试n把系统看成一个不透明的黑匣,在完全把系统看成一个不透明的黑匣,在完全不考虑系统内部结构不考虑系统内部结构和处理过程和处理过程的情况下,只关注在选择的的情况下,只关注在选择的输入输入和相应的执行条和相应的执行条件下所产生的件下所产生的输输出结果,验证系统是否达到出结果,验证系统是否达到用户需求用户需求。n常用的黑盒测试技术包括常用的黑盒测试技术包括等价类划分等价类划分边界值测试边界值测试决策表决策表1.因果图因果

2、图n如果你打算测试一个计算器程序的功能,你认为需要进行多少次输入?不可能进行完全的测试p结论是不计其数结论是不计其数整型整型: 从从 1+1 到到 999999999999999999999999999999+ 999999999999999999999999999999小数小数:1.0+0.1,1.0+0.2等等等等键盘上的任何一种组合键盘上的任何一种组合1.为乘法和除法运算重复上面的操作为乘法和除法运算重复上面的操作黑盒测试n通常运用一种测试用例设计方法不能获得理想的测试用例通常运用一种测试用例设计方法不能获得理想的测试用例集。在设计测试用例时,比较实用的方法是集。在设计测试用例时,比较实

3、用的方法是综合运用几种综合运用几种设计技术设计技术,取长补短。,取长补短。n进行黑盒测试设计方法的进行黑盒测试设计方法的主要依据主要依据是软件系统需求规格说是软件系统需求规格说明书,之前需要确保说明书是经过明书,之前需要确保说明书是经过评审评审的。另外,如果没的。另外,如果没有说明书的话,可以选择有说明书的话,可以选择探索式探索式测试。测试。n黑盒测试思想不仅可以用于测试软件的功能,同时,也可黑盒测试思想不仅可以用于测试软件的功能,同时,也可用于测试软件的用于测试软件的非功能非功能,如性能、安全、可用性等,如性能、安全、可用性等等价类划分n测试思想n在进行测试用例设计时,以具有相同的预期结果为

4、等价划分原则,将系统的被测试域划分为不同的等价类集合,从中选出代表作为测试用例,以期达到尽可能完备同时又可避免冗余的测试。n被测试域可能是输入域、输出域、输入或输出域的部分或任何其它值得测试的范围。 3-9划分等价类-说明在划分等价类时,可以参考下面的建议:在划分等价类时,可以参考下面的建议:如果某个输入条件规定如果某个输入条件规定值的范围值的范围,可以确定一个有效等,可以确定一个有效等价类和两个无效等价类价类和两个无效等价类如果输入条件规定了一个如果输入条件规定了一个输入值的集合输入值的集合,可以确定一个,可以确定一个有效等价类和一个无效等价类。有效等价类和一个无效等价类。1.如果输入条件是

5、一个如果输入条件是一个布尔表达式布尔表达式的条件,可以确定一个的条件,可以确定一个有效等价类和一个无效等价类有效等价类和一个无效等价类 3-10确定测试用例p步骤步骤划分等价类划分等价类。为每一个有效等价类和无效等价类规定为每一个有效等价类和无效等价类规定一个唯一的编号一个唯一的编号。设计一个测试用例,使其设计一个测试用例,使其尽可能多尽可能多地地覆盖尚未覆盖的有覆盖尚未覆盖的有效等价类效等价类, 重复这一步直到所有有效等价类均被测试用重复这一步直到所有有效等价类均被测试用例所覆盖。例所覆盖。1.设计一个测试用例,使其设计一个测试用例,使其只覆盖一个无效等价类只覆盖一个无效等价类,重复,重复这

6、一步,直到所有无效等价类均被覆盖。这一步,直到所有无效等价类均被覆盖。 3-11n表示法n使用下面的表格有利于确定测试用例 3-12例:报表日期设某公司要打印20012005年的报表,其中报表日期为6位数字组成,其中,前4位为年份,后两位为月份。 3-13第一步:划分等价类条件条件有效等价类有效等价类编号编号无效等价类无效等价类编号编号报表日期的报表日期的类型及长度类型及长度6位数字字符位数字字符1有非数字字符有非数字字符4少于少于6个数字字符个数字字符5多于多于6个数字字符个数字字符6年份范围年份范围在在20012005之间之间2小于小于20017大于大于20058月份范围月份范围在在112

7、之间之间3小于小于19大于大于1210 3-14第二步:为有效等价类设计测试用例对表中编号为1、2、3的3个有效等价类用一个测试用例覆盖:测试数据测试数据期望结果期望结果覆盖范围覆盖范围200105输入有效输入有效等价类等价类1,2,3 3-15第三步:为每一个无效等价类至少设计一个测试用例测试数据测试数据期望结果期望结果覆盖范围覆盖范围001MAY输入无效输入无效等价类等价类420015输入无效输入无效等价类等价类52001001输入无效输入无效等价类等价类6200001输入无效输入无效等价类等价类1,7,3200801输入无效输入无效等价类等价类1,8,3200100输入无效输入无效等价类

8、等价类1,2,9200113输入无效输入无效等价类等价类1,2,10 3-16案例p功能说明功能说明nNextDate(年,月,日)是三个变量的函数。函数返(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,日期都是回输入日期的下一个日期。变量年份,月份,日期都是整数值,且满足下面的条件:整数值,且满足下面的条件: 1900年年 2060 ,1月月 12, 1日日 31. n分析和比较两种不同的等价类划分方法以及三种设计的分析和比较两种不同的等价类划分方法以及三种设计的结果。结果。 3-17参考答案1n等价类及其编号等价类及其编号p测试用例测试用例覆盖等价类覆盖等价类

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

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

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

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

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

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

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

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

17、误猜测法)根据功能规格说明,选取恰当的测试用例设计方法。根据功能规格说明,选取恰当的测试用例设计方法。Nextdate各个输入变量之间其实各个输入变量之间其实并不是完全独立的并不是完全独立的,在设计,在设计测试用例时并没有考虑到这点,可以使用:测试用例时并没有考虑到这点,可以使用:n各个变量之间进行全组合各个变量之间进行全组合n决策表决策表1.综合运用综合运用多种测试用例设计方法,以求得测试质量与成本之间多种测试用例设计方法,以求得测试质量与成本之间的平衡的平衡 3-28p边界值边界值n任何值得测试的范围的临界点,可分为任何值得测试的范围的临界点,可分为:边界值边界值:明确地定义在规格说明书中

18、:明确地定义在规格说明书中 次边界次边界:隐含在软件中必须经过分析才能获得:隐含在软件中必须经过分析才能获得 p测试思想测试思想n取边界点附近的值作为测试用例的输入,可参考如下的取边界点附近的值作为测试用例的输入,可参考如下的设计原则设计原则:如果输入条件定义了数值区间如果输入条件定义了数值区间(a,b),那么测试用例应包括,那么测试用例应包括a、b、稍微比稍微比a大、稍微比大、稍微比b大、稍微比大、稍微比a小和稍微比小和稍微比b小等几种情况小等几种情况. 举个例子,如果举个例子,如果a,b是整数是整数, 除在除在a,b之间取正常点外,之间取正常点外,a,b,a-1,b-1,a+1,b+1都应

19、被测试都应被测试.边界值测试 3-29p功能描述功能描述n某选课系统中规定每门课程的选修人数在某选课系统中规定每门课程的选修人数在20,60之间,小于之间,小于20人不开设该门选修课,大于人不开设该门选修课,大于60人不接人不接受后面的选课要求。受后面的选课要求。p测试设计测试设计n输入变量:选课人数输入变量:选课人数n测试输入测试输入选择当选课人数分别为选择当选课人数分别为19,20,21, 59,60和和61等几个边界点等几个边界点1.再加上一个正常值点再加上一个正常值点40案例 常见的边界值 1)对16-bit 的整数而言: 32767 和 -32768 是边界 2)屏幕上光标:在最左上

20、、最右下位置 3)报表的:第一行和最后一行 4)数组元素的:第一个和最后一个 5)循环的:第 0 次、第 1 次和倒数第 2 次、最后一次 3-31p边界值测试比较适合运用在有下列含义的变量上边界值测试比较适合运用在有下列含义的变量上n数值数值n字母字母n位置位置n数量数量n速度速度n大小大小边界值测试 3-32p除了遵循前面论述的边界值设计原则,还应考虑测试下面的情况除了遵循前面论述的边界值设计原则,还应考虑测试下面的情况n第一个第一个/最后一个最后一个, 第一个第一个-1/最后一个最后一个+1n开始开始/结束结束, 开始开始-1/结束结束+1n超过超过/低于低于, 刚刚超过刚刚超过/刚刚低

21、于刚刚低于n空的空的/满的满的, 比空的少点比空的少点/比满的多些比满的多些n最短的最短的/最长的最长的, 稍微短点稍微短点/稍微长点稍微长点n最慢的最慢的/最快的最快的, 稍微慢点稍微慢点/稍微快点稍微快点n最早的最早的/最晚的最晚的, 稍微早点稍微早点/稍微晚点稍微晚点n最大的最大的/最小的最小的, 最大的最大的+1/最小的最小的-1n最高的最高的/最低的最低的, 最高的最高的+1/最低的最低的-1n距离最近的距离最近的/距离最远的距离最远的边界值测试 3-33与等价划分的区别n边界值分析使用与等价类划分法相同的划分。n只是边界值分析假定错误更多地存在于划分的边界上,边界值分析不是从某等价

22、类中随便挑一个作为代表,而是在等价类的边界上以及两侧的情况设计测试用例。 3-34决策表 p定义定义n决策表由四个部分组成,分别是条件桩决策表由四个部分组成,分别是条件桩(condition stub), 条件项条件项(condition entry), 动作桩动作桩(action stub)和动作项(和动作项(action entry). 条件桩是条件的列表条件桩是条件的列表 动作桩是满足条件时系统可能产生的动作的列表动作桩是满足条件时系统可能产生的动作的列表.条件项是条件值的组合条件项是条件值的组合 动作项是在条件值组合情况下发生的动作动作项是在条件值组合情况下发生的动作表中的每一列称为一

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

24、例的输入,相应的动作项则是预期结果项则是预期结果输入条件输出结果测试输入预期结果测试用例条件桩动作桩条件项动作项 3-37不相关项不相关项p为了减少测试用例的个数,我们可以合并具有相同动作结果的规则为了减少测试用例的个数,我们可以合并具有相同动作结果的规则第一个条件无论取何值都会产生相同的动作,所以我们可以将第一条规则和第五条规则利用不相关项进行合并 3-38不相关项不相关项p不相关项用不相关项用“-”表示表示. p规则数降低到规则数降低到4,相应的测试用例数也降低到,相应的测试用例数也降低到4 3-39决策表决策表 p决策表设计测试用例的步骤决策表设计测试用例的步骤分析规格说明确定条件和动作

25、分析规格说明确定条件和动作将条件和动作分别填入条件桩和动作桩中将条件和动作分别填入条件桩和动作桩中在条件项中,根据逻辑关系填入条件的各种组合情况在条件项中,根据逻辑关系填入条件的各种组合情况在动作项中,根据规格说明,给每个条件的组合情况填在动作项中,根据规格说明,给每个条件的组合情况填入相应的动作入相应的动作重复步骤重复步骤3、4直到所有逻辑关系被遍历完为止直到所有逻辑关系被遍历完为止 3-40扩展项决策表扩展项决策表p示例示例nNextDateNextDate(年,月,日)是三个变量的函数。函数返回输入日期的下一个(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,

26、日期都是整数值,且满足下面的条件:日期。变量年份,月份,日期都是整数值,且满足下面的条件: 19001900年年 2060 ,12060 ,1月月 12, 112, 1日日 3131n如果你选择有限项决策表,那么表中会存在很多条规则如果你选择有限项决策表,那么表中会存在很多条规则. 试试下面的方法试试下面的方法n日期的值包括日期的值包括pD1=从从1到到27pD2=28pD3=29pD4=30pD5=31n年份的值包括年份的值包括pY1=闰年闰年pY2=平年平年 n月份的值包括月份的值包括pM1=31天的月,除去天的月,除去12月月pM2=30天的月天的月pM3=2月月pM4=12月月 3-4

27、1扩展项决策表扩展项决策表pNextDate问题的扩展项决策表问题的扩展项决策表:n日期的值包括日期的值包括pD1=从从1到到27pD2=28pD3=29pD4=30pD5=31n年份的值包括年份的值包括pY1=闰年闰年pY2=平年平年 n月份的值包括月份的值包括pM1=31天的月,除去天的月,除去12月月pM2=30天的月天的月pM3=2月月pM4=12月月 3-42扩展项决策表扩展项决策表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:测试输入测试输入 = (2007,9,30), 预期结果预期结果 = “2007-10-1” 3-43扩展项决策表扩展项决策表p测试用例n规则规则5:测试输入测试输入 = (2007,11,31),预期结果,预期结果 = “日期输入错误日期输入错误”n规则规则6:测试输入测试输入 = (2000,2,15), 预期

温馨提示

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

评论

0/150

提交评论