您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 第三章—黑盒测试用例设计方法1
1第三章黑盒测试用例设计方法Yingli(哈尔滨英立科技有限公司)3-2我们在哪?软件测试的分类单元测试系统测试验收测试性能测试兼容性测试功能测试白盒测试方法层次或过程方法(哲学思想)特性-质量目标适用性测试可靠性测试集成测试安全性测试灰盒测试方法黑盒测试方法Yingli(哈尔滨英立科技有限公司)3-3测试方法辩证法白盒测试方法vs.黑盒测试方法静态测试vs.动态测试手工测试vs.自动化测试有计划测试vs.随机测试新功能测试vs.回归测试Yingli(哈尔滨英立科技有限公司)3-4本章内容讨论常用的黑盒测试用例设计方法,包括等价类划分边界值测试决策表错误猜测场景法正交实验法行为建模综合运用黑盒用例设计方法Yingli(哈尔滨英立科技有限公司)3-5黑盒测试说明把系统看成一个不透明的黑匣,在完全不考虑系统内部结构和处理过程的情况下验证系统是否达到用户需求。不考虑系统或者组件的内部细节,只关注在选择的输入和相应的执行条件下所产生的输出结果常用的黑盒测试技术包括1.等价类划分2.边界值测试3.决策表4.错误猜测5.场景法Yingli(哈尔滨英立科技有限公司)3-6如果你打算测试一个计算器程序的功能,你认为需要进行多少次输入?不可能进行完全的测试结论是不计其数1.整型:从1+1到999999999999999999999999999999+9999999999999999999999999999992.小数:1.0+0.1,1.0+0.2…等等3.键盘上的任何一种组合4.为乘法和除法运算重复上面的操作Yingli(哈尔滨英立科技有限公司)3-7黑盒测试请注意通常运用一种测试用例设计方法不能获得理想的测试用例集。在设计测试用例时,比较实用的方法是综合运用几种设计技术,取长补短。本章的最后会给出一个示例。进行黑盒测试设计方法的主要依据是软件系统需求规格说明书,因此,在进行黑盒测试设计之前需要确保说明书是经过评审的,其质量达到了既定的要求。另外,如果没有说明书的话,可以选择探索式测试黑盒测试思想不仅可以用于测试软件的功能,同时,也可用于测试软件的非功能,如性能、安全、可用性等Yingli(哈尔滨英立科技有限公司)3-8等价类划分等价类对一个等价关系而言,某个元素相应的等价类是指与其等价的所有元素的集合1.等价类中的各个元素具有相同的属性2.(被划分集合)各个等价类之间不会存在相同的元素,它们的并集是被划分集合的全集测试思想在进行测试用例设计时,以具有相同的预期结果为等价划分原则,将系统的被测试域划分为不同的等价类集合,从中选出代表作为测试用例,以期达到尽可能完备同时又可避免冗余的测试。被测试域可能是输入域、输出域、输入或输出域的部分或任何其它值得测试的范围Yingli(哈尔滨英立科技有限公司)3-9等价类划分分类有效等价类:对系统来说是有效的输入无效等价类:所有其它可能存在的情况设计测试用例步骤划分等价类确定测试用例:解决如何组合各个被测条件等价类的问题完全组合部分组合Yingli(哈尔滨英立科技有限公司)3-10划分等价类(1)说明到目前为止没有划分高质量等价类的标准方法,不同的功能说明可能使用不同的方法。不同的等价类得到的测试用例质量不同。在划分等价类时,可以参考下面的建议:1.在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。例如:成年人每分钟的心跳60-100之间为正常。有效等价类:60-100无效等价类:60和1002.在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。例如:用户连续输入错误密码的次数最多为3次。有效等价类:=3次无效等价类:3次3.在输入条件是一个布尔量的情况下,可确定一个有效等价类。例如:单选的选中与不选中。Yingli(哈尔滨英立科技有限公司)3-11划分等价类(2)4.在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。例如:输入数据为省份的选择。5.在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如:规定必须输入非0的正整数。这种例子应充分考虑规则是否可以拆分为具有单一的子规则,然后得到从不同角度违反规则的无效等价类。该例子起码可拆分为非0、数字、正数、整数4个子规则,至少每个规则对应一个无效等价类,即0、字符串、负数、小数,甚至可挖掘出输入为空的隐含等价类。6.在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。例如:核对日期的有效性,初步有效等价类是1=Month=12,1=Day=31可是考虑到2月以及闰年、闰月、长月、短月等,需要进一步细分,当然其中还涉及到了年月日组合的问题。Yingli(哈尔滨英立科技有限公司)3-12确定测试用例步骤1.划分等价类2.为每一个有效等价类和无效等价类规定一个唯一的编号3.设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步直到所有有效等价类均被测试用例所覆盖4.设计一个测试用例,使其只覆盖一个无效等价类,重复这一步,直到所有无效等价类均被覆盖表示法使用下面的表格有利于确定测试用例Yingli(哈尔滨英立科技有限公司)3-13案例功能说明NextDate(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,日期都是整数值,且满足下面的条件:1900≤年≤2060,1≤月≤12,1≤日≤31.分析和比较两种不同的等价类划分方法以及三种设计的结果Yingli(哈尔滨英立科技有限公司)3-14参考答案1参考答案等价类及其编号测试用例1.覆盖等价类1,2,3:测试输入=(2006,6,16),预期结果=(2006,6,17)2.覆盖等价类4,2,3:测试输入=(1890,4,10),预期结果=“输入错误!”3.覆盖等价类5,2,3:测试输入=(2062,4,10),预期结果=“输入错误!”Yingli(哈尔滨英立科技有限公司)3-15参考答案1测试用例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,33),预期结果=“输入错误!”Yingli(哈尔滨英立科技有限公司)3-16分析:覆盖有效等价类123-一个测试用例覆盖无效等价类每一个,分别按顺序替换一个有效的等价类423、523。163、173。128、129。Yingli(哈尔滨英立科技有限公司)3-17参考答案2另一种答案等价类及其编号Yingli(哈尔滨英立科技有限公司)3-18参考答案2测试用例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),预期结果=“输入错误!”Yingli(哈尔滨英立科技有限公司)3-19参考答案2测试用例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),预期结果=“输入错误!”Yingli(哈尔滨英立科技有限公司)3-20参考答案2测试用例1(续)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),预期结果=“输入错误!”Yingli(哈尔滨英立科技有限公司)3-21参考答案3测试用例2(续)1.覆盖等价类2,3,10:测试输入=(2001,7,31),预期结果=(2001,8,1)2.覆盖等价类2,4,9:测试输入=(2006,4,30),预期结果=(2006,5,1)3.覆盖等价类1,5,8:测试输入=(2000,2,29),预期结果=(2000,3,1)Yingli(哈尔滨英立科技有限公司)3-22参考答案3测试用例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),预期结果=“输入错误!”Yingli(哈尔滨英立科技有限公司)3-23参考答案3测试用例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),预期结果=“输入错误!”Yingli(哈尔滨英立科技有限公司)3-24案例讨论对三种设计结果的讨论每种结果都覆盖了一些应该测试的功能点1.第一组结果过多的关注于对无效等价类的测试,遗漏了很多NextDate问题需测试的关键点,比如平年闰年、二月、大小月、月底等等。2.第二组结果包含了第一组的结果的基础上,增加了对二月、年底等的测试3.第三组结果通过日常知识的运用,使得测试用例涵盖了大部分需测试的要点,尤其是测试用例1,2,3的有效性明显要比前二种结果中的要好,但仍有些遗漏,例如年底、平年的二月等Yingli(哈尔滨英立科技有限公司)3-25案例讨论如何再次提高测试用例质量呢?1.在实际测试时,可以考虑增加一些测试用例来补充想到但是通过使用测试用例设计方法没有办法覆盖到的测试点(实际上,运用了错误猜测法)2.根据功能规格说明,选取恰当的测试用例设计方法。Nextdate各个输入变量之间其实并不是完全独立的,在设计测试用例时并没有考虑到这点,可以使用:各个变量之间进行全组合决策表3.综合运用多种测试用例设计方法,以求得测试质量与成本之间的平衡Yingli(哈尔滨英立科技有限公司)3-26弱一般等价类设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的被测变量的有效等价类并且每个被测变量的有效等价类应至少出现一次测试用例个数为:各个被测变量中的最大有效等价类个数强一般等价类设计若干测试用例,使其覆盖所有被测变量有效等价类的组合测试用例个数为:∏各个被测变量有效等价类数(乘法原理)等价类方法的补充说明Yingli(哈尔滨英立科技有限公司)3-27弱健壮等价类设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的有效等价类,对于无效等价类,每个测试用例只考虑一个被测变量的无效等价类测试用例个数为:各个被测变量中的最大有效等价类个数+∑各个被测变量的无效等价类数强健壮等价类设计若干测试用例,使其覆盖所有被测变量的有效等价类和无效等价类的组合测试用例个数为:∏各个被测变量的(有效等价类数+无效等价类数)等价类方法的补充说明Yingli(哈尔滨英立科技有限公司)3-28函数y=f(x1,x2)输入变量的取值范围分别为:x1∈[a,d],x2∈[e,g],根据规格说明划分得相应的等价类X1:有效等价类[a,b)[b
本文标题:第三章—黑盒测试用例设计方法1
链接地址:https://www.777doc.com/doc-2120311 .html