 等价类分为Page 　 28 等价类分为 : 有效等价类 — 对于程序的规格说明是合理的、有意义的输入数据构成的集合。对于程序的规格说明是合理的、有意义的输入数据构成的集合。 无效等价类 —对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。 等价分类法步骤 划分等价类 应按照输入条件(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。应按照输入条件(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。 例如:每个学生可选修1-3 门课程 可以划分一个有效等价类:选修1-3 门课程。 可以划分两个无效等价类 : 未选修课 选修课超过3 门Page 　 29 可以划分两个无效等价类 : 未选修课 , 选修课超过3 门 。 标识符的第一个字符必须是字母。 可以划分为一个有效等价类:第一个字符是字母。 可以划分一个无效等价类:第一个字符不是字母。 选择测试用例 A 、为每个等价类编号; B 、使一个测试用例尽可能覆盖多个有效等价类 C 、特别要注意的是:一个测试用例只能覆盖一个无效等价类。 等价类划分法 —— 以输入域划分等价类 NextDate 函数包含三个变量:month (月份)、day (日期) 和 year(年),函数的输出为输入日期后一天的日期。 例如,输入为 2007 年9月 月 9 日,则函数的输出为 2007 年9 月10 日 。要求输入变量 month 、day 和 和 year 均为整数值,并且满足下列条件: (1 )1≤month≤12 (2 )1≤day≤31Page 　 30 (3 )1912≤year≤2050 此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:一个是输入域的复杂性,另一个是指闰年的规则。例如变量此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:一个是输入域的复杂性,另一个是指闰年的规则。例如变量year 和变量month 取不同的值,对应的变量day 会有不同的取值范围,day 值的范围可能是1 ~30 或1 ~31 ,也可能是1 ~28 或1 ~29 。 等价类划分法 —— 以输入域划分等价类 (1 )简单等价类划分测试NextDate 函数 有效等价类 简单等价类划分测试NextDate 函数可以划分以下三种有效等价类: M1 ={month :1≤month≤12} D1 ={day :1≤day≤31}Page 　 31{ y y } Y1 ={year :1912≤year≤2050} 无效等价类 若条件 (1 )~(3 )中任何一个条件无效,那么NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,例如函数都会产生一个输出,指明相应的变量超出取值范围,例如month 的值不在的值不在 1 ~12 范围当中。 等价类划分法 —— 以输入域划分等价类 显然还存在着大量的 year 、 、 month 、 、 day 的无效组合,的无效组合, NextDate 函数将这些组合统一输出为:“无效输入日期”。其无效等价类为:函数将这些组合统一输出为:“无效输入日期”。其无效等价类为:M2 ={month :month<1}Page 　 32M3 ={month :month>12}D2 ={day :day<1}D3 ={day :day>31}Y2 ={year :year<1912}Y3 ={year :year>2050} 等价类划分法 —— 以输入域划分等价类一般等价类测试用例如表所示。NextDate函数的一般等价类测试用例测试用例输入期望输出测试用例输入期望输出month day yearTest 年 年 月 日Page 　 33Case 19 9 2007 2007 年9 月10 日 等价类划分法 —— 以输入域划分等价类 健壮等价类测试中包含弱健壮等价类测试和强健壮等价类测试 弱健壮等价类测试 弱健壮等价类测试中的有效测试用例使用每个有效等价类...