最新软件测试大作业Word下载.docx
- 文档编号:18030970
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:37
- 大小:649.88KB
最新软件测试大作业Word下载.docx
《最新软件测试大作业Word下载.docx》由会员分享,可在线阅读,更多相关《最新软件测试大作业Word下载.docx(37页珍藏版)》请在冰豆网上搜索。
我们采用的PLC具有小型化、高速度、高性能等特点。
这次设计可以使我们熟练使用置位和复位等各条基本指令,通过对工程实例的模拟,熟练地掌握PLC的编程和程序调试。
本报告首先从软件测试的基本概念入手,介绍了与软件测试相关的一些理论知识。
然后对我要地图网站的结构和功能进行了简单的分析。
针对电梯划分的楼层,开关,载人数,独一性等功能模块进行测试。
从等价类,边界值,白盒测试三种方法对这个电梯程序进行测试最后对电梯实例缺陷进行总体概括分析。
2软件测试概述
2.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组合而成的数据、②字母、③负数、④特殊字符、⑤字母和特殊字符的组合、⑥字母和数字的组合、⑦空格和其他字符的组合、⑧小数。
序号
输入数据
包含
等价类
预计输出
实际输出
测试
结果
楼层数
电梯数
最大载人数
1
10
5
①
初始化
电梯控制台
Passed
2
010
05
3
0.1
⑧
初始化失败,提示输入非法
初始化失败,未提示
Failed
截图一
4
a
b
c
②
截图二
-10
-5
③
截图三
6
@
#
¥
④
截图四
7
a%
b%
c%
⑤
截图五
8
a10
b5
c10
⑥
截图六
9
1空格0
1空格0
⑦
截图七
截图一:
原因说明:
对于不合法的输入数据没有给出提示。
截图二:
截图三:
截图四:
截图五:
截图六:
截图七:
2、初始化界面
A、楼层数==电梯数==最大载人数
B、楼层数==电梯数<
最大载人数
C、楼层数<
电梯数==最大载人数
D、楼层数<
电梯数<
E、楼层数<
最大载人数<
电梯数
F、电梯数<
楼层数==最大载人数
G、电梯数<
楼层数<
H、电梯数<
楼层数
I、最大载人数<
电梯数==楼层数
J、最大载人数<
K、最大载人数<
测试用例:
A
成功初始化
初始化界面
显示不完全
B
C
初始化失败
提示错误原因
D
E
F
G
H
I
截图八
J
截图九
11
k
截图十
按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。
按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。
电梯层数高于楼层数。
原因说明:
截图八:
截图九:
按钮的界面为绝对布局,此时楼层数不够高,导致界面高度不够,按钮未完全展示。
截图十:
4.3.1边界值测试
边界值测试用例设计:
fail
-1
pass
space
space
null
\
12
13
14
9999
15
截图缺陷:
3.
分析总结
这个程序的一些缺陷通过边界值测试分析出来了,主要是某些边界值如0这样的数字系统是会报错的,另外当楼层小于电梯数量的时候系统也会报错,还有一些非法字符系统也会出错。
4.3.1白盒测试
白盒测试:
(一)语句:
A.LiftGroupMaster初始化各变量Init()
1.protectedvoidinit(){
2.outBtn=newOutButton(numOfFloor);
3.distance=newint[numOfFloor+1];
4.minOrder=newint[numOfFloor+1];
5.upAlloateFail=newint[numOfFloor+1];
6.downAlloateFail=newint[numOfFloor+1];
7.group=newLiftMaster[numOfLift+1];
8.for(inti=1;
i<
=numOfLift;
i++)
9.group[i]=newLiftMaster(numOfFloor);
10.upCalls=newint[numOfFloor+1];
11.downCalls=newint[numOfFloor+1];
12.for(inti=0;
=numOfFloor;
i++){
13.upCalls[i]=downCalls[i]=0;
14.upAlloateFail[i]=downAlloateFail[i]=0;
15.}
16.for(inti=1;
17.group[i].gateTimer=newTimer(gateCycle,this);
18.group[i].cageTimer=newTimer(cageCycle,this);
19.group[i].cageTimer.start();
20.}
21.for(inti=1;
22.for(intj=1;
j<
j++){
23.group[i].innerBtn.stopButton[j].addActionListener(this);
24.}
25.group[i].innerBtn.closeButton.addActionListener(this);
26.group[i].innerBtn.openButton.addActionListener(this);
27.}
28.for(intj=1;
29.outBtn.UP[j].addActionListener(this);
30.outBtn.DOWN[j].addActionListener(this);
31.}
32.for(inti=1;
33.group[i].liftState.enterButton.addActionListener(this);
34.group[i].liftState.exitButton.addActionListener(this);
35.}
36.reassignTimer=newTimer(reassignCycle,this);
37.reassignTimer.start();
38.waitCloseGate=newTimer[numOfFloor+1];
39.for(inti=1;
40.waitCloseGate[i]=newTimer(gateWaitCycle,this);
41.LiftsHeight=group[1].PanelHeight+30;
42.LiftsWidth=numOfLift*(group[1].PanelWidth+20);
43.outBtnHeight=group[1].PanelHeight;
44.outBtnWidth=145;
45.}
B、LiftGroupMaster构造函数
1.LiftGroupMaster(intnumOfFloor,intnumOfLift,intnumofPerson){
2.this.numOfFloor=numOfFloor;
3.this.numOfLift=numOfLift;
4.this.numOfPerson=numofPerson;
5.init();
6.JPanelliftGroup=newJPanel();
7.liftGroup.setLayout(newGridLayout(1,numOfLift,10,8));
9.liftGroup.add(group[i]);
10.liftGroup.setBackground(Color.WHITE);
11.liftGroup.setBounds(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.voidinit(intnumOfFloor){
3.ifOpen=false;
4.state=FREE;
5.floor=1;
6.toppestCall=numOfFloor+1;
7.lowestCall=0;
8.upStop=newint[numOfFloor+1];
9.downStop=newint[numOfFloor+1];
10.for(inti=1;
11.upStop[i]=downStop[i]=0;
12.stop=newint[numOfFloor+1];
13.for(inti=1;
14.stop[i]=0;
15.liftWidth=70;
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.publicLiftMaster(intnumOfFloor){
2.setBackground(Color.lightGray);
3.init(numOfFloor);
4.innerBtn=newInnerButton(numOfFloor);
5.liftState=newLiftState();
6.cage=newLiftCage(numOfFloor);
7.tag=newLiftTage(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():
覆盖对象
1—44
Passe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 软件 测试 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)