软件测试大作业复习进程_第1页
软件测试大作业复习进程_第2页
软件测试大作业复习进程_第3页
软件测试大作业复习进程_第4页
免费预览已结束,剩余32页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件测试大作业精品文档江西财经大学“软件测试与质量保证”课程作业(实验)报告组长姓名学号成员专业 软件工程 班级作业名称多部电梯调度模拟软件功能性测试指导教师开课学期2015至 2016 学年 1学期完成时间2014年12月27日收集于网络,如有侵权请联系管理员删除精品文档目录1前言 .12软件测试概述 .22.1软件测试的概念 .22.2测试的目的 .22.3测试的原则 .23电梯内容结构简介 .33.1系统界面 .33.2程序流程 .44制定测试计划和实施 .54.1测试方法 .54.2测试通过标准 .64.3 测试用例的设计与实施(包括缺陷分析) .错误 ! 未定义书签。4.3.1等价类

2、测试 .错误 ! 未定义书签。4.3.1边界值测试 .124.3.1白盒测试 .145总结 .29结论与展望 .错误 ! 未定义书签。收集于网络,如有侵权请联系管理员删除精品文档1 前言电梯作为高层建筑中垂直运行的交通工具已于人们的日常生活密不可分,是建筑物中的永久性垂直交通工具。电梯实际上是一个人机交互式的控制系统,单纯用顺序控制或逻辑控制是不能满足控制要求的,而PLC控制的电梯运行可靠性高,程序设计方便灵活,抗干扰能力强、运行稳定可靠等特点,所以现在的电梯控制系统广泛采用可编程控制器来实现。在工艺加工的最初,把多种原料在合适的实践和条件下进行需要加工得以得到产品一直都是在人监控或操作下进行

3、的但是现在随着时代的发展,这些方式已经不能满足工业生产的实际需要。实际生产中需要更精确、更便捷的控制装置。可编程控制器液体混合控制系统的特点:( 1)系统自动工作;( 2)控制的单周期运行方式;(3) 启动后能自动完成下一个周期的工作,并循环。我们采用的PLC具有小型化、高速度、高性能等特点。这次设计可以使我们熟练使用置位和复位等各条基本指令,通过对工程实例的模拟,熟练地掌握PLC的编程和程序调试。本报告首先从软件测试的基本概念入手,介绍了与软件测试相关的一些理论知识。然后对我要地图网站的结构和功能进行了简单的分析。针对电梯划分的楼层,开关,载人数,独一性等功能模块进行测试。从等价类,边界值,

4、白盒测试三种方法对这个电梯程序进行测试 最后对电梯实例缺陷进行总体概括分析。收集于网络,如有侵权请联系管理员删除精品文档2 软件测试概述2.1 软件测试的概念软件测试是指在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。目前 , 国际上已对软件测试形成一个共识1: 软件测试就是在软件投入使用前,对软件的需求分析、设计规格说明和系统编码的最终复审。由此可见, 软件测试的对象不仅仅是程序,需求规格说明、概要设计、详细设计、源程序等都是软件测试的对象。首先,测试不能表明软件中不存在错误,它只能说明软件中存在错误。从用户的角度来看,希望通过测试发现错误和缺陷,从而考虑是否可接受该产品。而从软

5、件开发者的角度来看,则希望通过测试,表明软件产品中不存在错误。换句话说,测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。2.2 测试的目的基于不同的立场,也会有不同的测试目的,从用户角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品但从软件开发者的角度出发,则希望测试能成为表明软件产品中不存在错误的过程,验证该产品已确实地实现了用户的要求,确立人们对软件质量的信心。2.3 测试的原则基于测试是为了寻找软件的错误和缺陷,评估与提高软件质量,我们在测试的时候遵循以下原则:(1) 所有的软件测试都应追溯到用户需求。(2) 应当把“尽早地不断地进行软

