《《等价类划分方法》ppt课件》由会员分享,可在线阅读,更多相关《《等价类划分方法》ppt课件(35页珍藏版)》请在金锄头文库上搜索。
1、测试用例设计,黑盒测试 等价类划分法 边界值分析法 因果图法 错误推测法 功能图法,白盒测试 基本路径测试法 逻辑覆盖法 语句覆盖法 判定覆盖法 条件覆盖法 判定-条件覆盖法 条件组合覆盖法 路径覆盖法,测试用例的定义和特征,测试用例的定义: (1)测试用例是为特定的目的而设计的一组测试输入、 执行条件和预期的结果的集合。 (2)测试用例是有效的发现软件缺陷的最小测试执行单元。 测试用例的特征: (1)最有可能抓住错误的; (2)不是重复的、多余的; (3)一组相似测试用例中最有效的; (4)既不是太简单,也不是太复杂。,设计测试用例的基本准则,测试用例的代表性 能够代表并覆盖各种合理的和不合
2、理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。 测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。 测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的。,黑盒测试 称为功能性测试或数据驱动测试。,等价类划分法的思想,等价类划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。 并合理地假定:测试某等价类的代表值就等效于对这一类其他值的测试。,等价类
3、的类型,*有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。 利用有效等价类可检验程序是否实现了规格说明书中所规定的功能和性能 *无效等价类:是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。 利用无效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。,等价类的划分原则,(1)按照区间划分在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。,例:程序输入条件为小于100且大于10的整数x, 有效等价类为10x100 两个无效等价类为x10和x100。,例:程序输入x取值于一
4、个固定的枚举类型1,3,7,15,且程序对这4个数值分别进行了处理。 有效等价类为x=1、x=3、x=7、x=15, 无效等价类为x1,3,7,15的值的集合。,(2)按照数值划分在规定了一组输入数据(假设包括 n个输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。,(3)按照数值集合划分在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)。 例:程序输入用户口令的长度必须是4位的串,可以确定一个有效等价类是串的长度为4, 一个
5、无效等价类长度不为4。,(4)按照限制条件或规则划分在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。 例:程序输入条件为取值为奇数的整数x, 则有效等价类为x的值为奇数的整数 无效等价类为x的值为不满足其中任何一个条件或所有条件的输入的集合。,(5)细分等价类在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表。 例:程序输入条件为以字符a开头、长度为8的字符串,并且字符串不包含a z之外的其它字符,则有效等价类为满足了上述所有条件的字符串,无效等价类为不
6、以a开头的字符串、长度不为8的字符串和包含了a z之外其它字符的字符串。,(6)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。 例:程序输入条件为BOOL x=true,有效等价类为x=true,无效等价类为x=false。,等价类划分法的步骤,(1)确定等价类 (2)建立等价类表,列出所有划分出的等价类 (3)从划分出的等价类中按以下的3个原则设计测试用例: A 为每一个等价类规定一个唯一的编号 B 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。 C 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等
7、价类,重复这一步,直到所有的无效等价类都被覆盖为止。,确定等价类的方法,先考虑输入数据的类型(合法型和非法型) 再考虑数据范围(合法型中的合法区间和非法区间) 最后考虑输出结果,逆向设定输入,举例,输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。,(1) 确定等价类,设a、b、c代表三角形的三条边。 a) 整数 b) 3个数 c) 非零数 d) 正数 e) 两边之和大于第三边 f) 两边相等 g) 三边相等,2)列出等价类表并编号,练习,现有一个小程序,能够求出三个在-100到+100间整数中的最大者
8、,程序界面如下:,2.等价类划分法,(1)弱一般等价类测试 特点: 不考虑无效数据,测试用例使用部分有效等价类中的一个值,a,b,c,d,e,f,g,x2,x1,2.等价类划分法,(2)强一般等价类测试 特点:每一个有效等价类要选择至少一个测试用例,a,b,c,d,e,f,g,x2,x1,2.等价类划分方法,(3)弱健壮等价类测试 对于有效输入: 使用部分有效类的个值 对于无效输入: 使用部分无效值,a,b,c,d,e,f,g,x2,x1,2.等价类划分方法,(4)强健壮等价类测试 每个有效等价类和无效等价类都至少要选择一个测试用例,三角形问题4个标准等价类测试用例,练习3:NextDate函
9、数 NextDate函数有三个变量month,day,year的函数,输出为输入日期下一天的日期。如:输入为2007年7月19日,输出为2007年7月20日。要求三个变量都为整数,且满足: 条件:1 month 12 条件2:1 day 31 条件3:1912 year 2050,(1)划分等价类1,Year Month Day的有效值区间定义如下: M1=month: 1month 12 D1=day: 1 day 31 Y1=year: 1912 year 2050,(1)划分等价类2,无效等价类是: M2=month: month12 D2=day: day31 Y2=year: yea
10、r2050,NextDate函数的弱健壮等价类测试用例,NextDate函数的强健壮等价类测试用例(部分),续:详细的等价类划分,考虑对输入日期的处理: M1=month: month有30天 M2=month: month有31天 M3=month: month是2月 D1=day: 1 day 28 D2=day: day=29 D3=day: day=30 D4=day: day=31,Y1=year: year=2000 Y2=year: year是闰年 Y3=year: year是平年,弱一般等价类测试用例,强一般等价类测试用例,作业:,某城市电话号码由三部分组成。它们的名称和内容分别是: 地区码:空白或必须为0952; 前 缀:非0 的三位数字; 后 缀:4位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。,