软件测试计划书精编.docx

上传人:b****6 文档编号:4921587 上传时间:2022-12-11 格式:DOCX 页数:16 大小:32.86KB
下载 相关 举报
软件测试计划书精编.docx_第1页
第1页 / 共16页
软件测试计划书精编.docx_第2页
第2页 / 共16页
软件测试计划书精编.docx_第3页
第3页 / 共16页
软件测试计划书精编.docx_第4页
第4页 / 共16页
软件测试计划书精编.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

软件测试计划书精编.docx

《软件测试计划书精编.docx》由会员分享,可在线阅读,更多相关《软件测试计划书精编.docx(16页珍藏版)》请在冰豆网上搜索。

软件测试计划书精编.docx

软件测试计划书精编

软件测试计划书

1.测试范围:

本软件为智能红绿灯控制系统,是针对城市交通管理员设计的,城市交通管理员是这个软件的使用者,他通过此软件为各个路口设置参数,使系统能够根据输入的参数通过控制交通灯实时地对各路口的交通进行调度;能够随时掌握现在交通的具体情况。

由于各种活动的相互影响和制约,我们不可能把这个软件设计的完美无缺,可能有许多错误,这些错误甚至会对软件产品以至整个系统产生致命的危害,因此就需要对我们的软件进行测试,主要是对制作的软件产品进行检查,及时的发现程序中逻辑错误,以保证软件产品的正确性和可靠性。

具体结合到我们这个软件,是要做到一下几点。

1,通过测试来检验软件是否可以正常运行。

2,如果无法正常运行,需要检测出错误处在哪里,并加以纠正3,本软件是否可以一一满足用户的所有要求。

4,当用户出现违规操作(例如设定最大绿灯时间大于所给范围等),系统能否发现并提醒用户改正。

在测试阶段我们首先必须明确信息的流向,下图给出了测试阶段信息流向的模型,我们也将根据这个图来指导我们完成测试阶段的工作。

软件配置纠错纠正错误

测试结果

错误率

测试配置预期结果

可靠性预测

我们计划将测试分为3个阶段:

首先,将整个程序按功能划分成3个子模块,分别对每个模块进行单元测试,在该阶段我们在每个单独的程序块中,消除块内的逻辑、功能上的缺陷和错误,保证每个块作为一个单元能正确执行,并为上一级测试做准备;

第二步,进行联合测试,将3个模块进行集中和装配,形成一个完整的软件后就可以进行联合测试,联合测试除了进一步检测和排除子系统(或系统)结构或相应程序结构上的错误之外,还应该验证所有的系统单元配合是否合适、整体性能和功能是否完整;

最后,在对整个程序进行有效性测试,在模块测试、联合测试之后,就可以对组装起来的软件进行有效性测试,有效性测试就是根据需求分析规格说明书中规定的有效性标准,通过功能测试验证软件系统是否与用户的要求一致。

2.测试计划:

2.1:

静态测试

静态测试是指不执行程序而找出程序存在的错误。

这种方法以人工的、非形式化的方法对程序进行分析和测试,不依赖计算机的测试。

在静态测试中,主要是找出程序中的语法错误,我们将通过下面检验清单来完成,可以提高检查程序的一般性错误的评审效果。

1.数据引用错误

(1)引用未赋值的变量;

(2)数组元素下标越界或非整数值;

(3)指针变量访问的内存空间非法;

(4)对具有多个名字的同一内存区中的数据,由于属性(或数据类型)说明不一致而引起的错误;

(5)使用了非法的变量类型和属性说明;

(6)访问了不存在的存储空间;

(7)指针或索引所访问的数据属性不属于编译系统处理的范围;

(8)多个过程或程序引用的数据结构不一致;

(9)变址引用越界;

(10)变址或数组下标运算“差1”;

(11)汇编累加器、位移量、程序定位及空留位值越限;

2.数据说明错误

(1)对某些变量没有说明,缺省属性使用不正确;

(2)数组或字符串初始化不正确;

(3)变量的长度,类型,存储类别规定不对;

(4)变量初始值与其存储类别说明不一致;

(5)误用相似的变量名,系统保留字、未加说明和前后矛盾的变量名;

(6)定义了未被引用或仅引用了一次的变量;

3.计算错误

(1)不同类型的变量混合计算,或用零作除数;

(2)赋值长度大于被赋值变量长度;

(3)表达式中间结果或最后结果出现上溢或下溢;

