软件测试大作业

软件测试与质量保证期末大作业

江西财经大学

“软件测试与质量保证”课程

作业(实验)报告

组长姓名 学号 成 员 专 业 软件工程 班级 作业名称 多部电梯调度模拟软件功能性测试 指导教师

开课学期 2015 至_ 2016 学年_1_学期 完成时间 2014 年 12 月 27 日

目 录

1 前言.........................................................................................................................................1

2 软件测试概述.........................................................................................................................2

2.1 软件测试的概念..........................................................................................................2 2.2 测试的目的..................................................................................................................2 2.3 测试的原则..................................................................................................................2 3 电梯内容结构简介.................................................................................................................3

3.1 系统界面......................................................................................................................3 3.2 程序流程......................................................................................................................4 4 制定测试计划和实施.............................................................................................................5

4.1 测试方法......................................................................................................................5 4.2 测试通过标准..............................................................................................................6 4.3 测试用例的设计与实施(包括缺陷分析)............................ 错误!未定义书签。 ....................................................................... 错误!未定义书签。 ........................................................................................................12 ............................................................................................................14 5 总结.......................................................................................................................................29 结论与展望............................................................................................ 错误!未定义书签。

1 前言

电梯作为高层建筑中垂直运行的交通工具已于人们的日常生活密不可分,是建筑物中的永久性垂直交通工具。电梯实际上是一个人机交互式的控制系统,单纯用顺序控制或逻辑控制是不能满足控制要求的,而PLC控制的电梯运行可靠性高,程序设计方便灵活,抗干扰能力强、运行稳定可靠等特点,所以现在的电梯控制系统广泛采用可编程控制器来实现。在工艺加工的最初,把多种原料在合适的实践和条件下进行需要加工得以得到产品一直都是在人监控或操作下进行的但是现在随着时代的发展,这些方式已经不能满足工业生产的实际需要。实际生产中需要更精确、更便捷的控制装置。可编程控制器液体混合控制系统的特点:(1)系统自动工作;(2)控制的单周期运行方式;(3)启动后能自动完成下一个周期的工作,并循环。我们采用的PLC具有小型化、高速度、高性能等特点。这次设计可以使我们熟练使用置位和复位等各条基本指令,通过对工程实例的模拟,熟练地掌握PLC的编程和程序调试。

本报告首先从软件测试的基本概念入手,介绍了与软件测试相关的一些理论知识。然后对我要地图网站的结构和功能进行了简单的分析。针对电梯划分的楼层,开关,载人数,独一性等功能模块进行测试。从等价类,边界值,白盒测试三种方法对这个电梯程序进行测试 最后对电梯实例缺陷进行总体概括分析。

2 软件测试概述

2.1 软件测试的概念

软件测试是指在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。目前,国际上已对软件测试形成一个共识1:软件测试就是在软件投入使用前,对软件的需求分析、设计规格说明和系统编码的最终复审。由此可见,软件测试的对象不仅仅是程序,需求规格说明、概要设计、详细设计、源程序等都是软件测试的对象。首先,测试不能表明软件中不存在错误,它只能说明软件中存在错误。从用户的角度来看,希望通过测试发现错误和缺陷,从而考虑是否可接受该产品。而从软件开发者的角度来看,则希望通过测试,表明软件产品中不存在错误。换句话说,测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。

2.2 测试的目的

基于不同的立场,也会有不同的测试目的,从用户角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品但从软件开发者的角度出发,则希望测试能成为表明软件产品中不存在错误的过程,验证该产品已确实地实现了用户的要求,确立人们对软件质量的信心。

2.3 测试的原则

基于测试是为了寻找软件的错误和缺陷,评估与提高软件质量,我们在测试的时候遵循以下原则:

(1)所有的软件测试都应追溯到用户需求。

(2)应当把“尽早地不断地进行软件测试”作为软件测试者的座右铭。 (3)完全测试是不可能的,测试需要终止。 (4)测试无法显示软件潜在的缺陷。 (5)充分注意测试中的群集现象。 (6)程序员应避免检查自己的程序。 (7)尽量避免测试的随意性。

3 电梯内容结构简介

