转自:https://mp.weixin.qq.com/s/HxfEi_SGJjGABCDF0EqADw
等价类
等价类是指某个输入域的子集合 在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,子集合中包含的元素要么全部被正确处理,要么全部都没有被正确处理。因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。等价类划分是将程序的输入域(较多见)或输出域(较少见)的不同区间划分为不同的数据类,以便导出测试用例
- 等价类划分定义:设计输入具有代表性的数据子集
- 覆盖:有效等价类用例设计:一个新用例尽可能多的覆盖且尚未覆盖的有效等价类;无效等价类用例设计:一个新用例仅覆盖一个尚未覆盖的无效等价类
- 常见的等价类划分类型
①区间范围或值的个数:图片小于4M,字符串长度为4
②数值划分(枚举):比如图片只能是jpg、png、gif ,则这三种为有效等价类,而其他类型为无效等价类
③类型
④限制条件:比如用户A只能查他的手机号账单,则可无效等价类:设计A查B手机号账单
约束条件可看”接口测试总结“中六、接口处理逻辑
需求:
有一个 PC 客户端的命令行工具,这个工具可以接收三个命令行参数,其中,前两个是数字,最后一个是运算符,运算符只支持加减乘除四种,工具的功能就是把前两个数字使用运算符做下运算,然后输出运算结果。
一、等价类划分
- 要培养分类划分的意识,大分类不漏掉,小的有效、无效等价类才不会漏掉
- 在一个分类中,要将等价类细分,尤其是隐形需求(比如除数为0)
- 要培养当一个有效用例出来时,与之对应的一堆无效用例
二、边界值
有数字的地方就有边界值,注意对数字的理解
就本例而言:
- 三个参数
- 四个运算符:种类,不需要边界,本次放在等价类中
- 运算数:数字类型有边界,比如int
- 运算结果,是否有越界
越界问题参考:这次微信平台赞赏超过5万的bug到底是怎样的(看完你就明白了)
边界值不光是数字
前端边界值测试
读者可以先看下图的两个进度条有没有什么问题,细心的同学会发现在绿色的部分显示的是白色的字,而下面的显示的是黑色的字,这样显示的原因比较明显(白色的字在白色的底是看不见的),但是大家想象下,图中第一个进度条的进度是1%或者2%是什么情况。真实情况是在1%或者2%的进度下绿色部分是不能覆盖住白色的字,到时候页面展示的可能就是个1或者2啦。