软件测试 06 等价类+边界值 Part II
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
25
边界值分析
• 例:测试计算平方根的函数 ——输入:实数 ——输出:实数 ——规格说明:当输入一个0或比0大的数的时候,返回其 正平方根;当输入一个小于0的数时,显示错误信息“平方 根非法-输入值小于0”并返回0;库函数Print-Line可以用来 输出错误信息。
• 给出等价类、边界值方案? •
20
边界值分析
• 为什么使用边界值分析法? 无数的测试实践表明,大量的故障往往发生在输入定义域 或输出值域的边界上,而不是在其内部。因此,针对各种 边界情况设计测试用例,通常会取得很好的测试效果。 • 怎样用边界值分析法设计测试用例? (1)首先确定边界情况。通常输入或输出等价类的边界就是 应该着重测试的边界情况。 (2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试 数据,而不是选取等价类中的典型值或任意值。
27
边界值分析
• 通常情况下,软件测试所包含的边界检验有几种类型: 数字、字符、位置、质量、大小、速度、方位、尺寸、 空间等
• 相应地,以上类型的边界值应该在: 最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最长、 空/满等情况下
28
边界值分析
项 边界值 测试用例的设计思路
假设一个文本输入区域允许输入1个到255个 字符 起始-1个字 ,输入1个和255个字符作为有效等价类;输入0个 字符 符/结束+1 和256个字符作为无效等价类,这几个数值都属于 个字符 边界条件值。 假设某软件的数据输入域要求输入5位的数据值, 最小值-1/最 可以使用10000作为最小值、99999作为最大值; 数值 大值+1 然后使用刚好小于5位和大于5位的 数值来作为边 界条件。 小于空余空 例如在用U盘存储数据时,使用比剩余磁盘空间大 空间 间一点/大于 一点(几KB)的文件作为边界条件。 满空间一点
32
边界值分析
• 测试用例设计原则
(1) 如果输入条件规定了值的范围,则应取刚达到这个范围的 边界值以及刚刚超过这个范围边界的值作为测试输入数据。 (2) 如果输入条件规定了值的个数,则用最大个数、最小个数 和比最大个数多1个、比最小个数少1个的数作为测试数据。 (3) 根据程序规格说明的每个输出条件,使用原则 (1)。 (4) 根据程序规格说明的每个输出条件,使用原则 (2) 。 (5) 如果程序的规格说明给出的输入域或输出域是有序集合 (如有序表、顺序文件等),则应选取集合中的第一个和 最后一个元素作为测试用例。 (6) 如果程序中使用了一个内部数据结构,则应当选择这个内 部数据结构的边界上的值作为测试用例。 (7) 分析程序规格说明,找出其它可能的边界条件。 33
34
边界值分析
• 例:有两个输入变量x1(a≤x1≤b)和x2(c≤x2≤d)的程序F的 边界值分析:
•
volunteer ??
35
边界值分析
• 例1:有两个输入变量x1(a≤x1≤b)和x2(c≤x2≤d)的程序F的 边界值分析测试用例如下: { <x1nom,x2min>, <x1nom,x2min+>, <x1nom,x2nom>, <x1nom,x2max>, <x1nom,x2max->, <x1min,x2nom>, <x1min+,x2nom>, <x1max,x2nom>, <x1max-,x2nom> }
有效等价类
对于程序的规格说明来说,是合理的、有意义的输入数据所构成的集合;
无效等价类
对于程序的规格说明来说,是不合理的、没有意义的输入数据所构成的集合;
3
等价类划分
例 1:
假定一台ATM机允许提取增量为50元,总金额从100~2000(包 含2000元)不等的金额,请等价类方法进行测试。
1. 划分等价类,如下表所示。
软件质量保证与测试
1
内容
•(1)等价类划分
等价类理论 互动 “大学管理系统”等价类测试 互动
•(2)边界值分析
边界值方法 互动 “大学管理系统”边界值测试 互动
2
等价类划分
1.等价类划分
等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分( 子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。 使用等价类划分法设计测试用例时,要同时考虑有效等价类和无效等价类。
30
边界值分析
• 计算机是基于二进制进行工作的,因此,软件的任何数值 运算都有一定的范围限制。 计算机数值运算的范围 项 范围或值 位(bit) 0或1 0 ~ 255 字节(byte) 字(word) 0~65535(单字)或 0~4294967295(双字) 1024 千(K) 1048576 兆(M) 1073741824 吉(G)
分析规格说明,找出其他可能的边界条件。
18
边界值分析
例:
有一个小程序,能够求出三个在0到9999间整数中的最大者,请边 界值测试方法设计测试用例。
•
volunteer ??
19
边界值分析
例:
有一个小程序,能够求出三个在0到9999间整数中的最大者,请边 界值测试方法设计测试用例。 (1)各变量分别取略小于最小值、最小值、略大于最小值、正常值、 略小于最大值、最大值和略大于最大值,所以A、B、C分别取值为:1、0、1、5000、9998、9999、10000。 (2)设计测试用例。
23
边界值分析
• 等价类分析与边界值的区别? • 请举例说明 •
volunteer ??
24
边界值分析
• 边界值分析使用与等价类划分法相同的划分,只是边界值 分析假定错误更多地存在于划分的边界上,因此在等价类 的边界上以及两侧的情况设计测试用例。 • 例:测试计算平方根的函数 ——输入:实数
——输出:实数 ——规格说明:当输入一个0或比0大的数的时候,返回其 正平方根;当输入一个小于0的数时,显示错误信息“平方 根非法-输入值小于0”并返回0;库函数Print-Line可以用来 输出错误信息。
21
边界值分析
• 常见的边界值有哪些? •
volunteer ??
22
边界值分析
• 对16-bit 的整数而言 32767 和 -32768 是边界
• 屏幕上光标在最左上、最右下位置 • 报表的第一行和最后一行 • 数组元素的第一个和最后一个 • 循环的第 0 次、第 1 次和倒数第 2 次、最后一次
x2
c
d
a
b
x1
36
边界值分析
• 例2:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。 则采用边界值分析法设计的测试用例是:
•
volunteer ??
37
边界值分析
• 例2:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。 则采用边界值分析法设计的测试用例是: { <1,15>, <2,15>, <11,15>, <12,15>, <6,15>, <6,1>, <6,2>, <6,30>, <6,31> }
8
等价类划分
例 2:
•
volunteer ??
9
等价类划分
例 2:
10
等价类划分
例 2:
11
等价类划分
12
等价类划分
13
等价类划分
14
等价类划分
15
等价类划分
(4)
16
边界值分析
边界值分析法的定义: 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界 值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
4
5
2050
101
提示:输入无效
提示:输入无效
6
7
5Βιβλιοθήκη Baidu
等价类划分
例 1:
假定一台ATM机允许提取增量为50元,总金额从100~2000(包 含2000元)不等的金额,请等价类方法进行测试。
•
volunteer ??
6
等价类划分
假定一台ATM机允许提取增量为50元,总金额从100~2000(包 含2000元)不等的金额,请等价类方法进行测试。
1. 划分等价类,如下表所示。
有效等价类 整数 编号 1 无效等价类 浮点数 小于100 大于2000 不能被50整除 编号 4 5 6 7
在100到2000之间
能被50整除
2
3
7
等价类划分
2.设计测试用例,如下表所示。
用例编号 1 2 3 4 5 输入数据 100 100.5 50 2050 101 预期结果 提取成功 提示:输入无效 提示:输入无效 提示:输入无效 提示:输入无效 覆盖的等价类 1、2、3 4 5 6 7
38
边界值分析
• 例2:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。 则采用边界值分析法设计的测试用例是: { <1,15>, <2,15>, <11,15>, <12,15>, <6,15>, <6,1>, <6,2>, <6,30>, <6,31> } 推论:对于一个含有n个变量的程序,采用边界值分析法测试程 序会产生4n+1个测试用例。
volunteer ??
26
边界值分析
• 等价类划分: – 可以考虑作出如下划分: • 输入 (i)<0 和 (ii)>=0 • 输出 (a)>=0 和 (b) Error – 测试用例有两个: • 输入4,输出2。对应于 (ii) 和 (a) 。 • 输入-10,输出0和错误提示。对应于 (i) 和 (b) 。 • 边界值分析: – 划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数 和0。由此得到以下测试用例: • 输入 {最小负实数} • 输入 {绝对值很小的负数} • 输入 0 • 输入 {绝对值很小的正数} • 输入 {最大正实数}
有效等价类
整数 在100到2000之间 能被50整除
编号
1 2 3
无效等价类
浮点数 小于100
编号
4 5
大于2000
不能被50整除
6
7
4
等价类划分
例1
2.设计测试用例,如下表所示。
用例编号
1 2 3
输入数据
100 100.5 50
预期结果
提取成功 提示:输入无效 提示:输入无效
覆盖的等价类
1、2、3 4 5
17
边界值分析
边界值分析关注的是输入空间的边界。
确定边界值应遵循以下几条原则:
如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范 围边界的值作为测试输入数据。 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数 多一的数作为测试数据。 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和 最后一个元素作为测试数据。 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为 测试数据。
边界值分析
• 采用边界值分析测试的基本思想是:故障往往出现在输入 变量的边界值附近。 ——因此,边界值分析法利用输入变量的最小值(min)、 略大于最小值(min+)、输入值域内的任意值(nom)、略小 于最大值(max-)和最大值(max)来设计测试用例。 • 边界值分析法是基于可靠性理论中称为“单故障”的假设 ,即有两个或两个以上故障同时出现而导致软件失效的情 况很少,也就是说,软件失效基本上是由单故障引起的。 ——因此,在边界值分析法中获取测试用例的方法是: (1) 每次保留程序中一个变量,让其余的变量取正常值, 被保留的变量依次取min、min+、nom、max-和max。 (2) 对程序中的每个变量重复 (1) 。
29
边界值分析
• 在多数情况下,边界值条件是基于应用程序的功能设计而需要考 虑的因素,可以从软件的规格说明或常识中得到,也是最终用户 可以很容易发现问题的。然而,在测试用例设计过程中,某些边 界值条件是不需要呈现给用户的,或者说用户是很难注意到的, 但同时确实属于检验范畴内的边界条件,称为内部边界值条件或 子边界值条件。 • 内部边界值条件主要有下面几种: 数值的边界值检验 字符的边界值检验 小结: • 在实际的测试用例设计中,需要将基本的软件设计要求和程 序定义的要求结合起来,即结合基本边界值条件和内部边界值条 件来设计有效的测试用例
31
边界值分析
• 在计算机软件中,字符也是很重要的表示元素,其中ASCII 和Unicode是常见的编码方式。下表中列出了一些常用字符 对应的ASCII码值。
字符 空 (null) 空格 (space) 斜杠 ( / ) 0 冒号 ( : ) @ ASCII码值 0 32 47 48 58 64 字符 A a Z z 单引号 ( ‘ ) ASCII码值 65 97 90 122 96
边界值分析
• 例:测试计算平方根的函数 ——输入:实数 ——输出:实数 ——规格说明:当输入一个0或比0大的数的时候,返回其 正平方根;当输入一个小于0的数时,显示错误信息“平方 根非法-输入值小于0”并返回0;库函数Print-Line可以用来 输出错误信息。
• 给出等价类、边界值方案? •
20
边界值分析
• 为什么使用边界值分析法? 无数的测试实践表明,大量的故障往往发生在输入定义域 或输出值域的边界上,而不是在其内部。因此,针对各种 边界情况设计测试用例,通常会取得很好的测试效果。 • 怎样用边界值分析法设计测试用例? (1)首先确定边界情况。通常输入或输出等价类的边界就是 应该着重测试的边界情况。 (2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试 数据,而不是选取等价类中的典型值或任意值。
27
边界值分析
• 通常情况下,软件测试所包含的边界检验有几种类型: 数字、字符、位置、质量、大小、速度、方位、尺寸、 空间等
• 相应地,以上类型的边界值应该在: 最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最长、 空/满等情况下
28
边界值分析
项 边界值 测试用例的设计思路
假设一个文本输入区域允许输入1个到255个 字符 起始-1个字 ,输入1个和255个字符作为有效等价类;输入0个 字符 符/结束+1 和256个字符作为无效等价类,这几个数值都属于 个字符 边界条件值。 假设某软件的数据输入域要求输入5位的数据值, 最小值-1/最 可以使用10000作为最小值、99999作为最大值; 数值 大值+1 然后使用刚好小于5位和大于5位的 数值来作为边 界条件。 小于空余空 例如在用U盘存储数据时,使用比剩余磁盘空间大 空间 间一点/大于 一点(几KB)的文件作为边界条件。 满空间一点
32
边界值分析
• 测试用例设计原则
(1) 如果输入条件规定了值的范围,则应取刚达到这个范围的 边界值以及刚刚超过这个范围边界的值作为测试输入数据。 (2) 如果输入条件规定了值的个数,则用最大个数、最小个数 和比最大个数多1个、比最小个数少1个的数作为测试数据。 (3) 根据程序规格说明的每个输出条件,使用原则 (1)。 (4) 根据程序规格说明的每个输出条件,使用原则 (2) 。 (5) 如果程序的规格说明给出的输入域或输出域是有序集合 (如有序表、顺序文件等),则应选取集合中的第一个和 最后一个元素作为测试用例。 (6) 如果程序中使用了一个内部数据结构,则应当选择这个内 部数据结构的边界上的值作为测试用例。 (7) 分析程序规格说明,找出其它可能的边界条件。 33
34
边界值分析
• 例:有两个输入变量x1(a≤x1≤b)和x2(c≤x2≤d)的程序F的 边界值分析:
•
volunteer ??
35
边界值分析
• 例1:有两个输入变量x1(a≤x1≤b)和x2(c≤x2≤d)的程序F的 边界值分析测试用例如下: { <x1nom,x2min>, <x1nom,x2min+>, <x1nom,x2nom>, <x1nom,x2max>, <x1nom,x2max->, <x1min,x2nom>, <x1min+,x2nom>, <x1max,x2nom>, <x1max-,x2nom> }
有效等价类
对于程序的规格说明来说,是合理的、有意义的输入数据所构成的集合;
无效等价类
对于程序的规格说明来说,是不合理的、没有意义的输入数据所构成的集合;
3
等价类划分
例 1:
假定一台ATM机允许提取增量为50元,总金额从100~2000(包 含2000元)不等的金额,请等价类方法进行测试。
1. 划分等价类,如下表所示。
软件质量保证与测试
1
内容
•(1)等价类划分
等价类理论 互动 “大学管理系统”等价类测试 互动
•(2)边界值分析
边界值方法 互动 “大学管理系统”边界值测试 互动
2
等价类划分
1.等价类划分
等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分( 子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。 使用等价类划分法设计测试用例时,要同时考虑有效等价类和无效等价类。
30
边界值分析
• 计算机是基于二进制进行工作的,因此,软件的任何数值 运算都有一定的范围限制。 计算机数值运算的范围 项 范围或值 位(bit) 0或1 0 ~ 255 字节(byte) 字(word) 0~65535(单字)或 0~4294967295(双字) 1024 千(K) 1048576 兆(M) 1073741824 吉(G)
分析规格说明,找出其他可能的边界条件。
18
边界值分析
例:
有一个小程序,能够求出三个在0到9999间整数中的最大者,请边 界值测试方法设计测试用例。
•
volunteer ??
19
边界值分析
例:
有一个小程序,能够求出三个在0到9999间整数中的最大者,请边 界值测试方法设计测试用例。 (1)各变量分别取略小于最小值、最小值、略大于最小值、正常值、 略小于最大值、最大值和略大于最大值,所以A、B、C分别取值为:1、0、1、5000、9998、9999、10000。 (2)设计测试用例。
23
边界值分析
• 等价类分析与边界值的区别? • 请举例说明 •
volunteer ??
24
边界值分析
• 边界值分析使用与等价类划分法相同的划分,只是边界值 分析假定错误更多地存在于划分的边界上,因此在等价类 的边界上以及两侧的情况设计测试用例。 • 例:测试计算平方根的函数 ——输入:实数
——输出:实数 ——规格说明:当输入一个0或比0大的数的时候,返回其 正平方根;当输入一个小于0的数时,显示错误信息“平方 根非法-输入值小于0”并返回0;库函数Print-Line可以用来 输出错误信息。
21
边界值分析
• 常见的边界值有哪些? •
volunteer ??
22
边界值分析
• 对16-bit 的整数而言 32767 和 -32768 是边界
• 屏幕上光标在最左上、最右下位置 • 报表的第一行和最后一行 • 数组元素的第一个和最后一个 • 循环的第 0 次、第 1 次和倒数第 2 次、最后一次
x2
c
d
a
b
x1
36
边界值分析
• 例2:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。 则采用边界值分析法设计的测试用例是:
•
volunteer ??
37
边界值分析
• 例2:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。 则采用边界值分析法设计的测试用例是: { <1,15>, <2,15>, <11,15>, <12,15>, <6,15>, <6,1>, <6,2>, <6,30>, <6,31> }
8
等价类划分
例 2:
•
volunteer ??
9
等价类划分
例 2:
10
等价类划分
例 2:
11
等价类划分
12
等价类划分
13
等价类划分
14
等价类划分
15
等价类划分
(4)
16
边界值分析
边界值分析法的定义: 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界 值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
4
5
2050
101
提示:输入无效
提示:输入无效
6
7
5Βιβλιοθήκη Baidu
等价类划分
例 1:
假定一台ATM机允许提取增量为50元,总金额从100~2000(包 含2000元)不等的金额,请等价类方法进行测试。
•
volunteer ??
6
等价类划分
假定一台ATM机允许提取增量为50元,总金额从100~2000(包 含2000元)不等的金额,请等价类方法进行测试。
1. 划分等价类,如下表所示。
有效等价类 整数 编号 1 无效等价类 浮点数 小于100 大于2000 不能被50整除 编号 4 5 6 7
在100到2000之间
能被50整除
2
3
7
等价类划分
2.设计测试用例,如下表所示。
用例编号 1 2 3 4 5 输入数据 100 100.5 50 2050 101 预期结果 提取成功 提示:输入无效 提示:输入无效 提示:输入无效 提示:输入无效 覆盖的等价类 1、2、3 4 5 6 7
38
边界值分析
• 例2:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。 则采用边界值分析法设计的测试用例是: { <1,15>, <2,15>, <11,15>, <12,15>, <6,15>, <6,1>, <6,2>, <6,30>, <6,31> } 推论:对于一个含有n个变量的程序,采用边界值分析法测试程 序会产生4n+1个测试用例。
volunteer ??
26
边界值分析
• 等价类划分: – 可以考虑作出如下划分: • 输入 (i)<0 和 (ii)>=0 • 输出 (a)>=0 和 (b) Error – 测试用例有两个: • 输入4,输出2。对应于 (ii) 和 (a) 。 • 输入-10,输出0和错误提示。对应于 (i) 和 (b) 。 • 边界值分析: – 划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数 和0。由此得到以下测试用例: • 输入 {最小负实数} • 输入 {绝对值很小的负数} • 输入 0 • 输入 {绝对值很小的正数} • 输入 {最大正实数}
有效等价类
整数 在100到2000之间 能被50整除
编号
1 2 3
无效等价类
浮点数 小于100
编号
4 5
大于2000
不能被50整除
6
7
4
等价类划分
例1
2.设计测试用例,如下表所示。
用例编号
1 2 3
输入数据
100 100.5 50
预期结果
提取成功 提示:输入无效 提示:输入无效
覆盖的等价类
1、2、3 4 5
17
边界值分析
边界值分析关注的是输入空间的边界。
确定边界值应遵循以下几条原则:
如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范 围边界的值作为测试输入数据。 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数 多一的数作为测试数据。 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和 最后一个元素作为测试数据。 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为 测试数据。
边界值分析
• 采用边界值分析测试的基本思想是:故障往往出现在输入 变量的边界值附近。 ——因此,边界值分析法利用输入变量的最小值(min)、 略大于最小值(min+)、输入值域内的任意值(nom)、略小 于最大值(max-)和最大值(max)来设计测试用例。 • 边界值分析法是基于可靠性理论中称为“单故障”的假设 ,即有两个或两个以上故障同时出现而导致软件失效的情 况很少,也就是说,软件失效基本上是由单故障引起的。 ——因此,在边界值分析法中获取测试用例的方法是: (1) 每次保留程序中一个变量,让其余的变量取正常值, 被保留的变量依次取min、min+、nom、max-和max。 (2) 对程序中的每个变量重复 (1) 。
29
边界值分析
• 在多数情况下,边界值条件是基于应用程序的功能设计而需要考 虑的因素,可以从软件的规格说明或常识中得到,也是最终用户 可以很容易发现问题的。然而,在测试用例设计过程中,某些边 界值条件是不需要呈现给用户的,或者说用户是很难注意到的, 但同时确实属于检验范畴内的边界条件,称为内部边界值条件或 子边界值条件。 • 内部边界值条件主要有下面几种: 数值的边界值检验 字符的边界值检验 小结: • 在实际的测试用例设计中,需要将基本的软件设计要求和程 序定义的要求结合起来,即结合基本边界值条件和内部边界值条 件来设计有效的测试用例
31
边界值分析
• 在计算机软件中,字符也是很重要的表示元素,其中ASCII 和Unicode是常见的编码方式。下表中列出了一些常用字符 对应的ASCII码值。
字符 空 (null) 空格 (space) 斜杠 ( / ) 0 冒号 ( : ) @ ASCII码值 0 32 47 48 58 64 字符 A a Z z 单引号 ( ‘ ) ASCII码值 65 97 90 122 96