软件测试实验报告
课程名称
软件质量保证与测试
班级
实验日期
姓名
学号
实验地点
实验名称
黑盒测试
实验目的与要求
1、掌握应用黑盒测试技术进行测试用例设计。
2、掌握对测试用例进行优化设计方法。
实验环境
Idea、亿图图示
实验内容
3.1 三角形问题的黑盒测试用例设计
3.2 次日问题的黑盒测试用例设计
测
试
用
例
描
述
及
实
验
步
骤
一、设计方法描述
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
日的值不在指定范围内
日的值不在指定范围内
调
试
过
程
及
实
验
结
果
1.测试结果:
- 三角形问题
等价类划分法测试结果
有效等价类测试用例测试结果
无效等价类测试用例测试结果
- 次日问题
等价类划分法测试用例测试结果
边界值分析法测试用例测试结果
判定表分析法测试用例测试结果
2.缺陷分析:
用例15测试错误的原因是由于程序先判断day为29则得出结果为3.1,并没有先判断年是否为闰年。
用例18、23测试错误原因是程序并没有先判断接收参数是否在指定范围内,而是先根据month进行数据处理,再判断处理后的参数是否在指定范围内。
总
结
通过本次实验,掌握了应用黑盒测试技术进行测试用例设计,掌握了对测试用例进行优化设计方法,能用Junit实施参数化测试。
版权归原作者 .wei-upup 所有, 如有侵权,请联系我们删除。