(4)二进制数的运算精度不够或变量值超出有效范围;

(5)非法运算符和运算符优先顺序不对;

(6)整形变量使用错误或有非法算式;

3.比较错误

(1)不同类型的变量进行比较,如布尔量和整形的比较;

(2)比较运算符的五接和不正确的布尔表达式;

(3)逻辑操作数和比较数混合在一起;

(4)二进制浮点数进行比较由舍入造成错误;

(5)编译程序不能正确处理的布尔表达式;

4.控制流程错误

(1)多路分支表示变量值大于可能的分支数;

(2)循环不终止或出现死循环;

(3)入口条件不正确出想多循环一次或少循环一次;

(4)复合语句不配对,或迭代次数不对(过多或过少);

5.接口错误

(1)调用模块预备调用模块间的参数个数、顺序、类型、范围和单位不匹配;

(2)模块间传送的变量的类型、范围、单位定义不一致;

(3)函数、过程和子程序调用中的实参和形参的个数、类型、范围、单位、顺序不匹配;

(4)子程序调用前后定义的属性不一致;

6.输入/输出

(1)文件显示说明、属性是否正确;

(2)I/O语句与格式语句失配,I/O缓冲区与纪录大小失配,没有必要的出错处理;

(3)使用未打开的文件;

(4)同时打开的文件数超过系统允许的文件数;

(5)忘记检查输入的有效性;

7.其他错误

(1)定义未被引用或仅引用了一次的变量;

(2)程序的功能被遗漏;

(3)忘记检查输入的有效性;

经过和以上错误清单的逐一比照,我们会改正源程序中的语法和逻辑错误,逐步完善程序。

直到完全消除程序的语法和逻辑错误,可以正常运行为止,在这一阶段,我们还将规范程序的格式,添加必要的注释,使程序的结构清晰,层次分明,以便于阅读和以后的维护和修改。

2.2:

单元测试

单元测试是指被测试程序是单个子程序、过程的逻辑测试。

我们的任务试验整体功能和接口说明是否有不符合规定的情况,以及编码是否有错误。

经过静态测试之后,应集中注意力逐一测试程序中的每一个单元,而不是把程序作为一个整体来测试。

因此,为实现这一阶段的测试我们将核心程序按照功能划分成三个模块:

HUANG是计算每个路口的GN的,MA是计算一个每个相位的紧迫度的,DONG则将他们联合起来,相当于是一个总的模块,是用来决策现在的通行相位,和通行相位需要调度的时间。

测试的时候,则分模块进行。

具体过程见后面的设计步骤。

2.3联合测试

单元测试完毕后,就要考虑用什么方法把单元连接起来的问题。

就在单元测试的基础上,把每个单元按照设计要求逐步连接起来进行联合测试,主要目的是发现于接口有关的错误。

由于先已经完成单元测试,所以我们采用非增试测试,就是先分别测试每个单元,再把所有单元按设计要求连接起来成为完整的程序。

具体过程见后面的测试步骤。

2.4有效性测试

有效性测试的目的是为了向用户证明系统功能能够满足用户的合理要求,由用户来验收整个软件产品。

采取黑盒测试法来进行,具体过程见后面的测试步骤。

2.5测试环境

本软件运行环境要求:

CPU:

166HZ以上

内存:

32M

显卡:

至少支持256色

硬盘:

1G

操作系统:

Win9X/2000/Me/XP

车流检测仪(至少32台)

3.测试步骤

3.1静态测试

静态测试,主要是找出程序中的语法错误,我们将通过上面检验清单来完成,可以提高检查程序的一般性错误的评审效果。

要求程序结构清晰,层次分明,注释详尽,为以后的修改和维护打好基础。

3.2单元测试

单元测试,高质量的程序单元是组成可靠系统的基础,对单元性能的评价又以下几点:

1.单元接口

2.局部数据结构

3.重要的执行路径测试

4.出错处理路径

5.影响上述几点的边界条件测试

我们将核心程序分三个模块:

HUANG是计算每个路口的GN的,MA是计算一个每个相位的紧迫度的,DONG则将他们联合起来,相当于是一个总的模块,是用来决策现在的通行相位,和通行相位需要调度的时间。

测试的时候,则分模块进行。

3.2.1模块1:

HUANG

3.2.1.1.模块功能:

HUANG的主要功能是计算控制路口的gn值(如果是通行路口该值为nc)和该路口的下游路口的nc值。

3.2.1.2.测试数据和文件访问:

