软件测试01

实验项目名称:实验一          

一、 实验目的

1、 掌握黑盒测试的基础知识;

2、 掌握黑盒测试的检查内容及测试目的;

3、 掌握黑盒测试的几种基本测试方法:等价类划分方法、边界值分析方法、因果图法和决策表法;

二、 实验内容

1、 复习有关内容,理解黑盒测试;

2、 掌握等价类划分、边界值分析方法、因果图法和决策表法,并能设计出测试用例;

3、 对具体软件,能分别使用相应的黑盒测试方法设计测试用例,并实施测试、分析测试结果。

 

三、 实验步骤及结果

1、设计函数实现输入日期显示星期几,并用等价类及边界值法测试

 实验步骤:

① 设计程序

源程序见学习通平台;

运用等价类划分法设计测试用例,得到测试用例表。1图2是所有用例测试的结果:

  

                                 1

 

 

 

2

② 划分等价类,得到等价类表。等价类表格式如下:

输入条件

有效等价类

唯一标识

无效等价类

唯一标识

1900到2050内的闰年

(1)

Year<1900

(10)

 

1900到2050内的平年

(2)

Year>2050

(11)

 

 

 

非数字

(12)

1,3,5,7,8,10,12

(3)

Month<1

(13)

 

4,6,9,11

(4)

Month>12

(14)

 

2

(5)

非数字

(15)

1~28

(6)

Day<1

(16)

 

29

(7)

Day>31

(17)

 

30

(8)

Year为闰年

Month

2时,Day>29

(18)

 

31

(9)

Year为平年

Month

2时,Day>28

(19)

 

 

 

Month=1,3,5,7,8,10,12时,Day>31

(20)

 

 

 

Month=4,6,9,11

,Day>30

(21)

 

 

 

非数字

(22)

 

③ 运用等价类划分法设计测试用例,得到测试用例表。测试用例表格式如下:

序号

输入数据

覆盖等价类

输出

输入日期长度及类型

1位数字字符

5位数字字符

6位数字字符

7位数字字符

1个非数字字符

全部是非数字字符

八位有效数字

5

20221

202201

2022012

2022.3.26

.......

20220326

显示出错

显示出错

显示出错

显示出错

显示出错

显示出错

有效输入

月份范围

在有效范围边界上选取数据

20220101

20220001

20221201

20221301

有效输入

显示出错

有效输入

显示出错

天数范围

31天的月份

30天的月份

29天的月份

28天的月份

20220231

20220131

20220230

20220430

20220229

20200229

20220228

 

显示出错

有效输入

显示出错

有效输入

显示出错

有效输入

有效输入

 

 

④ 运用边界值法设计测试用例。

 

序号

输入数据

输出

1

0001-01-01

星期一

2

9999-12-31

星期五

3

2023-01-01

星期日

4

2023-12-31

星期日

5

2023-01-31

星期二

6

2023-04-30

星期日

7

2023-02-28

星期二

8

2020-02-29

星期六

9

2023-01-32

无效日期

10

2023-04-31

无效日期

11

2021-02-29

无效日期

12

2020-02-30

无效日期

13

2023-05-00

无效日期

14

2023-00-10

无效日期

15

2023-13-10

无效日期

16

0000-05-10

无效日期

17

10000-05-01

无效日期

 

2、找零钱最佳组合

   假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。 假定此商店的货币面值只包括:50(N50)10(N10) 5(N5)1(N1) 四种。

   请结合等价类划分法和边界值分析法为上述程序设计 出相应的测试用例。

实验步骤:

①  设计程序

源程序见学习通平台;

运用等价类划分法设计测试用例,得到测试用例表。3-10是所有用例测试的结果:

 

                    3

 

                 4      

                

 

          5                                6

 

 

            7                         8

 

 

9                           10

 

② 划分等价类,得到等价类表。等价类表格式如下:

输入条件

有效等价类

唯一标识

无效等价类

唯一标识

商品价格 R

0≤R≤100

E1

R<0 R>100

I1, I2

付款金额 P

R≤P≤100 

E2

P<R P>100

I3, I4

输入数据类型

R,P均为整数

E3

R,P含非整数

I5

 

③ 运用等价类划分法设计测试用例,得到测试用例表。测试用例表格式如下:

 

序号

输入数据

覆盖等价类

输出N50, N10, N5, N1)

1

(50, 50)

E1, E2, E3

(0, 0, 0, 0) 

2

(99, 100)

E1, E2, E3

(0, 0, 0, 1)

3

(0, 100)

E1, E2, E3

(2, 0, 0, 0)

4

(41, 100)

E1, E2, E3

(1, 0, 1, 4)

5

(95, 100)

E1, E2, E3

(0, 0, 1, 0)

6

(-5, 50)

I1

输入不合法

7

(101, 100)

I2

输入不合法

8

(60, 50)

I3

输入不合法

9

(0, 101)

I4

输入不合法

10

(50.5, 60)