电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。电梯轿箱内设有楼层内选按钮S1~Sn,用以选择需停靠的楼层。L1为一层指示、L2为二层指示、L3为三层指示。电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向的呼叫均无效。例如,电梯停在一层,在二层轿箱外呼叫时,必须按二层上升呼叫按钮,电梯才响应呼叫(从一层运行到二层),按二层下降呼叫按钮无效;反之,若电梯停在三层,在二层轿箱外呼叫时,必须按二层下降呼叫按钮,电梯才响应呼叫(从三层运行到二层),按二层上升呼叫按钮无效。 3.1系统界面

图3.1 初始输入信息界面

图3.2 进入多电梯控制面板

3.2 程序流程

输入楼层信息,电梯数目及最大载人数

点击任意一组电梯的开关门

点击选中电梯的上人

点击选中电梯的关门

点击选中电梯的楼层选择

点击外部大楼选择面板的某楼层的上或者下

循环点击,直到按下关闭程序键

4 制定测试计划和实施

4.1 测试方法

在实例电梯测试中,主要从以下几个方法进行:边界值,等价类,白盒测试。

4.2 测试通过标准

(1) 如果测试结果与测试用例中预期结果一致测试通过否则不通过。 (2) 数据安全、正确,测试通过,否则测试不通过。 (3) 系统崩溃,无法测试,测试不通过。

4.3 测试用例的设计与实施

测试用例是将测试行为具体量化的方法之一, 指设计一种情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果,为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据。一个好的测试用例是在于它能发现至今未发现的错误,在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率测试用例的使用令软件测试的实施重点突出、目的明确在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度,缩短项目周期功能模块的通用化和复用化使软件易于开发,而测试用例的通用化和复用化使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升

4.3.1 等价类测试

一、黑盒测试——等价类测试:

1、初始化数据

①只由0-9组合而成的数据、②字母、③负数、④特殊字符、⑤字母和特殊字符的组合、⑥字母和数字的组合、⑦空格和其他字符的组合、⑧小数。

截图一:

原因说明:对于不合法的输入数据没有给出提示。

截图二:

原因说明:对于不合法的输入数据没有给出提示。

截图三:

原因说明:对于不合法的输入数据没有给出提示。

截图四:

原因说明:对于不合法的输入数据没有给出提示。

截图五:

原因说明:对于不合法的输入数据没有给出提示。

截图六:

原因说明:对于不合法的输入数据没有给出提示。

截图七:

原因说明:对于不合法的输入数据没有给出提示。 2、初始化界面

A、 楼层数 == 电梯数 == 最大载人数 B、 楼层数 == 电梯数

测试用例:

截图一:

原因说明:

按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图二:

原因说明:

按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图三:

原因说明:电梯层数高于楼层数。 截图四:

原因说明:电梯层数高于楼层数。 截图五:

原因说明:电梯层数高于楼层数。

截图六:

原因说明:

按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图七:

原因说明: 按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图八:

原因说明:

按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图九:

原因说明: 按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。 截

原因说明:电梯层数高于楼层数。

4.3.1 边界值测试

边界值测试用例设计:

截图缺陷: 1

2

3.

分析总结

这个程序的一些缺陷通过边界值测试分析出来了,主要是某些边界值如0这样的数字系统是会报错的,另外当楼层小于电梯数量的时候系统也会报错,还有一些非法字符系统也会出错。

4.3.1 白盒测试

白盒测试:

(一)语句:

A. LiftGroupMaster初始化各变量Init()

