因为不可能穷举所有可能的输入进行测试,因此要选择少量具有代表性的输入进行测试,来发现尽可能多的软件错误。
等价类划分就是将所有的可能的输入数据划分成若干个等价类,然后在每个等价类中选取一个代表性的数据作为测试数据。
等价类定义:
等价类是指输入域的某个子集,该子集中的所有输入数据揭露的软件错误都是等效的,测试等价类中的某个代表就等价于对这一类的所有值的测试。
简单来说就是这个类中某个输入数据可以检测出错误,那么这个类中其他输入也可以检测出同样的错误;这个输入数据检测不出错误,其他数据也不能检测出。
设 S={a1,a2,....an} 是一系列元素的集合,只要 R 满足以下条件,则 R ∈ S✖S 是一个等价类关系:
自反性:<ai,ai>∈R
对称性:<ai,aj>∈R ==> <aj,ai>∈R
传递性:<ai,aj>∈R ∩ <aj,ak>∈R ==> <ai,ak>∈R
例如:
拥有相同身高(一段区域,不是绝对值)。
自反性:自己和自己肯定是有着一样的身高。
对称性:你和我有相同身高,那我和你就有相同身高。
传递性:你和我有相同身高,我和他有相同身高,那你和他也有相同身高。
等价类分类:
等价类分为有效等价类和无效等价类。
有效等价类是指符合要求的合理的输入,主要用来检测程序的功能。
无效等价类是指不符合要求的不合理的或者非法的输入,主要用来检测程序的健壮性。
生成测试用例步骤:
(1) 划分等价类:
对每一个输入条件确定若干个有效等价类和若干个无效等价类。
例如:
输入条件规定了取值范围,则确定一个有效等价类和两个无效等价类。
规定输入考试成绩在0-100以内。
有效等价类:0<=成绩<=100
无效等价类:成绩<0 和 成绩>100
输入规定必须是整数,确定三个有效等价类和一个无效等价类。
有效等价类:负整数、0、正整数
无效等价类:非整数
(2) 利用等价类生成测试用例
①设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复至所有的有效等价类被覆盖。
②为每个无效等价类设计一个新的测试用例。