软件测试第二章单元测试课件

上传人:我*** 文档编号:137991523 上传时间:2020-07-13 格式:PPT 页数:45 大小:281.50KB
返回 下载 相关 举报
软件测试第二章单元测试课件_第1页
第1页 / 共45页
软件测试第二章单元测试课件_第2页
第2页 / 共45页
软件测试第二章单元测试课件_第3页
第3页 / 共45页
软件测试第二章单元测试课件_第4页
第4页 / 共45页
软件测试第二章单元测试课件_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《软件测试第二章单元测试课件》由会员分享,可在线阅读,更多相关《软件测试第二章单元测试课件(45页珍藏版)》请在金锄头文库上搜索。

1、第二章 单元测试-黑盒测试用例设计(等价类划分法),黑盒测试,黑盒测试被称为功能测试或数据驱动测试。在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。 采用黑盒测试的目的主要是在已知软件产品所应具有的功能的基础上,进行: (1)检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足。 (2)检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)的完整性。 (3)检测程序初始化和终止方面的错误。,黑盒测试称为功能性测试或数

2、据驱动测试。,等价类划分法的思想-1,等价列划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。,等价类划分法的思想-2,定义:将程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。 原因:由于实现穷举测试的不可能性,只有从大量的可能数据中选取一部分作为测试用例。 效果:经过类别划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。 手段:在设计测试用例时,在需求说明的基础上划分等价类,列出等价表,从而确定测试用例。,等价类的类型,*有效等价类:是指对于程序的规格说明来说是合理的、

3、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能 *无效等价类:是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。利用无效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。,等价类对于测试有两个重要的意义: 完备性整个输入域提供一种形式的完备性 无冗余性若互不相交则可保证一种形式的无冗余性。,如何划分等价类1,如何划分?先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分两个或多个等价类,形成若干的互不相交的子集。,如何划分等价类,举例:划分 加法器程序的等价类,给出测试用例 给出

4、的 测试用例 都是整数,如果输入的是小数、字符怎么办? 只考虑了输入数据的范围,没有考虑输入数据的类型。,考虑输入数据类型和范围,加数:,数值,非数值,整数,小数(4),1100(2),100(3),字母(5),特殊字符(6),空格(7),空白(8),1(1),等价类划分步骤,(1)先考虑输入数据的类型(合法型和非法型) (2)再考虑数据范围(合法型中的合法区间和非法区间) (3)画出示意图,区分等价类 (4)为每一个等价类编号。,等价类的划分原则,(1)按照区间划分在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。,例:程序输入条件为小于100大于10的整数

5、x,则有效等价类为10 x100,两个无效等价类为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、值之外)。 例:程序输入用户口令的长度必须是4位的串,可以确定一个有效等价类是串的长度为4,一个无效等价类长度不为4。,(4)按照限制条件或规则划分在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。 例:程序输入条件为取值为奇数的整数x,则有效等价类为x的值为奇数的整数,无效等价类为x的值不为奇数的整数。,(5)细分等价类在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表。 例:程序输入条件为以字符a开头、长度为8的字符串,并且字符串不包含a z之外的其它

7、字符,则有效等价类为满足了上述所有条件的字符串,无效等价类为不以a开头的字符串、长度不为8的字符串和包含了a z之外其它字符的字符串。,等价类划分法设计测试用例的步骤,(1)确定等价类 (2)建立等价类表,列出所有划分出的等价类 (3)从划分出的等价类中按以下的3个原则设计测试用例: A 为每一个等价类规定一个唯一的编号 B 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。 C 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。,常见等价类划分测试形式,针对是否对无效数据进行测

8、试,可以将等价类测试分为两种: 标准等价类测试(也称,一般等价类测试) 健壮等价类测试,标准(一般)等价类测试,不考虑无效数据值,测试用例使用每个等价类中的一个值; 通常,标准等价类测试用例的数量和最大等价类中元素的数目相等。,健壮等价类测试,出发点考虑了无效等价类; 对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值; 存在问题: 规格说明往往没有定义无效测试用例的期望输出,因此需要定义这些测试用例的期望输出; 对强类型语言没有必要考虑无效的输入。,等价类划分法,常见的等价类划分测试形式 问题:某函数F有两个变量x1,x2.要求两输入变量的

9、取值范围如下: a x1d,区间为a,b, (b,c) ,c,d e x2 g,区间为e,f), f,g x1,x2的无效区间为: x1d; x2g,(1)弱一般等价类测试 特点: 不考虑无效数据,测试用例使用每个等价类中的一个值,a,b,c,d,e,f,g,x2,x1,(2)强一般等价类测试特点:每一个有效等价类要选择至少一个测试用例,a,b,c,d,e,f,g,x2,x1,(3)弱健壮等价类测试对于无效输入: 测试用例只使用一个无效值,其余值都是有效的。,a,b,c,d,e,f,g,x2,x1,(4)强健壮等价类测试每个有效等价类和无效等价类都至少要选择一个测试用例,a,b,c,d,e,f

10、,g,x2,x1,案例1:,1、某城市电话号码由三部分组成,分别是: 地区码 空白或三位数字; 前 缀 非0或1开头的三位数字; 后 缀 4位数字。 假定被测程序能接受一切符合上述规定的电话号码, 拒绝所有不符合规定的电话号码。,3,4,1 2,5 6 7,8 9 10 11 12,13 14 15,(1)划分等价类、列出等价类表,保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为: 投保额保险费率 其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:,案例2

11、:,计算保费费率的程序,(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。 年龄:一位或两位非零整数,值的有效范围为199 性别:一位英文字符,只能取值M或F 婚姻:字符,只能取值已婚或未婚 抚养人数:空白或一位非零整数(19) 点数 :一位或两位非零整数,值的范围为199 (2)根据(1)中的等价类表,设计能覆盖所有等价类的 测试用例。,等价类表,测试用例,练习,现有一个小程序,能够求出三个在-10000到+10000间整数中的最大者,程序界面如下:,练习2:设计出三角形问题的测试用例,输入三个整数作为三边的边长构成三角形。当此三角形为一般三角

12、形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。,练习3:NextDate函数 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)划分等

13、价类2,无效等价类是: M2=month: month12 D2=day: day31 Y2=year: year2050,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是平年,弱一般等价类测试用例,强一般等价类测试用例,总结:等价类测试的指导方针,(1)如果实现的语言是强类型语言(无效值输入会引起系统运行时出错),则没有必要使用健壮等价类测试. (2)如果错误输入检查非常重要,则应进行健壮等价类测试. (3)如果输入数据以离散区间或集合的形式定义,则等价类测试是合适的,当然也适用于变量值越界会造成故障的系统. (4)在发现合适的等价关系之前,可能需要多次尝试.,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号