软件测试学习笔记之等价类划分

来源:互联网 发布:阿里云搭梯子 编辑:程序博客网 时间:2024/06/06 01:23

等价类划分测试法满足了测试的两个需求:完备的测试、避免冗余。

等价类测试法将每一个输入变量的取值根据它们的特点划分成互不相交的一组子集,并保证这组子集的并是整个输入变量的取值。随后从每个子集中抽取其中一个元素来代表这一子集进行测试,从而实现通过最少的测试用例来无冗余地覆盖全部输入测试。因此等价类划分测试的前提条件是:假设同一类型输入具有同样的测试结果,在设计时如果无法确定系统一定满足该前提条件则需要与其它的测试方法混用来增加测试有效性(如对有疑点的输入区间增加边界值检测)。

其划分原则如下:

Ø 在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。

Ø 在规定了输入数据的一组值中(假定有n个值),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。

Ø 在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类。

Ø 在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。

Ø 在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步地划分为更小的等价类。

 

对于有多个变量组成的系统,等价类测试法也有单缺陷与多缺陷的条件假设,在单缺陷前提条件下,我们只需要保证测试用例使用了每个变量每个子集中的一个元素即可。


由上图可以看出,在x轴方向上测试用例覆盖了[a,b],[b,c],[c,d]三个区间y轴方向上测试用例覆盖了[e,f],[f,g]两个区间。

在多缺陷前提条件下,我们要保证测试用例覆盖所有变量等价笛卡尔积的每个子集,即变量子集的叉乘。


如果还考虑到无效等价类,则会扩展成以下的形式:


等价划分法由于同样只关注系统输入输出之间的关系而不关心系统内部实现,因此是一种典型的黑盒测试方法。它几乎适用于所有测试,然而当各个输入变量之间相互制约,相互影响时,输入变量的区间变化划分将十分困难,此时等价划分方法只能用来辅助指导测试而不能当成主要测试方法。


0 0
原创粉丝点击