HUANG的输入值是80个数,分成5组,即是5个路口的相位参数,每组16个。

16个数分别是8个相位的两个检测器返回8个方向上的车辆排队长度的值,每个方向上有ta和tb的值,前面是ta后面是tb。

对于非通行相位第二次的gn的值要比第一次大;就是说对于该方向的第二次的tb-ta要比第一次的tb-ta要大,因为对于非通行相位,在这段时间类,两个检测仪之间的gn即等待的车辆数只会增加(或者相等)。

对于通行相位就可以随意了,后一次比前一次大或者小都是可以的。

非通行相位GN=Tb-Ta,通行方向的ov等于你第二次输入的ta减去第一次的ta的结果再除以15(即(ta.present-ta.history)/15)。

这一部分的接口:

输入部分接口采用的是voidintersection:

:

sendnumber()函数;

输出部分:

通过调用voidgetGN();voidgetNC();两个函数从而通过一系列的计算,得到两个数组的值doubleGN[8];doubleOV[8];这两个数组将作为后面程序的数据接口;

3.2.1.3测试步骤:

1.测试voidintersection:

:

sendnumber();函数是否能够正常工作

采用下列函数对其进行测试:

voidmain()

{

ifstreamhello;

hello.open("otry.txt");

intersectionH;

H.otry=&hello;

H.sendnumber();

}

ifstreamhello;为一个输入流对象,通过该对象打开一个我们要读入的文件,这里我们的文件名为:

otry.txt

文件中的数据如下:

123454231422143542425364332544356

543256321656585432679757643673575

123454231422143542425364332544356

543256321656585432679757643673575

123454231422143542425364332544356

2012010550802040100611251807562090

2012010550802040100611251807562090

2012010550802040100611251807562090

2012010550802040100611251807562090

2012010550802040100611251807562090

期待的输出结果为:

123454231422143542425364332544356

实际的输出结果为:

123454231422143542425364332544356

对于voidsendnumber()函数能够满足相应的功能,能够将外部的数据无误的输入内部的数组,对其测试完毕;

2.

要求所输入的80个数16个一组,Double型,每输入一组数据就要换一行。

测试要求主要是看HUANG的gn和nc是不是计算准确。

首先输入一组80个数,对系统进行初始化:

初始化数组:

121001730152020603906801054850

121001730152020603906801054850

121001730152020603906801054850

121001730152020603906801054850

121001730152020603906801054850

第一组数据:

201202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

结果:

通行相位GN=38.5

8个方向上的GN为:

0.2666761.5100.5110.566.533.5146.564.5

8个方向上的NC为:

118.333120.667159.667190.333140.598.5211.667138.333

第二组数据:

211302356254030100511510300231001292

211302356254030100511510300231001292

211302356254030100511510300231001292

211302356254030100511510300231001292

211302356254030100511510300231001292

结果:

通行相位GN=46

8个方向上的GN为:

6.575109.5161.578.542.520071

8个方向上的NC为:

134.333142.167176.667249.833161.5115272.667153.833

第三组数据:

23140256627503211015130123102512015100

23140256627503211015130123102512015100

23140256627503211015130123102512015100

23140256627503211015130123102512015100

23140256627503211015130123102512015100

结果:

通行相位GN=59

8个方向上的GN为:

0.1333381.5116169.59050.5206.579

8个方向上的NC为:

156159.5194216.5183.333132.167

287.833172.667

经过三次的验证,HUANG模块运行正常,算出的GN,NC完全正确。

再检测两组出错的数据:

第四组数据:

aa1202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

输出结果:

6.17064e+0600000000

第五组数据:

201202150183025804.21058200158010aa

201202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

输完第一行,输入就停止了

输出结果:

通行相位GN=38

8个方向上的GN为:

0.2666727.5100.4110.532.533.5146.464.5

8个方向上的NC为:

38.527.5100.4110.532.533.5146.464.5

但运算结果明显错误!

但有一点要特别说明,也是本软件的一个不足之处,由于HUANG所输入的数据是通过路口检测其所得。

由于条件的约束,我们不可能用到路口检测器,所以在这里,我们只是采用读取文件中数据的方法来模拟路口检测器的取值,也就是说,我们的取值,包括测试的时候,我们也要根据我们日常的生活经验,尽量输入符合常规的数据。

在这里,Tb应该比Ta大,因为Tb是一个路口相位后面一个检测器的取值,Ta是这个路口相位前面一个检测器的取值,两者相减才是GN。

