黑盒测试用例设计方法-等价类

等价类测试用例设计

等价类理论

采用等价类设计方法是将系统的输入域划分为若干部分,然后从每个部分选取少数代表性数据进行测试,避免穷举产生的大量用例;等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露软件中的错误都是等效的。在测试设计中合理地假设,假设测试某等价类的代表值就等于该等价类子集合中的其他值的测试。因此可以将全部输入数据进行合理的划分,划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,这样可以使用少量代表性测试数据取得较好的测试结果。
等价类通常可以划分为有效等价类和无效等价类两种。
(1)有效等价类:指对于系统的规格说明书是合理的、有意义的输入数据构成的信息集合。
利用有效等价类可以检验程序是否实现了规格说明书中所规定的功能和性能。
(2)无效等价类:指对于系统的规格说明书是不合理的或无意义的输入数据构成的信息集合。
需要验证系统不但能正确接收合理数据,还能处理无效数据。

等价类设计过程

步骤一:划分等价类
划分等价类可以参考以下几方面原则:
(1)在输入条件规定了取值范围或值的个数时,则可以确定一个有效等价类和两个无效等价类
比如:要求输入2-5个字符/值,那么有效的等价类就是2-5个字符/值,无效的等价类分别时0-1个字符/值和5个以上的字符/值;
(2)在输入条件规定了输入值的集合或者规定了必须在什么条件的情况下,可以确定一个有效等价类和一个无效等价类
比如:要求必须输入账号才能输入密码,那么有效等价类就是输入账号后输入密码,无效等价类就是步输入账号直接输入密码
(3)在输入条件是一个布尔值(True/Fales)的情况下,可以确定一个有效等价类和一个无效等价类
比如:要求身份证必填,那么有效等价类就是输入身份证,无效等价类就是不输身份证
(4)在规定了输入数据的一组值假定N个,并且程序要对输入值分别处理的情况下,可以确定N个有效等价类和一个无效等价类
比如:规定输入鸡,鹅,鸭的处理方式不一样,那么有效等价类就是输入鸡,鹅,鸭,无效等价类就是输入鸡鹅鸭以外的字符
(5)在规定了输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类
比如:验证码必须在手机输入正确并点击发送验证码后才能输入,那么有效等价类就是满足条件后输入验证码,无效等价类就是手机号不存在点击发送验证码后输入验证码,手机号正确不点击发送验证码后输入验证码
(6)在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,应该再将该等价类进一步划分,划分更小的等价类;
比如:性别一栏必填已划分为有效等价类:填,和无效等价类:不填;但是程序对男女的处理方式不一样,那么需要继续划分两个有效等价类:男和女
步骤二:根据划分的等价类确定测试用例
(1)等价类是以效果来换取效率,等价类细分成都和等价类组合程度取决于进度和人力资源情况
(2)等价类的出发点是考虑设计用例把输入的每种情况都有用例测试,就认为达到了充分性,但对于各情况的组合并没有进行充分的考虑
(3)等价类划分的优劣,关键是需要把输入背后隐藏的信息从各个角度进行分类

通过等价类发现过的BUG

相信大家通过等价类发现的BUG不少,这里举一个常规等价类设计用例不能发现的BUG
业务场景是这样的:买了一箱水果,但是里面不是全部都有问题,这个时候需要申请售后赔款,商家根据客户填写的数量进行赔款;
页面的需求是这样的:申请售后的数量必填,只能输入正整数(不含0)
常规等价类用例设计是这样的:第一条用例:输入正整数提交申请;第二条用例:不输入数量提交申请;第三条用例:输入0提交申请;第四条用例:输入小数提交申请;第五条用例:输入非数字字符提交申请
第一轮测试根据这几条用例并没有发现BUG;但是从测试过程中注意到页面上的反馈是输入0光标离开后有提示不能为0,抓包并没有请求,说明是前端拦截了;有一个很奇怪的经验(前端处理数字0的时候往往有BUG)于是从有效等价类加多了一个有效等价类(数字10)(目的是检查前端的处理方式是检测到“0”就拦截,还是数字0才拦截)额外增加的用例:输入10提交申请;
发现了BUG,前端检测到字符0就拦截;相信这种BUG一般都不会在执行用例的过程中被发现

个人心得

等价类的设计方法在实际运用中很多,虽然发现的BUG很少,但是是不可缺的,因为在看不到代码的情况下,要测试到开发对每个输入值的实现逻辑有没有出错,重点:常规设计后如何发现更多BUG:站在开发的角度去判断开发可能会使用的错误逻辑处理输入值后继续细化有效等价类和无效等价类;
虽然等价类设计方法一般是针对输入值作设计的,但是也可以运用在别的场景,因为等价类设计方法的中心思想是“假设测试某等价类的代表值就等于该等价类子集合中的其他值的测试“,这里虽然写的是【值】,但是也可以把它运用为【场景,流程等】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值