首页 理论教育 等价类划分技术详解

等价类划分技术详解

时间:2023-06-27 理论教育 版权反馈
【摘要】:等价类划分也称为等价分类,它是一种黑盒测试技术,不考虑程序的内部结构,只根据产品说明书对输入的范围进行细分,然后在每个细分的区域内选取一个具有代表性的测试数据。因此,等价类划分是指分步骤将海量的测试用例减少,但测试结果依旧有效。等价类可以分为有效等价类和无效等价类。针对案例3,应该如何进行等价类划分呢?图9-1加法运算等价类将所有输入数据集合分成一个有效等价类,两个无效等价类。

等价类划分技术详解

完全的测试是不可能的。在实际工作中会删除一些重复的、没必要的测试用例,选择设计和执行哪些测试用例是测试人员的重要任务。

案例3:加法运算的例子。

上面程序的功能是计算输入的两个1~100的整数之和。针对这个程序,如果在设计测试用例时采用了枚举的思想,那么设计出来的测试用例见表9-1。

表9-1 案例3测试用例

那么总共要设计多少条测试用例呢?加数1为7~100,加数2也为7~100,那么它们共有100×100种组合可能。这个工作量非常大,但这只是测试了正常范围内的数值。如果用户输入了不在7~100范围内的数字会是怎样的情况?如果用户输入了字符又会发生什么情况?所有的这些情况在设计测试用例时都要考虑到,因此采用枚举法是行不通的,于是就有了等价类划分的思路。

等价类划分也称为等价分类(equivalence classing),它是一种黑盒测试技术,不考虑程序的内部结构,只根据产品说明书对输入的范围进行细分,然后在每个细分的区域内选取一个具有代表性的测试数据。如果选取得当,这个代表数据的作用就等价于该区域的其他所有测试数据。因此,等价类划分是指分步骤将海量的测试用例减少,但测试结果依旧有效。

这里需要注意,一个等价类是指测试相同目标或者暴露相同软件缺陷的一组测试用例。

等价类可以分为有效等价类和无效等价类。有效等价类是指符合产品说明书的规定,输入合理的数据集合;无效等价类是指不符合产品说明书的规定,输入错误的数据或无意义的数据集合。

针对案例3,应该如何进行等价类划分呢?这里,根据程序对输入数字的要求,将加法运算分成3个等价类,如图9-1所示。

图9-1 加法运算等价类(www.xing528.com)

将所有输入数据集合分成一个有效等价类(7~100),两个无效等价类(<1,>100)。接下来就可以从每个等价类中选取一个代表性的数据来设计测试用例进行测试,见表9-2。

表9-2 加法运算程序测试用例等价类

3条测试用例的运行结果如图9-2所示。

图9-2 3条测试用例的运行结果

到这里,测试用例的设计工作是否已经结束了?3条测试用例是否已经覆盖了全部测试用例?答案显然是否定的。如果用户输入的不是整数,而是小数或者字母,那怎么办?这里只考虑了输入数据的范围0~100,却没有考虑输入数据的类型,接下来我通过一张思维脑图展示经过全面考虑的加法运算程序测试实例的等价类,如图9-3所示。

图9-3 经过全面考虑的加法运算程序测试用例等价类

现在对每一个等价类进行编号。可以看到,当用户输入一个加数时,要么是数值,要么是非数值,数据包括整数和小数,非数值包括字母、特殊字符、空白和空格,整数又被划分成<1,7~100,>100三类。

从图9-3可以看到,现在存在一个有效等价类[2]和7个无效等价类。在设计测试用例时只需要从每一个等价类中选取一个测试数据构造测试用例即可,见表9-3。

表9-3 经过全面考虑的加法运算程序测试用例等价类

重新运行程序,输入表9-3中的每条测试用例,看实际的运行结果是否和预期一致。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