6、件测试”作为软件测试者的座右铭。(3) 完全测试是不可能的,测试需要终止。(4) 测试无法显示软件潜在的缺陷。收集于网络,如有侵权请联系管理员删除精品文档(5) 充分注意测试中的群集现象。(6) 程序员应避免检查自己的程序。(7) 尽量避免测试的随意性。3 电梯内容结构简介电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。电梯轿箱内设有楼层内选按钮 S1Sn,用以选择需停靠的楼层。 L1 为一层指示、 L2 为二层指示、 L3 为三层指示。电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向的呼叫均无效。例如,电梯停在一层,在二层轿箱外呼叫时,必须按

7、二层上升呼叫按钮,电梯才响应呼叫(从一层运行到二层),按二层下降呼叫按钮无效;反之,若电梯停在三层,在二层轿箱外呼叫时,必须按二层下降呼叫按钮,电梯才响应呼叫(从三层运行到二层),按二层上升呼叫按钮无效。3.1 系统界面图 3.1初始输入信息界面收集于网络,如有侵权请联系管理员删除精品文档图 3.2进入多电梯控制面板3.2程序流程输入楼层信息,电梯数目及最大载人数点击任意一组电梯的开关门点击选中电梯的上人点击选中电梯的关门点击选中电梯的楼层选择点击外部大楼选择面板的某楼层的上或者下收集于网络,如有侵权请联系管理员删除精品文档循环点击,直到按下关闭程序键4 制定测试计划和实施4.1 测试方法在实

8、例电梯测试中,主要从以下几个方法进行:边界值,等价类,白盒测试。4.2 测试通过标准(1) 如果测试结果与测试用例中预期结果一致测试通过否则不通过。(2) 数据安全、正确,测试通过,否则测试不通过。(3) 系统崩溃,无法测试,测试不通过。4.3 测试用例的设计与实施测试用例是将测试行为具体量化的方法之一,指设计一种情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果,为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据。一个好的测试用例是在于它能发现至今未发现的错误,在开始实施测试之前设计好测试收集于网络,如有侵权请联系管理员删除精品文档用例,可以避免盲目测试

9、并提高测试效率测试用例的使用令软件测试的实施重点突出、目的明确在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度,缩短项目周期功能模块的通用化和复用化使软件易于开发,而测试用例的通用化和复用化使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升4.3.1等价类测试一、黑盒测试等价类测试:1、初始化数据只由 0-9 组合而成的数据、字母、负数、特殊字符、字母和特殊字符的组合、字母和数字的组合、空格和其他字符的组合、小数。序输入数据包含号楼层数电梯数最大载人数等价类110510201005010预计输出实际输出初始化初始化电梯控制台电梯控制台初始化初

10、始化电梯控制台电梯控制台初始化失败,初始化失提示输入非法败,未提示测试结果PassedPassedFailed截图一初始化失初始化失4abc败,提示输败,未提示入非法初始化失初始化失5-10-5-10败,提示输败,未提示入非法初始化失初始化失6#¥败,提示输败,未提示入非法初始化失初始化失7a%b%c%败,提示输败,未提示入非法初始化失初始化失8a10b5c10败,提示输败,未提示入非法1 空格初始化失初始化失921空格 0败,提示输0败,未提示入非法Failed截图二Failed截图三Failed截图四Failed截图五Failed截图六Failed截图七收集于网络,如有侵权请联系管理员删除

11、精品文档截图一:原因说明:对于不合法的输入数据没有给出提示。截图二:原因说明:对于不合法的输入数据没有给出提示。截图三:原因说明:对于不合法的输入数据没有给出提示。截图四:原因说明:对于不合法的输入数据没有给出提示。收集于网络,如有侵权请联系管理员删除精品文档截图五:原因说明:对于不合法的输入数据没有给出提示。截图六:原因说明:对于不合法的输入数据没有给出提示。截图七:原因说明:对于不合法的输入数据没有给出提示。2、初始化界面A、楼层数 = 电梯数 = 最大载人数B、 楼层数 = 电梯数 < 最大载人数C、 楼层数 < 电梯数 = 最大载人数D、楼层数 < 电梯数 <

12、最大载人数E、 楼层数 < 最大载人数< 电梯数F、 电梯数 < 楼层数 = 最大载人数G、电梯数 < 楼层数 < 最大载人数H、电梯数 < 最大载人数< 楼层数I、最大载人数< 电梯数 = 楼层数收集于网络,如有侵权请联系管理员删除精品文档J、最大载人数< 电梯数 < 楼层数K、最大载人数< 楼层数 < 电梯数测试用例:序输入数据包含号楼层数电梯数最大载人数等价类1666A2667B3677C4789D5798E6727F7768G81028H9776I10876J11786k截图一:预计输出电梯控制台成功初始化电梯控制

