黑盒测试之等价类测试

在这里插入图片描述

等价类概念

1.划分指互不相交的一组子集,这些子集的并集是整个集合。
2.等价类
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。
翻译一下:比如三角形案例,我们不区分范围内的边界值、正常值,我们认为这些值都是正常值,既然都是正常值,只取一个就好了,这一个点代表了整个集合,我们就认为这个点是个等价类。

测试意义

完备性、无冗余性

等价类划分方法

使用等价类划分方法设计测试用例:
•划分等价类(列出等价类表)
•选取测试用例

有效等价类与无效等价类

有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。

无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。

弱等价类与强等价类测试

弱等价类测试:

把每个等价类都覆盖一遍,尽量多的覆盖有效等价类覆盖每一个无效等价类

弱一般等价类测试

通过使用一个测试用例中的每个等价类(区间)的一个变量实现。
在这里插入图片描述

弱健壮等价类测试

在弱一般的基础上添加无效点。
容错性测试通常构造一些不合理的输入来引诱软件出错,例如:
(1)输入错误的数据类型
(2)输入定义域之外的数值

在这里插入图片描述

强等价类测试:

笛卡尔积配对

强一般等价类测试

强一般等价类测试基于多缺陷假设,因此需要等价类笛卡尔积的每个元素对应的测试用例。
疑问:测试原则不应该支持单缺陷假设原则吗?

在这里插入图片描述

强健壮等价类测试

“强”:是因为有多缺陷假设
“健壮”:是因为考虑了无效值
在这里插入图片描述

划分等价类的规则

(1)如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类。
例: 输入值是学生成绩,范围是0~100
则定义两个无效等价类 成绩<0 成绩>100 和一分有效等价类 0<=成绩<=100
(2)如果输入条件代表集合的某个元素,则可定义一个有效等价类和一个无效等价类。
如:某程序涉及到标识符,其输入条件规定标识符应以字母开头,则以字母开头者作为有效等价类,以非字母开头为无效等价类。
(3)如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类。
(4)如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类(所有不允许的输入值的集合)。
例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。
(5)如果规定了输入数据必须遵循的规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
(6)如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。

NextData测试用例说明

使用等价类划分法为NextDate函数列出输入域等价类表,并设计相应的测试用例。(说明:这里假定NextDate函数中年份year的取值范围为1912年到2050年之间)

既然是用等价类去设计测试用例,我们首先就需要去设计等价类:

在日期范围栏中的有效等价类,无效等价类,也就是第3条和第8条为什么一样呢?也许看完第四条测试用例你就会明白。
在这里插入图片描述

输入等价类的设计是从两个方面给出的,一个是输入数据的类型和长度,另一个是输入数据的定义域。并且对应地给出了无效等价类,在等价类的旁边用括号进行标注,方便设计测试用例的时候简洁、方便。

以下为测试用例

ID预期输出备注解释
1191212311913.1.117,14,5年是边界值且为闰年 覆盖等价类的测试用例
219122291912.3.117,13,3覆盖等价类的测试用例
319122281912.2.2917,13,2覆盖等价类的测试用例
41912230闰年2月错误17,13,9注意这条语句
519134301913.5.118,11,4非闰年 覆盖等价类的测试用例
61913100日期出错18,12,6开始测试无效等价类 年月一定要满足有效等价类 因为只测试6
71913732日期出错18,12,7
81913229日期出错18,13,8
919131131日期出错18,11,10
101912015月份出错17,15,1
1119131315月份出错18,16,1
121911115年份出错19,12,1
132051115年份出错20,12,1

前三条语句覆盖了有效等价类。

第四条语句:9是一条闰年2月这个条件下的无效等价类,因此是9而非4.

练习2:电话号码问题

某城市电话号码由三部分组成。
它们的名称和内容分别是:
(1)地区码:空白或三位数字;
(2)前 缀:非(‘0’或‘1’)的三位数字;
(3)后 缀:4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。

设计测试用例

在这里插入图片描述

用例编号地区码前缀后缀预计输出备注
1空白1111111满足条件1,3,5
21112341111满足条件2,4,5
3he1111111地区码错误6,3,5
41101111地区码错误7,4,5
511111111111地区码错误8,3,5
6空白he1111前缀错误1,9,5
7空白0221111前缀错误1,10,6
8空白1221111前缀错误1,11,7
9空白221111前缀错误1,12,8
10空白22221111前缀错误1,13,9
11空白111hell后缀错误1,3,14
12空白111111后缀错误1,3,15
13空白11111111后缀错误1,3,16
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值