第3章 黑盒测试及其实例设计



《第3章 黑盒测试及其实例设计》由会员分享,可在线阅读,更多相关《第3章 黑盒测试及其实例设计(48页珍藏版)》请在文档大全上搜索。
1、第第3章章 黑盒测试及其黑盒测试及其 实例设计实例设计 本章概述本章概述 黑盒测试是软件测试技术中最基本的方法之一,在各类测试中都有广泛的应用。本章将介绍黑盒测试的基本概念与基本方法,并重点介绍应用较为广泛的几种测试方法:等价类划分法、边界值分析法、决策表法和因果图法,并通过典型实例详细介绍实际测试技术的基本运用。 第第3章章 黑盒测试及其实例设计黑盒测试及其实例设计 3.1 黑盒测试概述3.2 等价类划分法3.3 边界值分析法3.4决策表法3.5因果图法3.6实例设计3.7 测试方法的选择小结习题3.1 黑盒测试概述黑盒测试概述 黑盒测试黑盒测试又称为功能测试或数据驱动测试,是从用户观点出发
2、,主要以软件规格说明书为依据,对程序功能和程序接口进行的测试。黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,它不涉及到程序的内部结构。很明显,如果外部特性本身有问题或规格说明书的规定有误,用黑盒测试方法是发现不了的。黑盒测试方黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试,主要是为了发法着重测试软件的功能需求,是在程序接口上进行测试,主要是为了发现以下错误:现以下错误:l 是否有不正确的功能,是否有遗漏的功能;l 在接口上,是否能够正确地接收输入数据并产生正确的输出结果;l 是否有数据结构错误或外部信息访问错误;l 性能上是否能够满足要求;l 是否有程序初始
3、化和终止方面的错误。黑盒测试的各种方法中,应用较为广泛的测试方法有以下几种:等价类划分法、边界值分析法、决策表法和因果图法。这些方法是比较实用的,但采用什么方法,在使用时自然要针对开发项目的特点对设计方法进行适当的选择。3.2 等价类划分法等价类划分法3.2.1 等价类划分法等价类划分法等价类划分法等价类划分法是黑盒测试用例设计中一种常用的设计方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。在划分等价类的过程中,不但要考虑有效等价类划分,同时也要考虑无效等价类划分:l有效等价类是指对软件规格说明来说,合理、有意义的输入数据所构成的集合。l无效等价类则和有
4、效等价类相反,即不满足程序输入要求或者无效的输入数据所构成的集合。划分等价类的几个原则:划分等价类的几个原则:l如果规定了输入条件的取值范围或者个数,则可以确定一个有效等价类和两个无效等价类。l如果规定了输入值的集合,则可以确定一个有效等价类和一个无效等价类。l如果规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可为每一个值确定一个有效等价类,此外根据这组值确定一个无效等价类,即所有不允许的输入值的集合。l如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。l如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类。输入
5、条件有效等价类无效等价类表3-1 等价类表在确立了等价类之后,建立等价类表,列出所有划分出的等价类,如表3-1所示 3.2.2 常见等价类划分形式常见等价类划分形式1.标准等价类测试标准等价类测试标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值。通常,标准等价类测试用例的数量和最大等价类中元素的数目相等。以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形以及不构成三角形。在多数情况下,是从输入域划分等价类,但对于三角形问题,从输出域来定义等价类是最简单的划分方法。因此,利
6、用这些信息可以确定下列值域等价类:R1=a,b,c:边为a,b,c 的等边三角形R2=a,b,c:边为a,b,c 的等腰三角形R3=a,b,c:边为a,b,c 的一般三角形R4=a,b,c:边为a,b,c 不能构成三角形4个标准等价类测试用例如表3-2所示。测试用例abc预期输出TC1202020等边三角形TC2202010等腰三角形TC35810一般三角形TC43610不构成三角形表3-2 三角形问题的标准等价类测试用例2.健壮等价类测试健壮等价类测试健壮等价类测试主要的出发点出发点是考虑了无效等价类。对有效输入,测试用例从每个有效等价类中取一个值; 对无效输入,一个测试用例有一个无效值,其
7、他值均取有效值。健壮等价类测试存在两个问题:健壮等价类测试存在两个问题:o需要花费精力定义无效测试用例的期望输出;o对强类型的语言没有必要考虑无效的输入 。对于上述三角形问题,取a、b、c的无效值产生了7个健壮等价类测试用例,如表3-3所示。测试用例abc预期输出TC1345一般三角形TC2-144a值超出定义域范围TC34-14b值超出定义域范围TC444-1c值超出定义域范围TC510144a值超出定义域范围TC641014b值超出定义域范围TC744101c值超出定义域范围 表3-3 三角形问题的健壮等价类测试用例3.对等区间划分 对等区间划分是测试用例设计的非常规形式化的方法。它将被测
8、对象的输入/输出划分成一些区间,被测软件对一个特定区间的任何值都是等价的。形成测试区间的数据不只是函数/过程的参数,也可以是程序可以访问的全局变量、系统资源等,这些变量或资源可以是以时间形式存在的数据,或以状态形式存在的输入/输出序列。 举例说明如下:举例说明如下: 平方根函数要求当输入值为0或大于0时,返回输入数的平方根;当输入值小于0时,显示错误信息“平方根错误,输入值小于0”,并返回0。 考虑平方根函数的测试用例区间,可以划分出两个输入区间和两个输出区间,如表3-4所示。输入区间输出区间=0=0BError表3-4 区间划分通过分析,可以用2个测试用例来测试4个区间:测试用例1:输入4,
9、返回2 /区间和a测试用例2:输入-10,返回0,输出“平方根错误,输入值小于0”/区间和b 3.2.3 等价类划分法测试用例等价类划分法测试用例在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下:用户名要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字;密码要求为616位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。分析如下:分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类),如表3-5所示。输入条件有效等价类编号无效等价类编号用户名416位1少于4位8多于16位9首字符为字母2首字
10、符为除字母、数字之外的其他字符10首字符为数字3英文字母、数字、“-”、“_”组合4组合中含有除英文字母、数字、“-”、“_”之外的其他特殊字符11密码616位5少于6位12多于16位13英文字母、数字、“-”、“_”组合6组合中含有除英文字母、数字、“-”、“_”之外的其他特殊字符14确认密码内容同密码相同7内容同密码相同,但字母大小写不同15表3-5 等价类表根据上述等价类表,设计测试用例如表3-6所示。测试用例用户名密码确认密码预期输出TC1abc_2000abc_123abc_123注册成功TC22000-abc123-abc123-abc注册成功TC3abc1234567812345
11、678提示用户名错误TC4abcdefghijk1234561234567812345678提示用户名错误TC5_abc1231234567812345678提示用户名错误TC6abc&1231234567812345678提示用户名错误TC7abc_1231234512345提示密码错误TC8abc_123abcdefghijk123456abcdefghijk123456提示密码错误TC9abc_123abc&123abc&123提示密码错误TC10abc_123abc_123Abc_123提示密码错误表3-6 测试用例3.3 边界值分析法边界值分析法3.3.1 边