天天看点

等价类划分例题

1.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。

  1)划分等价类并编号,下表等价类划分的结果

输入等价类 有效等价类 无效等价类
日期的类型及长度 ①6位数字字符

②有非数字字符

③少于6位数字字符

④多于6位数字字符

年份范围 ⑤在1990~2049之间

⑥小于1990

⑦大于2049

月份范围 ⑧在01~12之间

⑨等于00

⑩大于12

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:

   测试数据   期望结果     覆盖的有效等价类

    200211     输入有效     ①、⑤、⑧

  3)为每一个无效等价类设计一个测试用例,设计结果如下:

   测试数据  期望结果    覆盖的无效等价类

    95June    无效输入         ②

    20036     无效输入          ③

    2001006   无效输入         ④

    198912    无效输入         ⑥

    200401    无效输入         ⑦

    200100    无效输入         ⑨

    200113    无效输入         ⑩

2.NextDate函数包含三个变量:month、day和year,函数的输出为输入日期后一天的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日。要求输入变量month、day和year均为整数值,并且满足下列条件:

 ①1≤month≤12

 ②1≤day≤31

 ③1920≤year≤2050 

  1)有效等价类为:

    M1={月份:1≤月份≤12}

    D1={日期:1≤日期≤31}

    Y1={年:1812≤年≤2012}

  2)若条件①~③中任何一个条件失效,则NextDate函数都会产生一个输出,指明相应的变量超出取值范围,比如"month的值不在1-12范围当中"。显然还存在着大量的year、month、day的无效组合,NextDate函数将这些组合作统一的输出:"无效输入日期"。其无效等价类为:

    M2={月份:月份<1}

    M3={月份:月份>12}

    D2={日期:日期<1}

    D3={日期:日期>31}

    Y2={年:年<1812}

    Y3={年:年>2012}

 弱一般等价类测试用例

 月份   日期      年              预期输出

   6       15        1912           1912年6月16日

 强一般等价类测试用例同弱一般等价类测试用例

 注:弱--有单缺陷假设;健壮--考虑了无效值

  (一)弱健壮等价类测试

 用例ID  月份 日期   年         预期输出

  WR1      6      15    1912      1912年6月16日

  WR2     -1     15    1912      月份不在1~12中

  WR3     13     15    1912     月份不在1~12中

  WR4      6      -1    1912     日期不在1~31中

  WR5      6      32    1912     日期不在1~31中

  WR6      6      15    1811      年份不在1812~2012中

  WR7      6      15    2013     年份不在1812~2012中

  (二)强健壮等价类测试

 用例ID  月份   日期     年         预期输出

  SR1       -1      15       1912     月份不在1~12中

  SR2        6      -1        1912     日期不在1~31中

  SR3        6      15       1811     年份不在1812~2012中

  SR4       -1      -1       1912     两个无效一个有效

  SR5        6      -1        1811     两个无效一个有效

  SR6       -1      15       1811     两个无效一个有效

  SR7       -1      -1       1811     三个无效

3.“6到18个字符,可以使用字母、数字、下划线,需已字母开头”。那么有效等价类就应该是

输入条件 有效等价类 无效等价类
符合要求的邮件地址 6---18个字符           (1) 小于6个字符          (6)
大于18个字符         (7)
字母                  (2) 不是字母、数字和下划线 (8)
数字                  (3)
下划线                (4)
首位是字母            (5) 首位不是字母          (9)

那么测试用例就出来了吧

序号 输入 覆盖等价类 输出
1 Nick_mail01 1,2,3,4,5 正确
2 nick 2,5,6 错误
3 qwertyuiopasdfghjklzxc 2,5,7 错误
4 Nick+mail? 1,2,5,8 错误
5 5683_mail 1,2,3,4,9 错误