等价类划分
基本概念
等价类是指某个输入域的子集合。
等价类划分法将程序所有可能的输入数据(有效和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。这样可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
类型
- 有效等价类
对于程序的规格说明书是合理的、有意义的输入数据构成的集合。 - 无效等价类
根据需求说明书,不满足需求的集合。
方法
- 在输入条件规定了取值范围或值的个数的情况下,则可以确定一个有效等价类和两个无效等价类。
例如:输入值是学生成绩,范围是0~100 - 在输入条件规定了输入值的集合或者规定了“必须如何”条件的情况下,可以确立一个有效等价类和一个无效等价类。
例如:验证码 - 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
- 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例如:下拉框 - 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
例如:邮箱 - 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
步骤
- 考虑输入数据的数据类型(输入类型)
- 考虑数据范围(输入长度)
- 画出示意图,区分等价类
- 为每一个等价类进行编号
- 从一个等价类中选举一个测试数据构造测试用例
标准
- 完备测试、避免冗余
- 子集互不相交:保证无冗余,不会出现多个用例用到相同类型的数据
- 所有子集相加即为数据总集(整个集合)
今天太阳也东升,而后西沉,早晨盛开的花儿也将凋谢;今天的太阳也西沉,而后东升,阳光照射之处遍地花开,但却已非昨日之花。