13、台成功初始化初始化失败提示错误原因初始化失败提示错误原因初始化失败提示错误原因电梯控制台成功初始化电梯控制台成功初始化电梯控制台成功初始化电梯控制台成功初始化电梯控制台成功初始化初始化失败提示错误原因实际输出初始化界面显示不完全初始化界面显示不完全初始化失败初始化失败初始化失败初始化界面显示不完全初始化界面显示不完全电梯控制台成功初始化初始化界面显示不完全初始化界面显示不完全初始化失败测试结果Failed截图一Failed截图二Failed截图三Failed截图四Failed截图五Failed截图六Failed截图七PassedFailed截图八Failed截图九Failed截图十收集于网络,

14、如有侵权请联系管理员删除精品文档原因说明:按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。截图二:原因说明:按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。截图三:原因说明:电梯层数高于楼层数。截图四:原因说明:电梯层数高于楼层数。收集于网络,如有侵权请联系管理员删除精品文档截图五:原因说明:电梯层数高于楼层数。截图六:原因说明:按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。截图七:收集于网络,如有侵权请联系管理员删除精品文档原因说明:按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。截图八

15、:原因说明:按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。截图九:收集于网络,如有侵权请联系管理员删除精品文档原因说明:按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。截图十:原因说明:电梯层数高于楼层数。4.3.1边界值测试边界值测试用例设计:收集于网络,如有侵权请联系管理员删除精品文档序输入数据测试楼层最大载预计输出实际输出号电梯数结果数人数1000failfailfail2-100failfailfail30-10failfailfail400-1failfailfail5111failpasspass6101passfailfail

16、7110passpasspass收集于网络,如有侵权请联系管理员删除精品文档8011failfailfail9spacespacespacefailfailfail10nulnullnullfailfailfaill11failfailfail12344passfailfail13541passpasspass14559999failpasspass1599911failpasspass9截图缺陷:123.分析总结收集于网络,如有侵权请联系管理员删除精品文档这个程序的一些缺陷通过边界值测试分析出来了,主要是某些边界值如0 这样的数字系统是会报错的,另外当楼层小于电梯数量的时候系统也会报错,还有

17、一些非法字符系统也会出错。4.3.1白盒测试收集于网络,如有侵权请联系管理员删除精品文档白盒测试:(一)语句:A.LiftGroupMaster 初始化各变量 Init ()1.protected void init() 2.outBtn = new OutButton(numOfFloor);3.distance = new intnumOfFloor + 1;4.minOrder = new intnumOfFloor + 1;5.upAlloateFail = new intnumOfFloor + 1;6.downAlloateFail = new intnumOfFloor + 1;

18、7.group = new LiftMasternumOfLift + 1;8.for (int i = 1; i <= numOfLift; i+)9.groupi = new LiftMaster(numOfFloor);10.upCalls = new intnumOfFloor + 1;11.downCalls = new intnumOfFloor + 1;12.for (int i = 0; i <= numOfFloor; i+) 13.upCallsi = downCallsi = 0;14.upAlloateFaili = downAlloateFaili = 0

19、;15.16.for (int i = 1; i <= numOfLift; i+) 17.groupi.gateTimer = new Timer(gateCycle, this);18.groupi.cageTimer = new Timer(cageCycle, this);19.groupi.cageTimer.start();20.21.for (int i = 1; i <= numOfLift; i+) 22.for (int j = 1; j <= numOfFloor; j+) 23.groupi.innerBtn.stopButtonj.addAction

20、Listener(this);24.25.groupi.innerBtn.closeButton.addActionListener(this);26.groupi.innerBtn.openButton.addActionListener(this);27.28.for (int j = 1; j <= numOfFloor; j+) 29.outBtn.UPj.addActionListener(this);30.outBtn.DOWNj.addActionListener(this);31.32.for (int i = 1; i <= numOfLift; i+) 33.g

