《黑盒测试等价类划分.ppt》由会员分享,可在线阅读,更多相关《黑盒测试等价类划分.ppt(27页珍藏版)》请在三一办公上搜索。
1、软件测试,第五讲 黑盒测试,黑盒测试方法总览,1.基于需求的测试 2.正面测试和负面测试 3.等价类划分 4.边界值分析 5.因果图分析法 6.决策表 7.基于图/状态的测试 8.正交数组测试,等价类划分方法基础,等价类划分方法的产生背景:功能测试最主要的手段之一就是借助数据的输入输出来判断功能能否正常运行;如果需要证明数据输入不会引起功能上的错误,或者其输出结果在各种输入条件下都是正确的,就需要将可输入数据域内的值完全尝试 通常无法实现 选取少量具有代表性的输入数据,以期用较少的测试代价暴露出较多的软件缺陷,等价类划分方法基础,等价类划分方法的基本思想:试用一组有限的数据去代表近似无限的数据
2、域选择适当的数据子集来代表整个数据集,通过降低测试的数目去实现“合理的”覆盖(覆盖更多的可能数据),以发现更多的软件缺陷,提高测试效率,等价类划分法是一种重要的、常用的黑盒测试方法:把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例;将不能穷举的测试过程进行合理分类,保证设计出来的测试用例具有完整性和代表性。优点:采用少量测试用例就能实现不错的覆盖率,并最大限度降低测试的冗余,等价类划分方法基础,所谓等价类是指某个输入域的子集合 在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,它们具有等价性,即每一类的代表性数据在测试中
3、的作用都等价于这一类中的其它数据。因此,对于表征该类的数据输入将能代表整个子集合的输入。进而,可以合理的假定:测试某等价类的代表值等效于这一类其它值的测试,等价类划分方法基础,等价类是输入域的某个子集合,而所有等价类的并集就是整个输入域。等价类对于测试有两个重要的特征:完备性并集为整个输入域无冗余性等价类互不相交,等价类划分方法基础,(1)有效等价类 是指对软件规格说明而言,有意义的、合理的输入数据所组成的集合。利用有效等价类,能够检验被测系统是否实现了规格说明中预先规定的功能和性能。(2)无效等价类 是指对软件规格说明而言,无意义的、不合理的输入数据所构成的集合。利用无效等价类,可以鉴别被测
4、系统的容错性,如:异常输入处理的情况等。,(1)有效等价类(2)无效等价类,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。,如何划分?先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分两个或多个等价类,形成若干的互不相交的子集。(1)选择等价类划分准则(2)确定等价类,列出等价类表,等价类划分方法基础,(1)按照区间划分 在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。,例:程序输入条件为小于100大于10的整数x则有效等价类为10 x100,两个无效等价类
5、为x10和x100。,例:程序输入x取值于一个固定的枚举类型1,3,7,15,且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、x=7、x=15,无效等价类为x1,3,7,15的值的集合。,(2)按照数值划分 在规定了一组输入数据(假设包括 n个 输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。,(3)按照数值集合划分 在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)。,例:程序输入条件为取值为奇数的整数
6、x,则有效等价类为x的值为奇数的整数,无效等价类为x的值不为奇数的整数。,(3)按照数值集合划分 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类,例:程序输入条件为以字符a开头、长度为8的字符串,并且字符串不包含a z之外的其它字符,则有效等价类为满足了上述所有条件的字符串,无效等价类为:不以a开头的字符串、长度不为8的字符串和包含了a z之外其它字符的字符串。,(4)按照限制条件或规则划分 在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。,(5)细分等价类 在确知已划分的等价类中各元素在程序中的
7、处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表。,黑盒测试方法等价类划分,根据等价类创建测试用例的具体步骤,1、建立等价类表,列出所有等价类:2、为每个等价类规定一个唯一的编号;3、设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类;4、重复3,使得所有有效等价类均被测试用例覆盖;5、设计一个新的测试用例,使其只覆盖一个无效等价类;7、重复5,使所有无效等价类均被覆盖,黑盒测试方法等价类划分,实例1,人寿保险费率(基本保险费0.50),人寿保险费率对应等价类,保险公司的人寿保险费率依点数不同而有别,10点及10点以上保险费为0.6%,10点以下保险费率
8、为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:,(1)分析程序规格说明中给出和隐含的对输入条件的要求年龄:一位或两位非零整数,值的有效范围为199性别:一位英文字符,只能取值M或F婚姻:字符,只能取值已婚或未婚抚养人数:空白或一位非零整数(19)点数:一位或两位非零整数,值的范围为199,(2)等价类表,(3)依照等价类表设计能覆盖所有等价类的测试用例,在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下:用户名 要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字;密码 要求为616位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。,找零钱最佳组合 假设商店货品价格(R)都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1)四种。请按照等价类划分法为上述程序设计出相应的测试用例。,习题,