测 试 用 例 描 述 及 实 验 步 骤 | 一、设计方法描述 1:等价类划分法 等价类划分可以把全部输人数据合理划分为若干等价类,在每一个等价类中取个数据作为测试的输人条件,就可以用少量代表性的测试数据取得较好的测试效果。有效等价类:指对于程序规格说明来说,由合理的、有意义的输入数据构成的集合。利用它,可以检验程序是否实现了规格说明预先规定的功能和性能。无效等价类:指对于程序规格说明来说,由不合理的、无意义的输人数据构成的集合。利用它,可以检查程序中功能和性能的实现是否有不符合规格说明要求的地方。划分等价类的方法有:1.按区间划分;2.按数值划分;3.按数值集合划分;4.按限制条件划分;5.按限制规则划分;6。按处理方式划分。 在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。软件不能只接收合理的数据,还要经受意外的考验,即接收无效的或不合理的数据,这样的软件才能具有较高的可靠性。 2:边界值分析法 基于边界值分析方法选择测试用例的原则如下:
- 如果输人条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。
- 如果输人条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少1个的数作为测试数据。
- 根据规格说明的每一个输出条件,使用规则1和规则2。
- 根据规格说明的每一个输出条件,使用规则1和规则2。
- 如果程序的规格说明给出的输人域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例。
- 如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例。
- 分析规格说明,找出其他可能的边界条件。
二、设计测试用例
- 三角形问题
1:等价类划分法 1.1分析实验条件 条件1: 1≤a≤100 条件2:1≤b≤100 条件3: 1≤c≤100 条件4: a<b+ c 条件5: b<a+ c 条件6: c<a+ b 1.2划分有效等价类和无效等价类
输入条件 | 有效等价类 | 无效等价类 | 是否构成三角形的三条边 | 1≤a≤100 (1) 1≤b≤100 (2) 1≤c≤100 (3) a<b+ c (4) b<a+ c (5) c<a+ b (6) | (a<1)(7) (a>100) (21) (b<1)(8) (b>100) (22) (c<1)(9) (c>100) (23) a>=b+ c (10) b>=a+ c (11) c>=a+ b (12) | 是否为等腰三角形 | a=b (13) b=c (14) c=a (15) | (a!=b)and(b!=c)and(c!=a) (16) | 是否为等边三角形 | (a=b)and(b=c)and(c=a) (17) | (a!=b) (18) (b!=c) (19) (c!=a) (20) |
1.3设计有效等价类的测试用例
序号 | 测试用例(a,b,c) | 预期输出 | 覆盖等价类 | 实际输出 | 1 | 3,4,5 | 一般三角形 | 1,2,3,4,5,6 | 一般三角形 | 2 | 3,3,4 | 等腰三角形 | 1,2,3,4,5,6,13 | 等腰三角形 | 3 | 3,4,3 | 等腰三角形 | 1,2,3,4,5,6,15 | 等腰三角形 | 4 | 4,3,3 | 等腰三角形 | 1,2,3,4,5,6,14 | 等腰三角形 | 5 | 3,3,3 | 等边三角形 | 1, 2,3,4,5,6,17 | 等边三角形 |
1.4设计无效等价类的测试用例
序号 | 测试用例(a,b,c) | 预期输出 | 覆盖等价类 | 实际输出 | 1 | 0,1,2 | 边值超出范围 | 7 | 边值超出范围 | 2 | 105,1,2 | 边值超出范围 | 21 | 边值超出范围 | 3 | 1,2,0 | 边值超出范围 | 9 | 边值超出范围 | 4 | 1,2,105 | 边值超出范围 | 23 | 边值超出范围 | 5 | 1,0,2 | 边值超出范围 | 8 | 边值超出范围 | 6 | 1,105,2 | 边值超出范围 | 22 | 边值超出范围 | 7 | 2,1,1 | 无法构成三角形 | 10 | 等腰三角形 | 8 | 1,2,1 | 无法构成三角形 | 11 | 等腰三角形 | 9 | 1,1,2 | 无法构成三角形 | 12 | 等腰三角形 | 10 | 3,4,5 | 一般三角形 | 16 | 一般三角形 | 11 | 4,3,3 | 等腰三角形 | 18 | 等腰三角形 | 12 | 3,4,3 | 等腰三角形 | 19 | 等腰三角形 | 13 | 3,3,4 | 等腰三角形 | 20 | 等腰三角形 | 14 | 1,2, | 无效等价类 | | 无效输入 | 15 | 1,, | 无效等价类 | | 无效输入 | 16 | B,1,2 | 无效等价类 | | 无效输入 | 17 | ,,, | 无效等价类 | | 无效输入 | 18 | !,2,1 | 无效等价类 | | 无效输入 |
2.边界值分析法
序号 | 测试用例(a,b,c) | 预期输出 | 覆盖等价类 | 实际输出 | 1 | 0,1,2 | 边值超出范围 | 7 | 边值超出范围 | 2 | 105,1,2 | 边值超出范围 | 21 | 边值超出范围 | 3 | 1,2,0 | 边值超出范围 | 9 | 边值超出范围 | 4 | 1,2,105 | 边值超出范围 | 23 | 边值超出范围 | 5 | 1,0,2 | 边值超出范围 | 8 | 边值超出范围 | 6 | 1,105,2 | 边值超出范围 | 22 | 边值超出范围 | 7 | 1,100,100 | 等腰三角形 | 1,2,3 | 等腰三角形 | 8 | 2,100,33 | 一般三角形 | 2 | 一般三角形 | 9 | 3,3,1 | 等腰三角形 | 3 | 等腰三角形 |
- 次日问题
1:等价类划分法 1.1划分等价类
输入数据(年、月、日) | 有效等价类 | 无效等价类 | 年 | (1)1900到2050内的闰年整数 | (10) year<1900 | 年 | (2)1900到2050内的平年整数 | (11) year>2050 | 年 | | (12) 其他输入 | 月 | (3) 1,3,5,7,8,10,12内的整数 | (13) month<1 | 月 | (4) 4,6,9,11内的整数 | (14) 12<month | 月 | (5) 2 | (15) 其他输入 | 日 | (6) 1~28 | (16) day<1 | 日 | (7) 29 | (17) year为闰年 month=2时,29<day | 日 | (9) 31 | (18)year为非闰年 month=2时,28<day | 日 | | (19)month=1,3,5,7,8,10,12时,31<day | 日 | | (20) month=4,6,9,11时,30<day | 日 | | (21) day>31 | 日 | | (22) 其他输入 |
1.2设计有效等价类测试用例
序号 | 输入数据 | 预期结果 | 覆盖等价类 | 实际输出 | 1 | 2016 2 29 | 2016年3月1日 | (1)(5)(7) | 2016年3月1日 | 2 | 2017 1 28 | 2017年1月29日 | (2)(3)(6) | 2017年1月29日 | 3 | 2017 1 31 | 2017年2月1日 | (2)(3)(9) | 2017年2月1日 | 4 | 2017 4 30 | 2017年5月1日 | (2)(4)(8) | 2017年5月1日 | 5 | 2017 12 31 | 2018年1月1日 | (2)(3)(9) | 2018年1月1日 |
1.3设计无效等价类测试用例
序号 | 输入数据 | 预期结果 | 覆盖等价类 | 实际输出 | 1 | 1899 3 1 | 年超出范围 | (10) | 年超出范围 | 2 | 2051 3 1 | 年超出范围 | (11) | 年超出范围 | 3 | 205& 3 1 | 无效输入 | (12) | 无效输入 | 4 | 1901 -1 1 | 月超出范围 | (13) | 月超出范围 | 5 | 1901 1% 1 | 无效输入 | (15) | 无效输入 | 6 | 2016 2 30 | 日超出范围 | (17) | 日超出范围 | 7 | 2017 2 29 | 日超出范围 | (18) | 日超出范围 | 8 | 2017 3 32 | 日超出范围 | (19) | 日超出范围 | 9 | 2017 4 31 | 日超出范围 | (20) | 2017年5月1日 | 10 | 2017 4 32 | 日超出范围 | (21) | 日超出范围 | 11 | 2017 4 3% | 无效输入 | (22) | 无效输入 | 12 | 1901 13 1 | 月超出范围 | (14) | 月超出范围 | 13 | 1901 1 -1 | 日超出范围 | (16) | 日超出范围 |
2.边界值分析法
序号 | 输入数据 | 期望输出 | 覆盖等价类 | 实际输出 | 1 | 1889 | 7 | 10 | 年的值不在指定范围内 | (1)(2) | 年的值不在指定范围内 | 2 | 1900 | 7 | 10 | 19000711 | (1)(2) | 19000711 | 3 | 1901 | 7 | 10 | 19010711 | (1)(2) | 19010711 | 4 | 2049 | 7 | 10 | 20490711 | (1)(2) | 20490711 | 5 | 2050 | 7 | 10 | 20500711 | (1)(2) | 20500711 | 6 | 2051 | 7 | 10 | 年的值不在指定范围内 | (1)(2) | 年的值不在指定范围内 | 7 | 2019 | 7 | 10 | 月的值不在指定范围内 | (3)(4)(5)(6) | 月的值不在指定范围内 | 8 | 2019 | 0 | 10 | 20190111 | (3)(4)(5)(6) | 20190111 | 9 | 2019 | 1 | 10 | 20190211 | (3)(4)(5)(6) | 20190211 | 10 | 2019 | 2 | 10 | 20191111 | (3)(4)(5)(6) | 20191111 | 11 | 2019 | 11 | 10 | 20191211 | (3)(4)(5)(6) | 20191211 | 12 | 2019 | 12 | 10 | 月的值不在指定范围内 | (3)(4)(5)(6) | 月的值不在指定范围内 | 13 | 2019 | 13 | 27 | 20190228 | (5)(7)(8)(9) | 20190228 | 14 | 2019 | 2 | 28 | 20190301 | (5)(7)(8)(9) | 20190301 | 15 | 2019 | 2 | 29 | 日的值不在指定范围内 | (5)(7)(8)(9) | 20190301 | 16 | 2020 | 2 | 28 | 20200229 | (5)(7)(8)(9) | 20200229 | 17 | 2020 | 2 | 29 | 20200301 | (5)(7)(8)(9) | 20200301 | 18 | 2020 | 2 | 30 | 日的值不在指定范围内 | (5)(7)(8)(9) | 20200230 | 19 | 2019 | 1 | 30 | 20190131 | (3)(9)(10) | 20190131 | 20 | 2019 | 1 | 31 | 20190201 | (3)(9)(10) | 20190201 | 21 | 2019 | 1 | 32 | 日的值不在指定范围内 | (3)(9)(10) | 日的值不在指定范围内 | 22 | 2019 | 4 | 30 | 20190501 | (4)(9)(10) | 20190501 | 23 | 2019 | 4 | 31 | 日的值不在指定范围内 | (4)(9)(10) | 20190431 | 24 | 2019 | 4 | 32 | 日的值不在指定范围内 | (4)(9)(10) | 日的值不在指定范围内 |
3.判定表驱动法 3.1条件桩 M1=month:这个月有30天 M2 = month : 这个月有31天 , 除了12月 M3 = month : 这个月是12月 M4 = month : 这个月是2月 D1 = day : 1 ≤ day ≤ 27 D2 = day : day = 28 D3 = day : day = 29 D4 = day : day = 30 D5 = day : day = 31 Y1 = year : year是闰年 Y2 = year : year不是闰年 3.2动作桩 A 0:不可能 A 1 : day + 1 A 2 : day复位 A 3 : month + 1 A 4 : month复位 A 5 : year + 1 3.3判断表
规则 | 1 2 3 | 4 | 5 | 6 7 8 9 | 10 | 11 12 13 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 22 | 条件 | | | | | | | | | | | | | | C1:month是 | M1 | M1 | M1 | M2 | M2 | M3 | M3 | M4 | M4 | M4 | M4 | M4 | M4 | C2:day是 | D1 D2 D3 | D4 | D5 | D1D2D3D4 | D5 | D1 D2 D3 D4 | D5 | D1 | D2 | D2 | D3 | D4 | D4 D5 | C3:year是 | | | | | | | | | Y1 | Y2 | Y1 | Y2 | | A0=不可能 | | | Y | | | | | | | | | Y | Y | A1:day+1 | Y | | | Y | | Y | | Y | Y | | | | | A2:day复位 | | Y | | | Y | | Y | | | Y | Y | | | A3:month+1 | | Y | | | Y | | | | | Y | Y | | | A4:month复位 | | | | | | | Y | | | | | | | A5: year+1 | | | | | | | Y | | | | | | |
3.3设计测试用例
测试规则序号 | 输入数据 | 期望输出 | 实际输出 | 1、2、3 | 2022 9 16 | 2022 9 17 | 2022 9 17 | 4 | 2022 9 30 | 2022 10 1 | 2022 10 1 | 5 | 2022 9 31 | 日的值不在指定范围内 | 日的值不在指定范围内 | 6、7、8、9 | 2022 1 16 | 2022 1 17 | 2022 1 17 | 10 | 2022 1 31 | 2022 2 1 | 2022 2 1 | 11、12、13、14 | 2022 12 16 | 2022 12 17 | 2022 12 17 | 15 | 2022 12 31 | 2023 1 1 | 2023 1 1 | 16 | 2022 2 16 | 2022 2 17 | 2022 2 17 | 17 | 2022 2 28 | 2022 3 1 | 2022 3 1 | 18 | 2020 2 28 | 2020 2 29 | 2020 2 29 | 19 | 2020 2 29 | 2020 3 1 | 2020 3 1 | 20 | 2022 2 29 | 日的值不在指定范围内 | 日的值不在指定范围内 | 21、22 | 2022 2 30 | 日的值不在指定范围内 | 日的值不在指定范围内 | |
所有评论(0)