黑盒测试之等价划分

本文深入探讨了黑盒测试中的等价划分方法,详细讲解了如何通过等价类的定义和测试用例的设计来提高测试效率,确保软件质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

黑盒测试之等价划分

黑盒测试的目标是找出程序不符合规格说明书的地方

等价划分方法的形成

我们知道:第一对程序的穷举输入测试是无法实现的,这是现实,第二一个好的测试用例应该是具有相当高的可能发现某个错误来,这是对一个测试用例设计提出的基本要求。那么,从所有的可能输入中定义一个有效的子集就是必需的,这要求:
第一,严格控制测试用例的增加,减少为达到“合理测试”的既定目标而必须设计的其他测试用例的数量。这要求每个测试用例都必须体现尽可能多的不同的输入情况。
第二,它覆盖了大部分其他可能的测试用例。它会告诉我们,用或不用这个特定的输入集合,哪些错误会被发现,哪些会被遗漏。
于是基于以上两种思想形成了称为等价划分的黑盒测试方法。

用等价划分方法设计测试用例

第一步:确定等价类
用一个表格来管理,如下

外部条件有效等价类无效等价类
摘自于规格说明书代表对程序的有效输入不正确的输入(任何可能的输入条件)

一些帮助确定等价类的指导原则:

  1. 输入条件规定了一个取值范围,那么就需要确定一个有效等价类,2个无效等价类。
  2. 输入条件规定了取值个数,那么就需要确定一个有效等价类,2个无效等价类。
  3. 输入条件规定了一个输入值的集合,而且有理由认为程序会对每个值进行不同处理,那么就需要为每个输入值确定一个有效等价类和一个无效等价类。
  4. 输入条件规定了“必须是”的情况,那么就需要确定一个有效等价类和一个无效等价类。

第二步:生成测试用例

  1. 编号:要求为每个等价类设置一个不同的编号。
  2. 编写测试用例以至于所有的有效等价类都被覆盖,要求新增测试用例时尽可能多的覆盖那些还没有被覆盖的有效等价类。
  3. 编写测试用例以至于所有的无效等价类都被覆盖,要求新增的测试用例覆盖一个且仅一个还没有被覆盖的无效等价类。

一个范例

程序规格说明:输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别做计算。
下面我们用等价类划分方法为该程序进行测试用例设计。
第一步:确定等价类
把等价类用一个表格管理起来如下:

输入条件有效等价类无效等价类
输入值的集合整数一边为非整数;两边为非整数
输入值的个数3个数给出一个边;给出两个边;给超过3个边
输入值的范围正数一边<=0;两边<=0;三边<=0
一般三角形任意两边之和大于第三边任意两边之和小于第三边;任意两边之和等于第三边
等腰三角形有两边相等
等边三角形三边相等

第二步:生成测试用例

  1. 编号,如下(设a、b、c为三角形的三边)
有效等价类编号
整数1
3个数2
正数3
一般三角形,a+b>c4
一般三角形,a+c>b5
一般三角形,b+c>a6
等腰三角形,a=b7
等腰三角形,a=c8
等腰三角形,b=c9
等边三角形,a=b=c10
无效等价类编号
一边为非整数:a非整数11
一边为非整数:b非整数12
一边为非整数:c非整数13
两边为非整数:ab非整数14
两边为非整数:ac非整数15
两边为非整数:bc非整数16
三边为非整数:abc非整数17
给出一个边:只有a18
给出一个边:只有b19
给出一个边:只有c20
给出两个边:只有ab21
给出两个边:只有ac22
给出两个边:只有bc23
给超过三个边24
一边<=0:a<=025
一边<=0:b<=026
一边<=0:c<=027
两边<=0:a/b<=028
两边<=0:b/c<=029
两边<=0:a/c<=030
三边<=0:a/b/c<=031
任意两边之和小于第三边:a+b<c32
任意两边之和小于第三边:a+c<b33
任意两边之和小于第三边:b+c<a34
任意两边之和等于第三边:a+b=c35
任意两边之和等于第三边:a+c=b36
任意两边之和等于第三边:b+c=a37
  1. 新增测试用例覆盖有效等价类
测试用例覆盖的有效等价类编号
a=3,b=4,c=51,2,3,4,5,6
a=3,b=3,c=17
a=1,b=4,c=48
a=5,b=1,c=59
a=5,b=5,c=510
  1. 新增测试用例覆盖无效等价类
测试用例覆盖的无效等价类
a=3.5,b=4,c=511
a=3,b=4.5,c=512
a=3,b=4,c=5.513
a=3.5,b=4.5,c=514
a=3.5,b=4,c=5.515
a=3,b=4.5,c=5.516
a=3.5,b=4.5,c=5.517
a=318
b=419
c=520
a=3,b=421
a=3,c=522
b=4,c=523
a=3,b=4,c=5,d=624
a=-3,b=4,c=525
a=3,b=-4,c=526
a=3,b=4,c=-527
a=-3,b=-4,c=528
a=-3,b=4,c=-529
a=3,b=-4,c=-530
a=-3,b=-4,c=–531
a=2,b=3,c=632
a=2,b=10,c=633
a=18,b=10,c=634
a=18,b=10,c=2835
a=18,b=46,c=2836
a=74,b=46,c=2837

至此,所有的等价类都已经覆盖,测试用例设计完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值