而且对于非通行相位,后一次的GN值肯定要大于(至少等于)前一次的GN值,因为红灯的时候车辆累计是慢慢增加的,而对于通行相位GN值既可以大于前一次的值也可以小于前一次的值。

在测试中我们也是尽量遵循这两条规定。

当然就这个模块本身而言,是不受这些条件约束的,任意的Tb和Ta值都能够输出一个结果,但如果放到现实中,有时不合情理的。

其结果就会导致有的路口可能会等待很长时间,甚至会引起交通混乱。

3.2.2模块2:

MA

3.2.2.1模块功能:

MA的功能主要是计算一个每个相位的紧迫度的。

3.2.2.2测试数据和访问文件:

输入的第一组数据为:

DoubleGN[8]={21.5,256,16.5,107,17.5,0,24,99.5};

DoubleRL[8]={0,0,0,0,0,0,0,0};

DoubleNC[8]={39.3333,272.667,33.1667,124.833,35.6667,276.333,41.6667,116.333}

输出的结果为:

10.6750.2750000

0.50.30.1500.1250.350.5

10.6750.2750000

0.6250.6750.650.3750.12500

10.6750.650.3750.12500

0.750.48750.212500.06250.18750.25

10.6750.2750000

0.6250.6750.650.3750.12500

输入的第二组数据为:

DoubleGN[8]={21.5,25,26.5,17,17.5,10,214,89.5};

DoubleRL[8]={0,0,0,0,0,0,0,0};

DoubleNC[8]={39.3333,272.667,33.1667,124.833,35.6667,276.333,41.6667,116.333}

输出的结果为:

10.6750.2750000

0.750.48750.212500.06250.18750.25

10.6750.2750000

0.81250.6750.46250.18750.062500

10.6750.2750000

0.50.30.1500.1250.3750.5

0.750.48750.21250.06250.18750.250.1875

0.750.73750.58750.250.062500

输入第三组数据为:

DoubleGN[8]={6.5,75,109.5,161.5,78.5,42.5,200,71};

DoubleRL[8]={0,0,0,0,0,0,0,0};

DoubleNC[8]={134.333,142.167,176.667,249.833,161.5,115,272.667,153.833}

输出结果为:

0.750.550.40.250.18750.06250

0.68750.61250.5250.31250.18750.06250

0.56250.48750.46250.3750.31250.18750.0625

0.50.36250.33750.31250.3750.31250.1875

0.68750.61250.5250.31250.18750.06250

0.56250.48750.40.18750.1250.18750.25

0.50.30.21250.18750.31250.3750.3125

0.68750.61750.5250.31250.18750.06250

输出结果完全正确,说明MA运行完全正常。

因为MA的数据来源是HUANG的输出结果,所以测试的时候,我们也是选择的黄的输出结果进行测试,如果输入的数值胡乱输入,MA也可以有输出,但这和上面一样,在模块中无法显示出错误,只能放到系统运行中去检验。

3.3联合测试

在检查上面三个单元无误后,将他们联合起来,就构成了我们整个程序的一个核心的部分。

在这里称之为DONG,DONG就是我们的核心代码,它的主要功能就是通过路口检测器送入的每个路口的TB和TA值,算出每个路口的路口紧迫度GN和下游路段的路口紧迫度NC,再选择最紧迫的路口,算出他需要调度的时间,选择他进行调度。

下面就对合并后的核心代码DONG进行测试,首先对系统初始化:

初始化数据:

121001730152020603906801054850

121001730152020603906801054850

121001730152020603906801054850

121001730152020603906801054850

121001730152020603906801054850

输出:

GN_MAX=260,GN_MIN=10,OV_MAX=9,OV_MIN=2;

X_RED=0,X_RED=0,X_RED=0,X_RED=0,X_RED=0,X_RED=0,X_RED=0,X_RED=0;

X_GREEN=0,X_GREEN=0,X_GREEN=0,X_GREEN=0,

X_GREEN=0,X_GREEN=0,X_GREEN=0,X_GREEN=0;

输出说明:

有初始化,得到该路口的最大绿灯时间和最小绿灯时间分别是260和10,最大和最小车辆使出率为9和2,此时各个相位的红灯持续时间为0,绿灯持续时间也都为0。

输入第一组测试数据:

201202150183025804105820015801078

201202150183025804105820015801078

201202150183025804105820015801078

20120215018302580

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1