一个程序可以有多个输入,等价类划分就是将这些输入数据按照输入需求进行分类,将它们划分为若干个子集,这些子集即为等价类,在每个等价类中选择有代表性的数据设计测试用例
如果没有输入域,是否就不需要等价类方法??
一个软件要能接收正常的输入,也要能处理无效的输入,给出提示等。
划分等价类
(1)如果程序要求输入值是一个有限区间的值,则可以将输入数据划分为1个有效等价类和2个无效等价类,有效等价类为指定的取值区间,两个无效等价类分别为有限区间两边的值。例如,某程序要求输入值x的范围为[1,100],则有效等价类为1≤x≤100,无效等价类为x<1和x>100。
(2)如果程序要求输入的值是一个“必须成立”的情况,则可以将输入数据划分为1个有效等价类和1个无效等价类。例如,某程序要求密码正确,则正确的密码为有效等价类,错误的密码为无效等价类。
(3)如果程序要求输入数据是一组可能的值,或者要求输入值必须符合某个条件,则可以将输入数据划分为1个有效等价类和1个无效等价类。例如,某程序要求输入数据必须是以数字开头的字符串,则以数字开头的字符串是有效等价类,不是以数字开头的字符串是无效等价类。(4)如果在某一个等价类中,每个输入数据在程序中的处理方式都不相同,则应将该等价类划分成更小的等价类,并建立等价表。
设计步骤
(1)确定输入,划分有效等价类和无效等价类。
![](/qrcode.jpg)
(2)建立等价类表,给等价类编号。
(3)设计数据覆盖有效等价类。尽可能多地覆盖尚未被覆盖的有效等价类,直到测试用例覆盖了所有的有效等价类。
(4)设计数据覆盖无效等价类,每个测试用例只覆盖一个无效值
实例 三角形问题的等价类划分
注意:等价类方法中的输入,不仅是数据的输入,有可能是选择条件的不同。
余额宝的提现功能分为快速到账与普通到账2种情况,对余额宝的提现功能进行测试,首先对余额宝提现进行等价类划分。如果选择快速到账,则可将提现功能划分为1个有效等价类与2个无效等价类,具体如下。(1)有效等价类:0<提现金额≤10 000元。(2)无效等价类:提现金额≤0。(3)无效等价类:提现金额>10 000元。
参考书籍《软件测试》黑马程序员编著来源微信读书