I5

输入不合法

 

④ 运用边界值法设计测试用例。

 

序号

输入数据

输出(N50, N10, N5, N1)

1

(0, 0)

(0, 0, 0, 0)

2

(0, 1)

(0, 0, 0, 1)

3

(0, 5)

(0, 0, 1, 0)

4

(0, 10)

(0, 1, 0, 0)

5

(0, 50)

(1, 0, 0, 0)

6

(0, 100)

(2, 0, 0, 0)

7

(99, 100)

(0, 0, 0, 1)

8

(95, 100)

(0, 0, 1, 0)

9

(49, 100)

(1, 0, 0, 1)

10

(55, 60)

(0, 0, 1, 0)

 

3、有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:

若投入5角钱的硬币,按下橙汁啤酒的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按橙汁啤酒的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

模拟程序如下:

 

因果图法测试该程序,并撰写实验报告。

实验步骤:

 ①编写程序

源程序见学习通平台;

程序可视化结果如图11

 

                     11

②分析原因与结果

原因(输入条件):

 

C1: 投入5角硬币

 

C2: 投入1元硬币

 

C3: 按下“橙汁”按钮

 

C4: 按下“啤酒”按钮

 

结果(输出动作):

 

E1: 送出橙汁

 

E2: 送出啤酒

 

E3: 退回5角硬币

 

E4: 提示无效输入

 

 

