软件测试实验报告

课程名称

软件质量保证与测试

班级

实验日期

姓名

学号

实验地点

实验名称

黑盒测试

实验目的与要求

1、掌握应用黑盒测试技术进行测试用例设计。

2、掌握对测试用例进行优化设计方法。

实验环境

Idea、亿图图示

实验内容

3.1 三角形问题的黑盒测试用例设计

3.2 次日问题的黑盒测试用例设计

一、设计方法描述

1:等价类划分法

等价类划分可以把全部输人数据合理划分为若干等价类,在每一个等价类中取个数据作为测试的输人条件,就可以用少量代表性的测试数据取得较好的测试效果。有效等价类:指对于程序规格说明来说,由合理的、有意义的输入数据构成的集合。利用它,可以检验程序是否实现了规格说明预先规定的功能和性能。无效等价类:指对于程序规格说明来说,由不合理的、无意义的输人数据构成的集合。利用它,可以检查程序中功能和性能的实现是否有不符合规格说明要求的地方。划分等价类的方法有:1.按区间划分;2.按数值划分;3.按数值集合划分;4.按限制条件划分;5.按限制规则划分;6。按处理方式划分。

在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。软件不能只接收合理的数据,还要经受意外的考验,即接收无效的或不合理的数据,这样的软件才能具有较高的可靠性。

2:边界值分析法

基于边界值分析方法选择测试用例的原则如下:

  1. 如果输人条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。
  2. 如果输人条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少1个的数作为测试数据。
  3. 根据规格说明的每一个输出条件,使用规则1和规则2。
  4. 根据规格说明的每一个输出条件,使用规则1和规则2。
  5. 如果程序的规格说明给出的输人域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例。
  6. 如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例。
  7. 分析规格说明,找出其他可能的边界条件。

二、设计测试用例

  1. 三角形问题

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

等腰三角形

12345615

等腰三角形

4

4,3,3

等腰三角形

12345614

等腰三角形

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划分等价类

输入数据(年、月、日)

有效等价类

无效等价类

(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.测试结果:

  1. 三角形问题

等价类划分法测试结果

有效等价类测试用例测试结果

无效等价类测试用例测试结果

 

 

  1. 次日问题

等价类划分法测试用例测试结果

 

边界值分析法测试用例测试结果

 

判定表分析法测试用例测试结果

 

2.缺陷分析:

用例15测试错误的原因是由于程序先判断day为29则得出结果为3.1,并没有先判断年是否为闰年。

用例18、23测试错误原因是程序并没有先判断接收参数是否在指定范围内,而是先根据month进行数据处理,再判断处理后的参数是否在指定范围内。

通过本次实验,掌握了应用黑盒测试技术进行测试用例设计,掌握了对测试用例进行优化设计方法,能用Junit实施参数化测试。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