等价类划分

说到测试用例编写,大家的第一反应肯定都是等价类划分。是的,等价类划分是设计用例最常见的方法之一。周四组里的小哥分享了黑盒测试的方法,大家讨论了一下,才发现各自的理解都是不一样。

首先,来看下官方定义:

等价类划分将程序所有可能输入的数据(有效和无效)划分为若干个等价类。然后从每个部分选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类组成,从而保证测试用例具有完整性和代表性。

用例设计:

1)在分析需求规格说明的基础上划分等价类,列出等价类表,为每一个等价类规定一个唯一的编号。

2)将程序可能的输入数据分成若干个子集,从每个子集中选取一个有代表性的数据作为测试用例。等价类是某个输入域的子集,在该子集中的每个输入数据的作用都是等效的。

3)设计新的测试用例,使其尽可能多地覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖为止。

4)设计新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,按照这一步骤重复进行,直到所有的无效等价类都被覆盖为止。

问题1:那有效等价类有几个?

有人回答1个,有人回答若干。OK,其实有效等价类可以是一个,也可以是多个,根据系统的输入域划分若干部分,然后从每个部分选取少数具有代表性数据作为数据测试的测试用例,等价类是输入域的集合。

1)一个有效等价:手机号码的定义,由11位数字组成

划分子集:空,1-10位数字,11位数字,12位或以上数字,1非数字

则有效等价类为一个,11位数字。无效等价类为若干:1-10位,12位或以上,空,非数字。非数字可继续细分:字符,特殊字符,数字与其他字符混合等。无效等 价类可以根据时间资源和价值等确定。

2)多个有效等价:

关于第3点,设计新的测试用例,使其尽可能多的覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖。第一次看到这句话的时候,愣了一下,因为第一反应就是有效等价类不是一个吗,下面举另一个例子说明:

规定学历可为本科,硕士,博士之一

划分子集:本科生,硕士生,博士生,空,小学,初中,高中,中专,大专,其他学历

则有效等价为3个:本科,硕士,博士。无效等价类为空,小学,初中,高中,中专,大专,其他学历。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。