21、roupi.liftState.enterButton.addActionListener(this);34.groupi.liftState.exitButton.addActionListener(this);35.36.reassignTimer = new Timer(reassignCycle, this);收集于网络,如有侵权请联系管理员删除精品文档37.reassignTimer.start();38.waitCloseGate = new TimernumOfFloor + 1;39.for (int i = 1; i <= numOfLift; i+)40.waitCl

22、oseGatei = new Timer(gateWaitCycle, this);41.LiftsHeight = group1.PanelHeight + 30;42.LiftsWidth = numOfLift * (group1.PanelWidth + 20);43.outBtnHeight = group1.PanelHeight;44.outBtnWidth = 145;45. B、 LiftGroupMaster 构造函数1.LiftGroupMaster(int numOfFloor, int numOfLift, intnumofPerson) 2.this.numOfFl

23、oor = 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 <= numOfLift; i+)9.liftGroup.add(groupi);10.liftGroup.setBackground(Color.WHITE);11.liftGroup.setB

24、ounds(1, 1, LiftsWidth, LiftsHeight);12.outBtn.setBounds(LiftsWidth + 3, 1, outBtnWidth,outBtnHeight);13.setLayout(null);14.add(liftGroup);15.add(outBtn);16.C、 LiftMaster 初始化各变量 Init ()1.void init(int numOfFloor) 2.this.numOfFloor = numOfFloor;3.ifOpen = false;4.state = FREE;5.floor = 1;6.toppestCal

25、l = numOfFloor + 1;7.lowestCall = 0;8.upStop = new intnumOfFloor + 1;9.downStop = new intnumOfFloor + 1;10.for (int i = 1; i <= numOfFloor; i+)收集于网络,如有侵权请联系管理员删除精品文档11.upStopi = downStopi = 0;12.stop = new intnumOfFloor + 1;13.for (int i = 1; i <= numOfFloor; i+)14.stopi = 0;15.liftWidth = 70;

26、16.liftHeight = 60 * numOfFloor;17.tagWidth = 30;18.tagHeight = liftHeight;19.innerBtnWidth = 120;20.innerBtnHeight = liftHeight / 3;21.stateWidth = 120;22.stateHeight = 2 * liftHeight / 9;23.PanelWidth = tagWidth + innerBtnWidth + liftWidth;24.PanelHeight = liftHeight + 10;25.26. D、LiftMaster构造函数1.

27、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.

28、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.收集于网络,如有侵权请联系管理员删除

29、精品文档(二)控制流程图收集于网络,如有侵权请联系管理员删除精品文档1234567891011121314161718192122252326282930323334363738394041424344A LiftGroupMaster 初始化各变量 Init ()收集于网络,如有侵权请联系管理员删除精品文档B LiftGroupMaster 构造函数:123456789151413121110C LiftMaster 初始化各变量 Init ():123456987101112131415161718192024232221DLiftMaster 构造函数:12345678161514131

30、211109(三)测试用例收集于网络,如有侵权请联系管理员删除精品文档1语句覆盖:A LiftGroupMaster 初始化各变量Init():序输入数据预计输出覆盖对象实际输出测试号楼层数电梯数最大载人数结果111213初始化1 44初始化Passed电梯控制台电梯控制台B LiftGroupMaster 构造函数:序输入数据预计输出覆盖对象实际输出测试号楼层数电梯数最大载人数结果111213初始化1 15初始化Passed电梯控制台电梯控制台CLiftMaster 初始化各变量 Init ():序输入数据预计输出覆盖对象实际输出测试号楼层数电梯数最大载人数结果111213初始化1 24初始化Passed电梯控制台电梯控制台D LiftMaster 构造函数:序输入数据预计输出覆盖对象实际输出测试号楼层数电梯数最大载人数结果111213初始化1 16初始化Passed电梯控制台电梯控制台2判定覆盖:A LiftGroupMaster 初始化各变量Init():序输入数据预计输出覆盖对象实际输出测试号楼层数电梯数最大载人数结果111213初始化1 44初始化Passed电梯控制台电梯控制台1 8、 1012、初始化失败,16、 21、 25、初始化失F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论