1. protected void init() { 2. outBtn = new OutButton(numOfFloor); 3. distance = new int[numOfFloor + 1]; 4. minOrder = new int[numOfFloor + 1]; 5. upAlloateFail = new int[numOfFloor + 1]; 6. downAlloateFail = new int[numOfFloor + 1]; 7. group = new LiftMaster[numOfLift + 1]; 8. for (int i = 1; i

44. 45. }

outBtnWidth = 145;

B、LiftGroupMaster构造函数

1. LiftGroupMaster(int numOfFloor, int numOfLift, int numofPerson) { 2. this.numOfFloor = numOfFloor; 3. this.numOfLift = numOfLift; 4. this.numOfPerson = numofPerson; 5. init(); 6. JPanel liftGroup = new JPanel(); 7. liftGroup.setLayout(new GridLayout(1, numOfLift, 10, 8)); 8. for (int i = 1; i

C、LiftMaster初始化各变量Init()

1. void init(int numOfFloor) { 2. this.numOfFloor = numOfFloor; 3. ifOpen = false; 4. state = FREE; 5. floor = 1; 6. toppestCall = numOfFloor + 1; 7. lowestCall = 0; 8. upStop = new int[numOfFloor + 1]; 9. downStop = new int[numOfFloor + 1]; 10. for (int i = 1; i

23. 24. 25. 26. }

}

PanelWidth = tagWidth + innerBtnWidth + liftWidth; PanelHeight = liftHeight + 10;

D、LiftMaster构造函数 1. public LiftMaster(int numOfFloor) { 2. setBackground(Color.lightGray); 3. init(numOfFloor); 4. innerBtn = new InnerButton(numOfFloor); 5. liftState = new LiftState(); 6. cage = new LiftCage(numOfFloor); 7. tag = new LiftTage(numOfFloor); 8. setLayout(null); 9. tag.setBounds(liftWidth + 9, 3, tagWidth, tagHeight); 10. cage.setBounds(8, 3, liftWidth, liftHeight); 11. innerBtn.setBounds(10 + tagWidth + liftWidth, 5, innerBtnWidth, innerBtnHeight);

12. liftState.setBounds(10 + tagWidth + liftWidth, 30 + innerBtnHeight, stateWidth, stateHeight);

13. add(tag); 14. add(cage); 15. add(innerBtn); 16. add(liftState); 17. }

(二)控制流程图

A.LiftGroupMaster初始化各变量Init()

B.LiftGroupMaster构造函数:

C.LiftMaster初始化各变量Init():

D.LiftMaster构造函数:

(三)测试用例

1.语句覆盖:

A.LiftGroupMaster初始化各变量Init():

2.判定覆盖:

原因说明:对于不合法的输入数据没有给出提示。

B.LiftGroupMaster构造函数:

截图一:

原因说明:对于不合法的输入数据没有给出提示。

原因说明:对于不合法的输入数据没有给出提示。

3. 条件覆盖:

(1) 相关条件语句:

A. LiftGroupMaster初始化各变量Init():

T1:电梯数 >= 1 F1:电梯数 = 0 F2:楼层数 = 1 F3:楼层数

T1:电梯数 >= 1 F1:电梯数

T1:楼层数 >= 1 F1:楼层数

(2) 测试用例:

截图一:

原因说明:对于不合法的输入数据没有给出提示。

截图一:

原因说明:对于不合法的输入数据没有给出提示。

原因说明:对于不合法的输入数据没有给出提示。

4. 判定条件覆盖:

截图一:

原因说明:对于不合法的输入数据没有给出提示。 截图一:

原因说明:对于不合法的输入数据没有给出提示。

截图一:

原因说明:对于不合法的输入数据没有给出提示。

5. 路径覆盖:

6. 数据流测试:

A. LiftGroupMaster初始化各变量Init():

def(group)= { 7,9,17,18,19,23,25,26,33,34 } use(group)= {41,42,43 } 定义-使用路径:

(1) 7-8-9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37- 38-39-40-41

(2) 7-8-9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37- 38-39-40-41-42

(3) 7-8-9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37- 38-39-40-41-42-43

(4) 9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38- 39-40-41

(5) 9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38- 39-40-41-42

(6) 9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38- 39-40-41-42-43

(7) 17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41 (8) 17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42 (9) 17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (10) 18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41 (11) 18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42 (12) 18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (13) 19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41 (14) 19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42 (15) 19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (16) 25-26-28-29-30-32-33-34-36-37-38-39-40-41 (17) 25-26-28-29-30-32-33-34-36-37-38-39-40-41-42 (18) 25-26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (19) 26-28-29-30-32-33-34-36-37-38-39-40-41 (20) 26-28-29-30-32-33-34-36-37-38-39-40-41-42 (21) 26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (22) 33-34-36-37-38-39-40-41 (23) 33-34-36-37-38-39-40-41-42 (24) 33-34-36-37-38-39-40-41-42-43 (35) 34-36-37-38-39-40-41

(36) 34-36-37-38-39-40-41-42

(37) 34-36-37-38-39-40-41-42-43

定义-清除路径:

(1) 34-36-37-38-39-40-41 (2) 34-36-37-38-39-40-41-42 (3) 34-36-37-38-39-40-41-42-43

根据测试结果,节点7,9,17,18,19,23,25,26,33都是缺陷可能发生点。 B. LiftGroupMaster构造函数:

def(liftGroup)= { 6 }

use(liftGroup)= {7,9,14} 定义-使用路径: (1) 6-7 (2) 6-7-8-9

(3) 6-7-8-9-10-11-12-13-14 (4) 6-7-8-10-11-12-13-14 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。 C. LiftMaster初始化各变量Init():

(A) liftWidth

def(liftWidth)= { 15 } use(liftWidth)= { 23 } 定义-使用路径:

15-16-17-18-19-20-21-22-23 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

(B) liftHeight

def(liftHeight)= { 16 }

use(liftHeight)= { 18,20,22,24 } 定义-使用路径: (1) 16-17-18

(2) 16-17-18-19-20

(3) 16-17-18-19-20-21-22

(4) 16-17-18-19-20-21-22-23-24 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。 (C) tagWidth

def(tagWidth)= { 17 } use(tagWidth)= { 23 } 定义-使用路径:

17-18-19-20-21-22-23

定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

(D) innerBtnWidth

def(innerBtnWidth)= { 19 } use(innerBtnWidth)= { 23 } 定义-使用路径: 19-20-21-22-23 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

D. LiftMaster构造函数:

(A) innerBtn

def(innerBtn)= { 4 }

use(innerBtn)= {11,15 } 定义-使用路径: (1) 4-5-6-7-8-9-10-11

(2) 4-5-6-7-8-9-10-11-12-13-14-15 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

(B) liftState

def(liftState)= {5 } use(liftState)= {12,16} 定义-使用路径:

(1) 5-6-7-8-9-10-11-12

(2) 5-6-7-8-9-10-11-12-13-14-15-16 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。 (C) cage

def(cage)= { 6 } use(cage)= { 10,14 } 定义-使用路径: (1) 6-7-8-9-10

(2) 6-7-8-9-10-11-12-13-14 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。 (D) tag

def(tag)= { 7 } use(tag)= { 9,13 } 定义-使用路径:

(1) 7-8-9

(2) 7-8-9-10-11-12-13 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

软件测试与质量保证期末大作业

29

软件测试与质量保证期末大作业

江西财经大学

“软件测试与质量保证”课程

作业(实验)报告

组长姓名 学号 成 员 专 业 软件工程 班级 作业名称 多部电梯调度模拟软件功能性测试 指导教师

开课学期 2015 至_ 2016 学年_1_学期 完成时间 2014 年 12 月 27 日

目 录

1 前言.........................................................................................................................................1

2 软件测试概述.........................................................................................................................2

2.1 软件测试的概念..........................................................................................................2 2.2 测试的目的..................................................................................................................2 2.3 测试的原则..................................................................................................................2 3 电梯内容结构简介.................................................................................................................3

3.1 系统界面......................................................................................................................3 3.2 程序流程......................................................................................................................4 4 制定测试计划和实施.............................................................................................................5

4.1 测试方法......................................................................................................................5 4.2 测试通过标准..............................................................................................................6 4.3 测试用例的设计与实施(包括缺陷分析)............................ 错误!未定义书签。 ....................................................................... 错误!未定义书签。 ........................................................................................................12 ............................................................................................................14 5 总结.......................................................................................................................................29 结论与展望............................................................................................ 错误!未定义书签。

1 前言

电梯作为高层建筑中垂直运行的交通工具已于人们的日常生活密不可分,是建筑物中的永久性垂直交通工具。电梯实际上是一个人机交互式的控制系统,单纯用顺序控制或逻辑控制是不能满足控制要求的,而PLC控制的电梯运行可靠性高,程序设计方便灵活,抗干扰能力强、运行稳定可靠等特点,所以现在的电梯控制系统广泛采用可编程控制器来实现。在工艺加工的最初,把多种原料在合适的实践和条件下进行需要加工得以得到产品一直都是在人监控或操作下进行的但是现在随着时代的发展,这些方式已经不能满足工业生产的实际需要。实际生产中需要更精确、更便捷的控制装置。可编程控制器液体混合控制系统的特点:(1)系统自动工作;(2)控制的单周期运行方式;(3)启动后能自动完成下一个周期的工作,并循环。我们采用的PLC具有小型化、高速度、高性能等特点。这次设计可以使我们熟练使用置位和复位等各条基本指令,通过对工程实例的模拟,熟练地掌握PLC的编程和程序调试。

本报告首先从软件测试的基本概念入手,介绍了与软件测试相关的一些理论知识。然后对我要地图网站的结构和功能进行了简单的分析。针对电梯划分的楼层,开关,载人数,独一性等功能模块进行测试。从等价类,边界值,白盒测试三种方法对这个电梯程序进行测试 最后对电梯实例缺陷进行总体概括分析。

2 软件测试概述

2.1 软件测试的概念

软件测试是指在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。目前,国际上已对软件测试形成一个共识1:软件测试就是在软件投入使用前,对软件的需求分析、设计规格说明和系统编码的最终复审。由此可见,软件测试的对象不仅仅是程序,需求规格说明、概要设计、详细设计、源程序等都是软件测试的对象。首先,测试不能表明软件中不存在错误,它只能说明软件中存在错误。从用户的角度来看,希望通过测试发现错误和缺陷,从而考虑是否可接受该产品。而从软件开发者的角度来看,则希望通过测试,表明软件产品中不存在错误。换句话说,测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。

2.2 测试的目的

基于不同的立场,也会有不同的测试目的,从用户角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品但从软件开发者的角度出发,则希望测试能成为表明软件产品中不存在错误的过程,验证该产品已确实地实现了用户的要求,确立人们对软件质量的信心。

2.3 测试的原则

基于测试是为了寻找软件的错误和缺陷,评估与提高软件质量,我们在测试的时候遵循以下原则:

(1)所有的软件测试都应追溯到用户需求。

(2)应当把“尽早地不断地进行软件测试”作为软件测试者的座右铭。 (3)完全测试是不可能的,测试需要终止。 (4)测试无法显示软件潜在的缺陷。 (5)充分注意测试中的群集现象。 (6)程序员应避免检查自己的程序。 (7)尽量避免测试的随意性。

3 电梯内容结构简介

电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。电梯轿箱内设有楼层内选按钮S1~Sn,用以选择需停靠的楼层。L1为一层指示、L2为二层指示、L3为三层指示。电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向的呼叫均无效。例如,电梯停在一层,在二层轿箱外呼叫时,必须按二层上升呼叫按钮,电梯才响应呼叫(从一层运行到二层),按二层下降呼叫按钮无效;反之,若电梯停在三层,在二层轿箱外呼叫时,必须按二层下降呼叫按钮,电梯才响应呼叫(从三层运行到二层),按二层上升呼叫按钮无效。 3.1系统界面

图3.1 初始输入信息界面

图3.2 进入多电梯控制面板

3.2 程序流程

输入楼层信息,电梯数目及最大载人数

点击任意一组电梯的开关门

点击选中电梯的上人

点击选中电梯的关门

点击选中电梯的楼层选择

点击外部大楼选择面板的某楼层的上或者下

循环点击,直到按下关闭程序键

4 制定测试计划和实施

4.1 测试方法

在实例电梯测试中,主要从以下几个方法进行:边界值,等价类,白盒测试。

4.2 测试通过标准

(1) 如果测试结果与测试用例中预期结果一致测试通过否则不通过。 (2) 数据安全、正确,测试通过,否则测试不通过。 (3) 系统崩溃,无法测试,测试不通过。

4.3 测试用例的设计与实施

测试用例是将测试行为具体量化的方法之一, 指设计一种情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果,为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据。一个好的测试用例是在于它能发现至今未发现的错误,在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率测试用例的使用令软件测试的实施重点突出、目的明确在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度,缩短项目周期功能模块的通用化和复用化使软件易于开发,而测试用例的通用化和复用化使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升

4.3.1 等价类测试

一、黑盒测试——等价类测试:

1、初始化数据

①只由0-9组合而成的数据、②字母、③负数、④特殊字符、⑤字母和特殊字符的组合、⑥字母和数字的组合、⑦空格和其他字符的组合、⑧小数。

截图一:

原因说明:对于不合法的输入数据没有给出提示。

截图二:

原因说明:对于不合法的输入数据没有给出提示。

截图三:

原因说明:对于不合法的输入数据没有给出提示。

截图四:

原因说明:对于不合法的输入数据没有给出提示。

截图五:

原因说明:对于不合法的输入数据没有给出提示。

截图六:

原因说明:对于不合法的输入数据没有给出提示。

截图七:

原因说明:对于不合法的输入数据没有给出提示。 2、初始化界面

A、 楼层数 == 电梯数 == 最大载人数 B、 楼层数 == 电梯数

测试用例:

截图一:

原因说明:

按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图二:

原因说明:

按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图三:

原因说明:电梯层数高于楼层数。 截图四:

原因说明:电梯层数高于楼层数。 截图五:

原因说明:电梯层数高于楼层数。

截图六:

原因说明:

按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图七:

原因说明: 按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图八:

原因说明:

按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。

截图九:

原因说明: 按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。 截

原因说明:电梯层数高于楼层数。

4.3.1 边界值测试

边界值测试用例设计:

截图缺陷: 1

2

3.

分析总结

这个程序的一些缺陷通过边界值测试分析出来了,主要是某些边界值如0这样的数字系统是会报错的,另外当楼层小于电梯数量的时候系统也会报错,还有一些非法字符系统也会出错。

4.3.1 白盒测试

白盒测试:

(一)语句:

A. LiftGroupMaster初始化各变量Init()

1. protected void init() { 2. outBtn = new OutButton(numOfFloor); 3. distance = new int[numOfFloor + 1]; 4. minOrder = new int[numOfFloor + 1]; 5. upAlloateFail = new int[numOfFloor + 1]; 6. downAlloateFail = new int[numOfFloor + 1]; 7. group = new LiftMaster[numOfLift + 1]; 8. for (int i = 1; i

44. 45. }

outBtnWidth = 145;

B、LiftGroupMaster构造函数

1. LiftGroupMaster(int numOfFloor, int numOfLift, int numofPerson) { 2. this.numOfFloor = numOfFloor; 3. this.numOfLift = numOfLift; 4. this.numOfPerson = numofPerson; 5. init(); 6. JPanel liftGroup = new JPanel(); 7. liftGroup.setLayout(new GridLayout(1, numOfLift, 10, 8)); 8. for (int i = 1; i

C、LiftMaster初始化各变量Init()

1. void init(int numOfFloor) { 2. this.numOfFloor = numOfFloor; 3. ifOpen = false; 4. state = FREE; 5. floor = 1; 6. toppestCall = numOfFloor + 1; 7. lowestCall = 0; 8. upStop = new int[numOfFloor + 1]; 9. downStop = new int[numOfFloor + 1]; 10. for (int i = 1; i

23. 24. 25. 26. }

}

PanelWidth = tagWidth + innerBtnWidth + liftWidth; PanelHeight = liftHeight + 10;

D、LiftMaster构造函数 1. public LiftMaster(int numOfFloor) { 2. setBackground(Color.lightGray); 3. init(numOfFloor); 4. innerBtn = new InnerButton(numOfFloor); 5. liftState = new LiftState(); 6. cage = new LiftCage(numOfFloor); 7. tag = new LiftTage(numOfFloor); 8. setLayout(null); 9. tag.setBounds(liftWidth + 9, 3, tagWidth, tagHeight); 10. cage.setBounds(8, 3, liftWidth, liftHeight); 11. innerBtn.setBounds(10 + tagWidth + liftWidth, 5, innerBtnWidth, innerBtnHeight);

12. liftState.setBounds(10 + tagWidth + liftWidth, 30 + innerBtnHeight, stateWidth, stateHeight);

13. add(tag); 14. add(cage); 15. add(innerBtn); 16. add(liftState); 17. }

(二)控制流程图

A.LiftGroupMaster初始化各变量Init()

B.LiftGroupMaster构造函数:

C.LiftMaster初始化各变量Init():

D.LiftMaster构造函数:

(三)测试用例

1.语句覆盖:

A.LiftGroupMaster初始化各变量Init():

2.判定覆盖:

原因说明:对于不合法的输入数据没有给出提示。

B.LiftGroupMaster构造函数:

截图一:

原因说明:对于不合法的输入数据没有给出提示。

原因说明:对于不合法的输入数据没有给出提示。

3. 条件覆盖:

(1) 相关条件语句:

A. LiftGroupMaster初始化各变量Init():

T1:电梯数 >= 1 F1:电梯数 = 0 F2:楼层数 = 1 F3:楼层数

T1:电梯数 >= 1 F1:电梯数

T1:楼层数 >= 1 F1:楼层数

(2) 测试用例:

截图一:

原因说明:对于不合法的输入数据没有给出提示。

截图一:

原因说明:对于不合法的输入数据没有给出提示。

原因说明:对于不合法的输入数据没有给出提示。

4. 判定条件覆盖:

截图一:

原因说明:对于不合法的输入数据没有给出提示。 截图一:

原因说明:对于不合法的输入数据没有给出提示。

截图一:

原因说明:对于不合法的输入数据没有给出提示。

5. 路径覆盖:

6. 数据流测试:

A. LiftGroupMaster初始化各变量Init():

def(group)= { 7,9,17,18,19,23,25,26,33,34 } use(group)= {41,42,43 } 定义-使用路径:

(1) 7-8-9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37- 38-39-40-41

(2) 7-8-9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37- 38-39-40-41-42

(3) 7-8-9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37- 38-39-40-41-42-43

(4) 9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38- 39-40-41

(5) 9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38- 39-40-41-42

(6) 9-10-11-12-13-14-16-17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38- 39-40-41-42-43

(7) 17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41 (8) 17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42 (9) 17-18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (10) 18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41 (11) 18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42 (12) 18-19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (13) 19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41 (14) 19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42 (15) 19-21-22-23-25-26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (16) 25-26-28-29-30-32-33-34-36-37-38-39-40-41 (17) 25-26-28-29-30-32-33-34-36-37-38-39-40-41-42 (18) 25-26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (19) 26-28-29-30-32-33-34-36-37-38-39-40-41 (20) 26-28-29-30-32-33-34-36-37-38-39-40-41-42 (21) 26-28-29-30-32-33-34-36-37-38-39-40-41-42-43 (22) 33-34-36-37-38-39-40-41 (23) 33-34-36-37-38-39-40-41-42 (24) 33-34-36-37-38-39-40-41-42-43 (35) 34-36-37-38-39-40-41

(36) 34-36-37-38-39-40-41-42

(37) 34-36-37-38-39-40-41-42-43

定义-清除路径:

(1) 34-36-37-38-39-40-41 (2) 34-36-37-38-39-40-41-42 (3) 34-36-37-38-39-40-41-42-43

根据测试结果,节点7,9,17,18,19,23,25,26,33都是缺陷可能发生点。 B. LiftGroupMaster构造函数:

def(liftGroup)= { 6 }

use(liftGroup)= {7,9,14} 定义-使用路径: (1) 6-7 (2) 6-7-8-9

(3) 6-7-8-9-10-11-12-13-14 (4) 6-7-8-10-11-12-13-14 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。 C. LiftMaster初始化各变量Init():

(A) liftWidth

def(liftWidth)= { 15 } use(liftWidth)= { 23 } 定义-使用路径:

15-16-17-18-19-20-21-22-23 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

(B) liftHeight

def(liftHeight)= { 16 }

use(liftHeight)= { 18,20,22,24 } 定义-使用路径: (1) 16-17-18

(2) 16-17-18-19-20

(3) 16-17-18-19-20-21-22

(4) 16-17-18-19-20-21-22-23-24 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。 (C) tagWidth

def(tagWidth)= { 17 } use(tagWidth)= { 23 } 定义-使用路径:

17-18-19-20-21-22-23

定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

(D) innerBtnWidth

def(innerBtnWidth)= { 19 } use(innerBtnWidth)= { 23 } 定义-使用路径: 19-20-21-22-23 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

D. LiftMaster构造函数:

(A) innerBtn

def(innerBtn)= { 4 }

use(innerBtn)= {11,15 } 定义-使用路径: (1) 4-5-6-7-8-9-10-11

(2) 4-5-6-7-8-9-10-11-12-13-14-15 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

(B) liftState

def(liftState)= {5 } use(liftState)= {12,16} 定义-使用路径:

(1) 5-6-7-8-9-10-11-12

(2) 5-6-7-8-9-10-11-12-13-14-15-16 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。 (C) cage

def(cage)= { 6 } use(cage)= { 10,14 } 定义-使用路径: (1) 6-7-8-9-10

(2) 6-7-8-9-10-11-12-13-14 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。 (D) tag

def(tag)= { 7 } use(tag)= { 9,13 } 定义-使用路径:

(1) 7-8-9

(2) 7-8-9-10-11-12-13 定义-清除路径:

所有的 定义-使用路径 都是 定义-清除路径,未发现错误。

软件测试与质量保证期末大作业

29


相关内容

  • 新理念大学英语上级学生操作说明
  • 学生用户的使用 学生用户在本系统中主要是完成英语学习,学习主要流程包括注册.分级测试.选班.单元学习.单元测试等.在学习过程中必须按照正常的流程进行操作. 学生登录 学生客户端登录 ● 安装"新理念大学英语学习大厅"客户端程序后,点击"新理念大学英语学 习大厅" ...

  • 装配作业指导书word格式
  • Page 1 of 18 --首家上传 K32 整机装配作业指导书 共 18 页 (包括封面) 技术文件类别:工艺文件 文 件 编 号 :K32-GY02 技术文件名称:K32 系列整机加工作业指导书 版 本:A 生 效 日 期 : 拟 制 审 核 批 准 深圳赛尔林电子科技有限公司 SMT HOM ...

  • ISO软件工程
  • 网上作业提交与管理系统可行性研究报告 1. 引言 为了更加了解房屋租赁服务系统,以及了解网上作业提交与管理系统规模化,流程方向,系统规律化,系统的开发成本和经济效益,同时也为了更全面系统的学习软件开发方向的知识. 1.1 编写目的 1)为了明确设计的软件是否有开发价值撰写本文档: 2)本文档供项目经 ...

  • 远方 积分球作业指导书
  • 积分球设备 作业指导书 适用站点积分球实验室文件编号 作业准备作准备 标准人力 一.概述.概述 1.可对灯具进行光学测试. 二.材料 项目 1 2 3 三.测试治具及耗材 项目 1 2 3 4 四.其他项检查 1.检查设备是否连接好设备名称积分球积分球 (大)(大)电量测试仪直流电源交流测试电源设备 ...

  • 争创工人先锋号事迹材料
  • 积极创建“工人先锋号”,打造完井测试中心新品牌。完井监测队完井测试行业管理组作为完井测试中心行业管理形象的重要窗口,在xx年紧密结合局、分公司开展的“三基”工作,以创“一流工作、一流服务、一流业绩、一流班组”为内容,以发挥榜样激励作用、争创先进班组为主要途径,积极开展岗位练兵、技术比武活动,形成了“ ...

  • 土壤电阻率作业指导书
  • 土壤电阻率测试作业指导书 1范围 本作业指导书适用于土壤电阻率的测量,规定了土壤电阻率测量试验的引用标准.测试原理和方法.仪器设备要求.作业程序.试验结果判断方法和试验注意事项等.制定本指导书的目的是规范土壤电阻率的测试,保证测试结果的准确性,为建构筑物防雷接地设计/雷击风险评估等提供详尽科学的数据 ...

  • T接线路工频参数测试方案
  • XXXKV XXXXXXX 线路线路工频参数测试作业指导书 试验单位: 业主单位: 试验负责人: 试验参加人: 试 验 地 点: 计划试验时间: 实际试验时间: 目录 1 概述----------------------1 2 应用范围--------------------1 3 引用标准.规程. ...

  • 铁路信号通信实习日记
  • xxxx年10月15日 星期三 晴 实习第一天,我来到了xx信号工区上岗 ,做一份完全没有接触过的工作了,心里真的忐忑不安.我对于即将要做的工作要做些什么,真的一点概念都没有,一副听天由命的样子.不过一直以来都很想了解一下人们口中说的信号工工作到底是怎么样,所以这次是一个很好的机会.但是也不止一次听 ...

  • 产品质量控制计划书
  • 泉州****电子有限公司 产品质量控制计划书(PMP) 序 流程 号 记号 1 工序 设备/仪器/ 治具 管理项目 检查项目 规格控制 编号 版本 01 共 1 页,第 1 页 生效日期 2013.12.15 审批 审核 黄品源 胡国华 无线呼叫系统 系统类别 名称 编制 陈联兵 无线呼叫主机 2 ...

  • 锅炉能效测试作业人员考核大纲
  • 附件4: 锅炉能效测试作业人员考核大纲 第一条 为了加强对锅炉能效测试工作的管理,提高锅炉能效测试作业人员的技术水平,规范锅炉能效测试作业人员的考核工作,根据<特种设备安全监察条例>.<特种设备作业人员监督管理办法>.<特种设备作业人员考核规则>.<锅炉节能 ...