软件测试白盒黑盒测试第2章(4)解答
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x2
g
从所有等价类笛
卡尔积的每个元
f
素中获得的测试
用例
e
a
b
c
d
x1
强健壮等价类测试用例
使用等价类划分法测试的实例
• 实例1 三角形问题
分析:在多数情况下,是从输入域划分等价类的,但 并非不能从被测程序的输出域反过来定义等价类, 事实上,这对于三角形问题却是最简单的划分方法。 在三角形问题中,有四种可能的输出:等边三角形、 等腰三角形、一般三角形和非三角形。利用这些信 息能够确定下列输出(值域)等价类。
x2
g 这三个测试用
例使用每个等
f
价类中的一个 值
e
x1
a
b
c
d
弱一般等价类测试用例
强一般等价类测试
• 强一般等价类测试基于多缺陷假设,因此需要等价类笛卡 尔积的每个元素对应的测试用例。
• 笛卡尔积可保证两种意义上的“完备性”:一是覆盖所有 的等价类,二是有可能的输入组合中的一个。
x2 g
f
e
a
b
c
d
强一般等价类测试用例
“好的”等价 类测试的关键 是等价关系的
选择!
x1
弱健壮等价类测试
• 怎么能既弱又健壮呢? • ---健壮,是因为这种测试考虑了无效值; • ---弱,是因为有单缺陷假设。
x2 g
f
e
x1
a
b
c
d
弱健壮等价类测试用例
强健壮等价类测试
• 健壮,所以这种测试要考虑无效值; • 强,所以这种测试要具有多缺陷假设
(1)如果不满足条件4、条件5和条件6中的一个, 则程序输出为“非三角形”。
(2)如果三条边相等,则程序输出为“等边三角 形”。
(3)如果恰好有两条边相等,则程序输出为“等腰 三角形”。
(4)如果三条边都不相等,则程序输出为“一般三 角形”。
• 结论:三角形问题的复杂之处在于输入与输出之间
2、NextDate函数
例:程序输入条件为以字符‘a’开头、长度为8的字符串,并 且字符串不包含‘a’~ ‘z’之外的其它字符,则有效等价类为 满足了上述所有条件的字符串,无效等价类为不以‘a’开头的 字符串、长度不为8的字符串和包含了‘a’~ ‘z’之外其它字符 的字符串。 (5)细分等价类 在确知已划分的等价类中各元素在程序中 的处理方式不同的情况下,则应再将该等价类进一步划分为 更小的等价类,并建立等价类表。
等价类的划分原则
• 进行等价类划分的依据:
(1)按照区间划分 在输入条件规定了取值范围或值的个数 的情况下,可以确定一个有效等价类和两个无效等价类。
例:程序输入条件为小于100大于10的整数x,则有效等价类 为10<x<100,两个无效等价类为x≤10和x≥100。
等价类的划分原则
• 进行等价类划分的依据:
图2-14 黑盒测试示意图
2.3.1黑盒测试和白盒测试的异同
1. 执行测试人员不同 黑盒测试通常由用户以及非开发人员来进行;
而白盒测试通常要由了解软件内部结构的开发人 员来做。 2. 测试覆盖目标不同
如果我们用一个盒子来代替整个软件系统, 那么黑盒测试可以看成是一种系统测试。而对盒 子内部的多个单元的测试就可以称作为白盒测试。
要用到MODEM,测试中考虑对设备的共享); • 考虑特殊情况(如内存和硬件的冲突等); • 设计极端情况(如破坏性测试等); • 好的测试用例集能花费最小的代价(人力、物力、
财力、时间)做最好的测试。
测试用例设计书写标准
测试用例编写主要元素如下: • 标识符——惟一标识每一个测试用例 • 测试项——准确的描述所需要测试的项及其特征 • 测试环境要求——表征执行该测试用例需要的测试环境 • 输入标准——执行测试用例的输入需求(这些输入可能
等价类划分法
• 等价类划分法是把所有可能的输入数据,即程序 的输入域划分为若干部分(子集),然后从每一 个子集中选取少数具有代表性的数据作为测试用 例。
• 所谓等价类是指某个输入域的子集合。在该子集 合中,各个输入数据对于揭露程序中的错误都是 等效的,它们具有等价特性,即每一类的代表性 数据在测试中的作用都等价于这一类中的其它数 据。这样,对于表征该类的数据输入将能代表整 个子集合的输入。因此,可以合理的假定:
4、测试方法不同
一个最普通的区别就是行为测试设计是基于 功能需求来定义测试,而结构测试则是基于代码 本身来定义测试的。这就是两种设计测试的方法。 因为行为测试是基于外部功能定义的,所以称作 黑盒测试;结构测试则是基于代码内部结构来定 义的,所以称作白盒测试。
5、评估测试方法不同
一些技术是使用代码工具来跟踪软件内部的 工作过程,因此称为白盒测试技术。与之相比, 黑盒测试技术只是简单的观察程序的正常输出。
另外一种区别就是,二者的覆盖目标不同。 黑盒测试的目标是覆盖所有的用户需求;而白盒 测试的目标是覆盖所有的代码。
3、测试动机不同
有效的安全测试有时也需要详细了解代码以 及系统结构,此时把这些技术称作白盒测试。
另外一种风险测试的目标可能就只是测试软 件是否能够为用户提供预期输出。可用性测试就 是如此,所以被称作黑盒测试。
下条件:
条件1 1≤a≤100
条件4 a<b+c
条件2 1≤b≤100
条件5 b<a+c
条件3 1≤c≤100
条件6 c<a+b
• 如果输入值a、b、c不满足条件1、条件2和条件3 , 程序给出“边的取值超出允许范围”的信息。
• 如果输入值a、b、c 满足条件1、条件2和条件3, 则输出下列四种情况之一:
——测试某等价类的代表值就是等效于对于这 一类其它值的测试。
等价类的划分原则
如何划分?——先从程序的规格说明书中找出各个 输入条件,再为每个输入条件划分两个或多个等 价类,形成若干的互不相交的子集。
• 采用等价类划分法设计测试用例通常分两步进行: (1)确定等价类,列出等价类表。 (2)确定测试用例。
等价类的划分原则
(3)按照数值集合划分 在输入条件规定了输入值的集合或 规定了“必须如何”的条件下,可以确定一个有效等价类和 一个无效等价类(该集合有效值之外)。
例:程序输入条件为取值为奇数的整数x,则有效等价类为x 的值为奇数的整数,无效等价类为x的值不为奇数的整数。
等价类的划分原则
(4)按照限制条件或规则划分 在规定了输入数据必须遵守 的规则或限制条件的情况下,可确定一个有效等价类(符合 规则)和若干个无效等价类(从不同角度违反规则)。
(3)检测程序初始化和终止方面的错误。
三角形问题与NextDate函数
1、三角形问题
输入三个整数a、b、c,分别作为三角形的三 条边,现通过程序判断由三条边构成的三角形的类 型为等边三角形、等腰三角形、一般三角形(特殊 的还有直角三角形),以及构不成三角形。
现在要求输入三个整数a、b、c,必须满足以
等价类划分法
举例:设计这样的测试用例,来实现一个对所有实 数进行开平方运算( y = sqrt(x) )的程序的测试。
➢ 思考方向: 由于开平方运算只对非负实数有效,这时需
要将所有的实数(输入域x)进行划分,可以分成: 正实数、0 和 负实数。假设我们选定+1.4444代 表正实数,-2.345代表负实数,则为该程序设计 的测试用例的输入为+1.4444、 0 和 -2.345。
2.3黑盒测试
黑盒测试也称作功能测试和行为测试,主要 是根据功能需求来测试程序是否按照预期工作。 黑盒测试的目的是尽量发现代码所表现的外部行为 的错误,主要有以下几类:
⑴功能不正确或不完整; ⑵接口错误; ⑶接口所使用的数据结构错误; ⑷行为或性能错误; ⑸初始化和终止错误。
黑盒测试的示意图如图2-14 所示。从图2-14 中,我们可以看出黑盒测试只考虑程序的输 入和输出,无须考虑程序的内部代码。
(3)设计一个新的测试用例,使它仅覆盖一个尚未 覆盖的无效等价类。重复这一步骤,直到所有的 无效等价类均被测试用例所覆盖。
常见等价类划分测试形式
• 针对是否对无效数据进行测试,可以将等价类测 试分为 标准等价类测试和健壮等价类测试。
➢ 标准等价类测试——不考虑无效数据值,测试用 例使用每个等价类中的一个值。
2.3.2黑盒测试的用例设计
常用的黑盒测试用例设计方法主要有以下 几种:等价类划分方法,边界值分析方法,因果 图方法,判定表驱动分析方法,正交实验设计方 法等。
黑盒测试法的概念
• 黑盒测试被称为功能测试或数据驱动测试。在测试 时,把被测程序视为一个不能打开的黑盒子,在完 全不考虑程序内部结构和内部特性的情况下进行。
➢ 健壮等价类测试——主要的出发点是考虑了无效 等价类。对有效输入,测试用例从每个有效等价 类中取一个值; 对无效输入,一个测试用例有一 个无效值,其他值均取有效值。
为了便于理解,我们将讨论两变量x1和x2函数F。 如果F实现为一个程序,输入变量x1和x2拥有以下 边界以及边界内的区间:
a<= x1 <=d,区间为:[a,b ),[b,c),[c,d] e<= x2 <=g,区间为:[e,f),[f,g]
NextDate函数说明另一种复杂的关系,即输入 变量之间逻辑关系的复杂性。
NextDate函数包含三个变量month、day和ye ar,函数的输出为输入日期后一天的日期。 要求输 入变量month、day和year均为整数值,并且满足下 列条件:
条件1 1≤ month ≤12
条件2 1≤ day ≤31
包括数据、文件或者操作) • 输出标准——按照指定的环境和输入标准得到的期望输
出结果 • 测试用例之间的关联——标识该测试用例与其它的测试
(或其它测试用例)之间的依赖关系
等价类划分法
• 等价类划分法是一种重要的、常用的黑盒测试方 法,它将不能穷举的测试过程进行合理分类,从 而保证设计出来的测试用例具有完整性和代表性。
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不能组成三角形 }
条件3 1812≤ year ≤2012
• 结论:在NextDate函数中有两种复杂性的输入来源, 一是输入域的复杂性,二是确定闰年的规则并要增 加“额外天”。
设计测试用例的基本准则
• 测试用例的代表性 能够代表并覆盖各种合理的和不合理的、合法 的和非法的、边界的和越界的以及极限的输入 数据、操作和环境设置等。
• 测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个 测试用例都应有相应的期望结果。
• 测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是 相同的。
设计测试用例的着眼点
• 根据产品规格,测试基本功能; • 考虑设计一般用户(非专业人员)的使用方案; • 考虑设计稀有或特殊的使用方案; • 与系统其他组成部分的配合(如FAX和上网可能
等价类划分法的测试用例设计
• 在设计测试用例时,应同时考虑有效等价类和无 效等价类测试用例的设计。
• 根据已列出的等价类表可确定测试用例,具体过 程如下:
(1)首先为等价类表中的每一个等价类分别规定一 个唯一的编号。
(2)设计一个新的测试用例,使它能够尽量覆盖尚 未覆盖的有效等价类。重复这个步骤,直到所有 的有效等价类均被测试用例所覆盖。
其中,方括号和圆括号分别表示闭区间和开区间的 端点。 x1和x2的无效值是: x1 <a, x1 >d,以 及x2 <e,x2 >g。
弱一般等价类测试
弱一般等价类测试通过使用一个测试用例中的每 个等价类(区间)的一个变量实现(注意单边缺 陷假设的作用)。对于前面给出的例子,可以得 到如图所示的弱一般等价类测试用例。
• 采用黑盒测试的目的主要是在已知软件产品所应具 有的功能的基础上,进行:
(1)检查程序功能能否按需求规格说明书的规定正 常使用,测试各个功能是否有遗漏,检测性能等特 性要求是否满足。
黑盒测试法的概念
(2)检测人机交互是否错误,检测数据结构或外部 数据库访问是否错误,程序是否能适当地接收输入 数据而产生正确的输出结果,并保持外部信息(如 数据库或文件)的完整百度文库。
(2)按照数值划分 在规定了一组输入数据(假设包括 n个 输入值),并且程序要对每一个输入值分别进行处理的情况 下,可确定 n 个有效等价类(每个值确定一个有效等价类) 和一个无效等价类(所有不允许的输入值的集合)。
例:程序输入x取值于一个固定的枚举类型{1,3,7,15},且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x≠1,3,7,15的值的集合。