③画出因果图(13

   

                      13

④转化为决策表

   

条件组合

C1

C2

C3

C4

有效输入

E1

E2

E3

E4

1

1

0

1

0

1

0

0

0

2

1

0

0

1

0

1

0

0

3

0

1

1

0

1

0

1

0

4

0

1

0

1

0

1

1

0

5

0

0

1

0

0

0

0

1

6

1

1

1

0

0

0

0

1

 

⑤根据决策表设计测试用例,得到测试用例表

序号

输入数据

输出

覆盖规则

1

(0.5, "橙汁")

("送出橙汁", "无找零")

组合1

2

(0.5, "啤酒")

("送出啤酒", "无找零")

组合2

3

(1.0, "橙汁")

("送出橙汁", "退回5角")

组合3

4

(1.0, "啤酒")

("送出啤酒", "退回5角")

组合4

5

(0.0, "橙汁")

"无效输入"

组合5

6

(0.5, "可乐")

"无效输入"

组合5

7

(1.0, "")

"无效输入"

组合5

 

 

4、航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。

假设一个中国的航空公司规定:

① 中国去欧美的航线所有座位都有食物供应,每个座位都可以播放电影。

② 中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。

③ 中国国内的航班的商务仓有食物供应,但是不可以播放电影

④ 中国国内航班的经济仓只有当飞行时间大于2小时时才有食物供应,但是不可以播放电影。

请用程序实现上述功能,并用决策表法设计测试用例,再执行测试,撰写实验报告。

 

 

实验步骤:

① 编写程序

源程序见学习通平台;

 

程序可视化结果以及测试用例如图14-16

 

 

           14

 

                 15

 

16

② 构造决策表

等价类

编号

等价类

编号

航线位国外欧美航线

M1

仓位位商务舱

D1

航线为国外非欧美航线

M2

仓位为经济舱

D2

航线位国内航线

M3

 

 

等价类

编号

等价类

编号

航线位国外欧美航线

M1

仓位位商务舱

D1

 

 

条件桩

动作桩

C1:航线位国外欧美航线

A1:播放电影

C2:航线为国外非欧美航线

A2:食物供应

C3:航线位国内航线

 

C4:仓位位商务舱

 

C5:仓位为经济舱

 

C6:飞行时间小于2h

 

C7:飞行时间大2h

 

 

条件桩

动作桩

C1:上图M1,M2,M3中之一

A1:播放电影

C2: 上图D1,D2之一

A2:食物供应

C3: 上图Y1,Y2之一

 

 


 

1

2

3

4

5

6

7

8

9

10

11

12

 

条件桩

C1航线

M1

M1

M1

M1

M2

M2

M2

M2

M3

M3

M3

M3

C2仓位

D1

D1

D2

D2

D1

D1

D2

D2

D1

D1

D2

D2

C3飞行时间

Y1

Y2

Y1

Y2

Y1

Y2

Y1

Y2

Y1

Y2

Y1

Y2

动作桩

A1:播放时间

Y

Y

Y

Y

Y

Y

 

 

 

 

 

 

A2:食物供应

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

 

Y

 

选项

规则

1

2

3

4

5

6

条件桩

C1航线

M1

M2

M2

M3

M3

M3

C2仓位

-

D1

2

D1

D2

D2

C3飞行时间

-

-

-

-

Y1

Y2

动作桩

A1:播放时间

Y

Y

 

 

 

 

A2:食物供应

Y

Y

Y

Y

 

Y

 

③ 根据决策表设计测试用例,得到测试用例表

测试用例编号

航线

仓位

飞行时间

预期输出

1

国外欧美航线

商务舱/经济舱

小于2h/大于等于2h

播放电影

食物供应

2

国外非欧美航线

商务舱

小于2h/大于等于2h

播放电影

食物供应

3

国外非欧美航线

经济舱

小于2h/大于等于2h

食物供应

4

国内航线

商务舱

小于2h/大于等于2h

食物供应

5

国内航线

经济舱

小于2h

-

6

国内航线

经济舱

大于等于2h

食物供应

5、旅馆住宿系统中,旅馆业主可进行添加房间操作。

– 旅馆业主登录旅馆住宿系统后,可以请求添加房间;

– 待进入“房间管理”对话框,单击“添加”按钮可进行添加房间操作;

– 添加房间时,可以设定房间的房间编号、房间类型、房间描述信息;

– 添加房间信息不能缺失,若某一项未填写,要给出提示信息;

– 房间编号长度不超过5个字符;

– 房间描述长度不超过1000个字符;

– 房间信息不能重复,成功填写后,可进行保存或取消操作,之后返回“房间管理”对话框,结束添加房间流程。

实验步骤:

利用黑盒测试策略编写添加房间功能的测试用例。

 源程序见学习通平台;

 

序号

房间编号长度是否大于5

是否添加房间类型

房间描述长度是否超过1000个字符

房间信息是否重复

信息是否缺失

期望输出

实际输出

1

Y

Y

Y

N

N

添加成功

添加成功

2

Y

Y

Y

Y

N

添加失败

添加失败

3

Y

Y

Y

N

Y

添加失败

添加失败

4

Y

Y

Y

Y

Y

添加失败

添加失败

5

Y

Y

N

N

N

添加失败

添加失败

6

Y

N

Y

N

N

添加失败

添加失败

7

N

Y

Y

N

N

添加失败

添加失败

8

N

N

N

N

N

添加失败

添加失败

 

四、 个人体会

① 在实际的测试中,如何设计测试用例才能达到用最少的测试用例检测出最多的缺陷;

盯着高风险的地儿测:先找找那些对用户影响大、常用或者容易出岔子的功能。就好比航空服务查询,国际航线和商务舱服务得重点测,因为这是大家特关心的。然后呢,按照风险高低给测试用例排个序,先把高风险的测了。

用等价类划分:把输入数据分成有效和无效的类别。比如说航线类型,能分成 “中国去欧美”“中国去非欧美”“中国国内” 这几个有效类,再加上个 “无效输入” 的无效类。从每个类别里挑一两个有代表性的例子当测试用例,像 “中国去欧美” 就选个具体的美国来测。

边界值分析:碰到数值型输入,像飞行时间,得把边界值找出来。比如飞行时间的边界可以是 “正好 2 小时”“不到 2 小时”“超过 2 小时”。然后设计测试用例专门测这些边界情况,像测测飞行 2 小时、1 小时 59 分、2 小时 1 分的情况。

场景分析:按照用户实际使用的场景来设计测试用例。像设计一个从中国到美国坐商务舱的航班查询场景,再设计一个国内短途坐经济舱的查询场景。得保证测试用例能把用户的关键操作流程,像查询、预订、支付这些都覆盖到。

用正交表测试:正交表这方法挺高效的,能减少测试用例数量,还能把各种可能的组合都覆盖到。就拿航线类型、舱位、飞行时间这几个因素来说,用正交表就能生成最少的测试用例组合。

靠经验测试:看看以前的缺陷数据,针对以前出过问题的地方设计测试用例。要是以前发现过经济舱在短途航班上食物供应有问题,那就专门设计个测试用例来看看现在还有没有这毛病。再就是结合开发人员和测试人员的经验,设计些可能找出缺陷的测试用例。

② 在进行用例设计时,如何考虑软件测试用例的充分性和减少软件测试用例的冗余性;

把需求搞清楚 比如说航空服务查询功能,需求可能包括航线类型、舱位、飞行时间、食物供应、电影播放这些,都得考虑到。 

别重复测一样的:检查一下测试用例,别让它们重复测相同的等价类。要是已经测过 “中国去欧美” 的商务舱了,要是 “中国去欧美” 的经济舱和商务舱行为没啥大差别,就不用再测经济舱了。要是有好几个测试用例都测同一个功能点,能合并就合并。像两个测试用例都测 “中国国内” 的经济舱,就是飞行时间不一样,那就可以合并成一个,两种情况一块测。

优化测试用例: 把那些没用或者多余的删掉。 

自动化测试:那些重复测、执行频率高的测试用例,可以用 Selenium、JUnit 这些自动化测试工具来测,能省不少人工。还可以用参数化测试,通过一组参数覆盖多种情况,减少测试用例数量。比如说测飞行时间,用参数化测试就能覆盖不同时间段。

 

 文件源码位置:

 压缩文件

 

posted @ 2025-05-06 21:38  艾鑫4646  阅读(17)  评论(0)    收藏  举报