1、软件测试基础,http:/training.tf-,西南财经大学天府学院,等价类划分,知识回顾 - 软件测试方法,从是否执行被测程序来划分?从是否针对系统内部结构来划分?,知识回顾 - 黑盒测试设计用例的方法,等价类划分,边界值分析,因果图法,错误猜测,其他,等价类划分,什么是等价类划分,等价类设计用例步骤,等价类划分原则,目 录,集合,什么是集合?如:一箱苹果一年中只有30天的月份 M1 = 4月,6月,9月,11月一般来说,某些指定对象的全体的全体就构成了一个集合,这些对象就叫元素。,集合的基础理论,4月M1 12月M1 集合与成员之间的关系 空集(A1A2An=A ) 并集 (A1A2A
2、n=A ) 交集,等价类, 等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。 子集合的特征:完备性、无冗余,根据测试用例的完整性可以划分 弱等价类测试 强等价类测试,弱等价类测试,弱一般等价类测试 通过使用一个测试用例中的每个等价类(区间)的一个变量实现 弱健壮等价类测试 “弱”:是因为有单缺陷假设 “健壮”:是因为考虑了无效值,弱健壮等价类测试,健壮性测试 健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。 容错性测试通常构造一些不合理的输入来引诱软件出错,例如: 输入错误的数据类型 输入定义域之外的数
3、值,强等价类测试,强一般等价类测试 强一般等价类测试基于多缺陷假设,因此需要等价类笛卡尔积的每个元素对应的测试用例 强健壮等价类测试 “强”:是因为有多缺陷假设 “健壮”:是因为考虑了无效值,强一般等价类具有笛卡尔积的“完备性”: 覆盖所有的等价类 有可能的输入组合中的一个,x1,强健壮等价类测试 “健壮”:是因为考虑了无效值 “强”:是因为有多缺陷假设,等价类分类,有效等价类,无效等价类,等价类划分法, 等价类划分法指的是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。 子集包含:有效等价类、无效等价类,等价类划分法的优点,
4、能以较少的具有代表性的数据进行测试,而取得较好的测试效果。,等价类划分设计原则,如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类例: 输入值是学生成绩,范围是0100,0 100,有效等价类 0成绩100,无效等价类 0成绩,无效等价类 成绩100,等价类划分设计原则,在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类 。 如:用银行卡取钱的时候,连续输入密码的次数不得超过3次。 有效等价类: 3 无效等价类: 3,等价类划分设计原则,如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类;,等价类划分设计原则,在
5、规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。如:输入条件说明省份可为:四川、广东、河北、山东、湖南、湖北六种之一,则分别取这六个值作为六个有效等价类,另外把六个省份之外的任何省份作为无效等价类。,等价类划分设计原则,如果规定了输入数据必须遵循的规则,可确定一个有效等价类(符合规则)和n个无效等价类(从不同角度违反规则)例:规定的输入是非0的正整数 有效等价类:非0的正整数 无效等价类:0,字符串、负数、小数 ,等价类划分设计原则,在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小
6、的等价类例:出生年月_(格式:YYYYMM,如:198509)等价类分割: 年:1900YYYY当前时间; 月:1MM 12,用等价类划分法设计测试用例步骤,第 一 步,第 二 步,第 三 步,1.形成等价类表 2.每一等价类规定一个唯一的编号,1.设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类; 2.重复这一步骤,直到所有有效等价类均被测试用例所覆盖,1.设计一新测试用例,使其只覆盖一个无效等价类 2.重复这一步骤直到所有无效等价类均被覆盖;,例:某报表处理系统要求用户输入处理报表的日期,日期限制在2001年1月至2005年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范
7、围内,则显示输入错误信息。(1)系统日期规定由年、月的6位数字字符组成(2)前四位代表年,后两位代表月。,实例应用,输入等价类 有效等价类 无效等价类,报表日期的 类型及长度,6位数字字符(1),有非数字字符 (4) 少于6个数字字符 (5) 多于6个数字字符 (6),年份范围,在20012005之间(2),小于2001 (7) 大于2005 (8),月份范围,在112之间(3),小于1 (9) 大于12 (10),等价类划分,对表中编号为1,2,3的3个有效等价类用一个测试用例覆盖:,测试数据 期望结果 覆盖范围,200105,等价类(1)(2)(3),输入有效,第二步:为有效等价类设计测试
8、用例,测试数据 期望结果 覆盖范围,001MAY,等价类(4),输入无效,20015,等价类(5),输入无效,2001005,等价类(6),输入无效,200005,等价类(7),输入无效,200805,等价类(8),输入无效,200100,等价类(9),输入无效,200113,等价类(10),输入无效,不能出现相同 的测试用例,本例的10个等价类至 少需要8个测试用例,第三步:为每一个无效等价类设计至少一个测试用例,课堂练习,用户注册登 录 名:_(由数字或字母组成,以字母开头,长度4-16位)年 龄:_(0150之间的正整数)学 历:_(专科、本科、硕士、博士)出生 日期:_(格式:YYYY-MM-DD,如:1900-01-01),Thank You!,http:/training.tf-,