等价类划分法&&边界值法
等价类划分法把程序的输入域划分为若干部分,然后从每个部分中选取少量具有代表性数据当作测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。也就是说,如果某一类的一个用例发现了错误,这一类中的其他用例也可能发现同样的错误;反之,若某一类中第一个用例没有发现错误,则这一类中的其他用例也不会查出错误。
使用这一方法设计测试用例,首先必须在分析需求规格说明书的基础上划分等价类,列出等价类表。等价类划分有两种不同的情况:有效等价类和无效等价类。
在划分等价类时,有一些规则应该遵循。
- 如果输入条件规定了取值范围或个数,则可确定一个有效等价类和两个无效等价类。例如,输入值时选课人数,在0~100之间,那么有效等价类是:0<=学生人数<=100;无效等价类是:学生人数<0;学生人数>100。
- 如果输入条件规定了输入值的的类型,则可确定一个有效等价类和一个无效等价类。例如,输入日期类型的数据。那么有效等价类是日期类型的数据;无效等价类是非日期类型的数据。
- 如果输入条件是一组值,且程序对不同的值有不同的处理方式,则每个允许的输入值对应一个有效等价类,所有不允许的输入值的集合为一个无效等价类。例如,输入条件“职称”的值是初级、中级、高级,那么有效等价类应该有3个:初级、中级、高级。无效等价类有一个:其他任何职称。
- 如果规定了输入数据必须遵循的规则,可以划分出一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则),比如密码要求长度至少为6,且含有数字和字母。
划分好等价类后,就可以设计测试用例了。设计测试用例的步骤可以归结为3步:
- 对每个输入和外部条件进行等价类划分,画出等价类表,并为每个等价类进行编号。
- 设计一个测试用例,使其尽可能多地覆盖有效等价类,重复这一步,直到所有的等价类被覆盖。
- 为每一个无效等价类设计一个测试用例。
人们长期的测试工作经验中得知,大量的错误往往发生在输入和输出范围的边界上,而不是范围的内部。因此,针对边界情况设计测试用例,能够更有效地发现错误。
通常情况下,软件测试所包含的边界条件有以下几种类型:数字、字符、位置、质量、大小、速度、方位、尺寸、空间等;对应的边界值应该在最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况。
用边界值分析法设计测试用例时应当遵循几条原则:
- 如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例。
- 如果规定了值的个数,应分别以最大、最小个数和稍小于最小和大于最大个数作为测试用例。
- 如果输入是有序的集合,如顺序文件、表格等,应注意选取有序集的第一个和最后一个元素作为测试用例。
如何使用等价类&&边界值分析
举个例子
淘宝店铺老板想搞活动,假设淘宝服务搞活动接口其中一个参数就是活动时长,后端规定活动的时长最多72个小时,最少24个小时。此时针对创建活动的这个时长参数,我们可以设计如下用例。
首先用等价类划分法做一下划分。
![](https://img2020.cnblogs.com/blog/1477786/202011/1477786-20201128180159976-1758654991.webp)
然后结合有效等价类1和无效等价类2345分别设计测试用例。
![](https://img2020.cnblogs.com/blog/1477786/202011/1477786-20201128180209396-1157453105.webp)
参考:https://www.jianshu.com/p/1b78edbc87e0