一、等价类划分
例:测试一个两位数的加法计算器
测试需求:测试两个参数值的相加后的结果是否正确
隐身需求:输入的数值在-99到99之间,大于99或小于-99输入应被拒绝,并显示错误信息
第一步:根据测试需求,开始测试
第二步:分别给第一个参数和第二个参数输入表中的值,得到的测试结果如表所示:
很明显如果我们对第一个参数的值分别取从-99到99的199个数,第二参数取从-99到99的199个数,我们不可能对两位数相加的所有情况进行穷举测试。
1、等价类划分:
(1)、等价类划分的办法是把程序的输入域划分成若干部分
(2)、然后从每个部分中选取少量到表型数据当做测试用例
(3)、每一类的代表性数据在测试中的作用等价于这一类中的其他值
(4)、也就是说,如果某一类中的一个例子发现错误,这一等价类中的其他例子也能发现同样的错误。
2、等价类划分原则:
(1)、如果输入条件规定了取值的范围或值的个数,则可以确定一个有效等价类和两个无效等价类
(2)、如果一个输入条件说明一个“必须成立”的情况,则可划分一个有效等价类和一个无效等价类
(3)、如果输入条件规定了输入数据的一组可能的值,而且程序是不同方式处理每一种值,泽科为每一种值划分一个有效等价类,并划分一个无效等价类
(4)、如果我们确知,已划分的某等价类中的个元素(例子)在程序中的处理方式是不同的,则应据此将此等价类进一步划分成更小的等价类
(5)、在建立了等价类之后,简历等价类表,列出所有划分出的等价类
3、基于等价类划分的用例设计
(1)、明确测试对象,非测试对象保证正确
(2)、为每一个等价类设置一个编号
(3)、设计一个新的测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类,重复这一步,最后使得所有的有效等价类军备测试用例覆盖
(4)、设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有的无效等价类均被覆盖
总结:让每一个有效等价类都有用例应对,让每一个无效等价类都有一个唯一的用例来应对
4、等价类划分实战
STEP1、根据测试需求可分为三个有效等价类
一个有效数据的等价类,两个无效数据数据等价类
有效数据等价类:有哪些对程序的规格说明有意义的,有合理的输入数据所结构的集合
无效数据等价类:哪些对程序的规格说明不合理的或无意义的输入数据所构成的集合
STEP2、建立等价类表
在实际工作中,我们通常简历了等价类以后,把程序中所有的等价类简历等价类表,以便在编写测试用例的时候有所依据
STEP3、确定测试用例
(1)、为等价类表中的每一个等价类分配一个唯一的编号
(2)、设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类
(3)、重复这一步骤,从而使所有有效等价类均被测试用例覆盖
(4)、与上步类似,设计一个新的测试用例,使他只覆盖一个无效等价类
(5)、重复这一步骤,从而使所有的无效等价类均被测试用例覆盖
STEPT4、细化等价类划分
在测试“-99<=数值< =99"的这个等价类区间的时候
我们会发现如10 + 40,-20+30和-30+ (-30)这类的正数相加,正数负数相加,负数相加也是不同的等价区间因此我们可以使用更多的等价类划分
STEPT5、完善测试用例
5、等价类的特点
(1)、测试相同的内容
(2)、如果等价类中的一个测试能够用捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷
(3)、如果正确的划分等价类,可以大大降低测试用例的数量,测试会准确有效
(4)、如果错误的讲两个不同的等价类当做一个等价诶那就回侧漏一种测试情况
6、等价类划分要注意的问题
(1)、不但要考虑有效等价类,也要考虑无效等价类
(2)、仔细划分,审查划分
(3)、过于粗鲁哦可能会漏掉软件缺陷