软件测试计划书1.doc

上传人:ng****60 文档编号:3232299 上传时间:2019-05-26 格式:DOC 页数:14 大小:83KB
下载 相关 举报
软件测试计划书1.doc_第1页
第1页 / 共14页
软件测试计划书1.doc_第2页
第2页 / 共14页
软件测试计划书1.doc_第3页
第3页 / 共14页
软件测试计划书1.doc_第4页
第4页 / 共14页
软件测试计划书1.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、软 件 测 试 计 划 书1 测试范围: 本软件为智能红绿灯控制系统,是针对城市交通管理员设计的,城市交通管理员是这个软件的使用者,他通过此软件为各个路口设置参数,使系统能够根据输入的参数通过控制交通灯实时地对各路口的交通进行调度;能够随时掌握现在交通的具体情况。由于各种活动的相互影响和制约,我们不可能把这个软件设计的完美无缺,可能有许多错误,这些错误甚至会对软件产品以至整个系统产生致命的危害,因此就需要对我们的软件进行测试,主要是对制作的软件产品进行检查,及时的发现程序中逻辑错误,以保证软件产品的正确性和可靠性。具体结合到我们这个软件,是要做到一下几点。1,通过测试来检验软件是否可以正常运行

2、。2,如果无法正常运行,需要检测出错误处在哪里,并加以纠正 3,本软件是否可以一一满足用户的所有要求。4,当用户出现违规操作(例如设定最大绿灯时间大于所给范围等) ,系统能否发现并提醒用户改正。在测试阶段我们首先必须明确信息的流向,下图给出了测试阶段信息流向的模型,我们也将根据这个图来指导我们完成测试阶段的工作。软件配置 纠错 纠正错误测试结果错误率 测试配置 预期结果 可靠性预测我们计划将测试分为 3 个阶段:首先,将整个程序按功能划分成 3 个子模块,分别对每个模块进行单元测试,在该阶段我们在每个单独的程序块中,消除块内的逻辑、功能上的缺陷和错误,保证每个块作为一个单元能正确执行,并为上一

3、级测试做准备;第二步,进行联合测试,将 3 个模块进行集中和装配,形成一个完整的软件后就可以进行联合测试,联合测试除了进一步检测和排除子系统(或系统)结构或相应程序结构上测试评价纠错可靠性模型的错误之外,还应该验证所有的系统单元配合是否合适、整体性能和功能是否完整;最后,在对整个程序进行有效性测试,在模块测试、联合测试之后,就可以对组装起来的软件进行有效性测试,有效性测试就是根据需求分析规格说明书中规定的有效性标准,通过功能测试验证软件系统是否与用户的要求一致。2.测试计划:2.1:静态测试静态测试是指不执行程序而找出程序存在的错误。这种方法以人工的、非形式化的方法对程序进行分析和测试,不依赖

4、计算机的测试。在静态测试中,主要是找出程序中的语法错误,我们将通过下面检验清单来完成,可以提高检查程序的一般性错误的评审效果。1. 数据引用错误(1) 引用未赋值的变量;(2) 数组元素下标越界或非整数值;(3) 指针变量访问的内存空间非法;(4) 对具有多个名字的同一内存区中的数据,由于属性(或数据类型)说明不一致而引起的错误;(5) 使用了非法的变量类型和属性说明;(6) 访问了不存在的存储空间;(7) 指针或索引所访问的数据属性不属于编译系统处理的范围;(8) 多个过程或程序引用的数据结构不一致;(9) 变址引用越界;(10) 变址或数组下标运算“差 1”;(11) 汇编累加器、位移量、

5、程序定位及空留位值越限;2. 数据说明错误(1) 对某些变量没有说明,缺省属性使用不正确;(2) 数组或字符串初始化不正确;(3) 变量的长度,类型,存储类别规定不对;(4) 变量初始值与其存储类别说明不一致;(5) 误用相似的变量名,系统保留字、未加说明和前后矛盾的变量名;(6) 定义了未被引用或仅引用了一次的变量;3.计算错误(1) 不同类型的变量混合计算,或用零作除数;(2) 赋值长度大于被赋值变量长度;(3) 表达式中间结果或最后结果出现上溢或下溢;(4) 二进制数的运算精度不够或变量值超出有效范围;(5) 非法运算符和运算符优先顺序不对;(6) 整形变量使用错误或有非法算式;3. 比

6、较错误(1) 不同类型的变量进行比较,如布尔量和整形的比较;(2) 比较运算符的五接和不正确的布尔表达式;(3) 逻辑操作数和比较数混合在一起;(4) 二进制浮点数进行比较由舍入造成错误;(5) 编译程序不能正确处理的布尔表达式;4. 控制流程错误(1) 多路分支表示变量值大于可能的分支数;(2) 循环不终止或出现死循环;(3) 入口条件不正确出想多循环一次或少循环一次;(4) 复合语句不配对,或迭代次数不对(过多或过少) ;5. 接口错误(1) 调用模块预备调用模块间的参数个数、顺序、类型、范围和单位不匹配;(2) 模块间传送的变量的类型、范围、单位定义不一致;(3) 函数、过程和子程序调用

7、中的实参和形参的个数、类型、范围、单位、顺序不匹配;(4) 子程序调用前后定义的属性不一致;6. 输入/输出(1) 文件显示说明、属性是否正确;(2) I/O 语句与格式语句失配, I/O 缓冲区与纪录大小失配,没有必要的出错处理;(3) 使用未打开的文件;(4) 同时打开的文件数超过系统允许的文件数;(5) 忘记检查输入的有效性;7. 其他错误(1) 定义未被引用或仅引用了一次的变量;(2) 程序的功能被遗漏;(3) 忘记检查输入的有效性;经过和以上错误清单的逐一比照,我们会改正源程序中的语法和逻辑错误,逐步完善程序。直到完全消除程序的语法和逻辑错误,可以正常运行为止,在这一阶段,我们还将规

8、范程序的格式,添加必要的注释,使程序的结构清晰,层次分明,以便于阅读和以后的维护和修改。2.2:单元测试单元测试是指被测试程序是单个子程序、过程的逻辑测试。我们的任务试验整体功能和接口说明是否有不符合规定的情况,以及编码是否有错误。经过静态测试之后,应集中注意力逐一测试程序中的每一个单元,而不是把程序作为一个整体来测试。因此,为实现这一阶段的测试我们将核心程序按照功能划分成三个模块:HUANG 是计算每个路口的 GN 的,MA 是计算一个每个相位的紧迫度的,DONG 则将他们联合起来,相当于是一个总的模块,是用来决策现在的通行相位,和通行相位需要调度的时间。测试的时候,则分模块进行。具体过程见

9、后面的设计步骤。 2.3 联合测试单元测试完毕后,就要考虑用什么方法把单元连接起来的问题。就在单元测试的基础上,把每个单元按照设计要求逐步连接起来进行联合测试,主要目的是发现于接口有关的错误。由于先已经完成单元测试,所以我们采用非增试测试,就是先分别测试每个单元,再把所有单元按设计要求连接起来成为完整的程序。具体过程见后面的测试步骤。2.4 有效性测试有效性测试的目的是为了向用户证明系统功能能够满足用户的合理要求,由用户来验收整个软件产品。采取黑盒测试法来进行,具体过程见后面的测试步骤。2.5 测试环境本软件运行环境要求:CPU : 166HZ 以上内存:32M显卡:至少支持 256 色硬盘:

10、1G操作系统:Win9X/2000/Me/XP车流检测仪(至少 32 台)3.测试步骤 3.1 静态测试静态测试,主要是找出程序中的语法错误,我们将通过上面检验清单来完成,可以提高检查程序的一般性错误的评审效果。要求程序结构清晰,层次分明,注释详尽,为以后的修改和维护打好基础。3. 2 单元测试单元测试,高质量的程序单元是组成可靠系统的基础,对单元性能的评价又以下几点:1. 单元接口2. 局部数据结构3. 重要的执行路径测试4. 出错处理路径5. 影响上述几点的边界条件测试我们将核心程序分三个模块:HUANG 是计算每个路口的 GN 的,MA 是计算一个每个相位的紧迫度的,DONG 则将他们联

11、合起来,相当于是一个总的模块,是用来决策现在的通行相位,和通行相位需要调度的时间。测试的时候,则分模块进行。3.2.1 模块 1:HUANG3.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要比第一次的

12、tb-ta要大,因为对于非通行相位,在这段时间类,两个检测仪之间的gn即等待的车辆数只会增加(或者相等)。对于通行相位就可以随意了,后一次比前一次大或者小都是可以的。非通行相位GN=Tb-Ta,通行方向的ov等于你第二次输入的ta减去第一次的ta的结果再除以15(即(ta.present-ta.history)/15)。这一部分的接口:输入部分接口采用的是 void intersection:sendnumber()函数;输出部分:通过调用 void getGN(); void getNC();两个函数从而通过一系列的计算,得到两个数组的值double GN8; double OV8;这两个数

13、组将作为后面程序的数据接口;3.2.1.3 测试步骤:1测试 void intersection:sendnumber();函数是否能够正常工作采用下列函数对其进行测试:void main()ifstream hello;hello.open(“otry.txt“);intersection H;H.otry=H.sendnumber();ifstream hello;为一个输入流对象,通过该对象打开一个我们要读入的文件,这里我们的 文件名为:otry.txt文件中的数据如下:12 34 54 231 42 21 43 542 42 53 6 43 32 54 43 5654 32 56 32

14、1 65 65 85 432 67 97 5 76 43 67 35 7512 34 54 231 42 21 43 542 42 53 6 43 32 54 43 5654 32 56 321 65 65 85 432 67 97 5 76 43 67 35 7512 34 54 231 42 21 43 542 42 53 6 43 32 54 43 5620 120 105 50 80 20 40 100 6 112 5 180 7 56 20 9020 120 105 50 80 20 40 100 6 112 5 180 7 56 20 9020 120 105 50 80 20 4

15、0 100 6 112 5 180 7 56 20 9020 120 105 50 80 20 40 100 6 112 5 180 7 56 20 9020 120 105 50 80 20 40 100 6 112 5 180 7 56 20 90期待的输出结果为:12 34 54 231 42 21 43 542 42 53 6 43 32 54 43 56实际的输出结果为:12 34 54 231 42 21 43 542 42 53 6 43 32 54 43 56对于 void sendnumber()函数能够满足相应的功能,能够将外部的数据无误的输入内部的数组,对其测试完毕;2要

16、求所输入的 80 个数 16 个一组,Double 型,每输入一组数据就要换一行。测试要求主要是看 HUANG 的 gn 和 nc 是不是计算准确。首先输入一组 80 个数,对系统进行初始化:初始化数组:12 100 17 30 15 20 20 60 3 90 6 80 10 54 8 5012 100 17 30 15 20 20 60 3 90 6 80 10 54 8 5012 100 17 30 15 20 20 60 3 90 6 80 10 54 8 5012 100 17 30 15 20 20 60 3 90 6 80 10 54 8 5012 100 17 30 15 20

17、 20 60 3 90 6 80 10 54 8 50第一组数据:20 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 78结果:通行相位 GN=38.58 个方向上的 GN 为

18、:0.26667 61.5 100.5 110.5 66.5 33.5 146.5 64.58 个方向上的 NC 为: 118.333 120.667 159.667 190.333 140.5 98.5 211.667 138.333第二组数据:21 130 23 56 25 40 30 100 5 115 10 300 23 100 12 9221 130 23 56 25 40 30 100 5 115 10 300 23 100 12 9221 130 23 56 25 40 30 100 5 115 10 300 23 100 12 9221 130 23 56 25 40 30 1

19、00 5 115 10 300 23 100 12 9221 130 23 56 25 40 30 100 5 115 10 300 23 100 12 92结果:通行相位 GN=468 个方向上的 GN 为:6.5 75 109.5 161.5 78.5 42.5 200 718 个方向上的 NC 为:134.333 142.167 176.667 249.833 161.5 115 272.667 153.833 第三组数据:23 140 25 66 27 50 32 110 15 130 12 310 25 120 15 10023 140 25 66 27 50 32 110 15 1

20、30 12 310 25 120 15 10023 140 25 66 27 50 32 110 15 130 12 310 25 120 15 10023 140 25 66 27 50 32 110 15 130 12 310 25 120 15 10023 140 25 66 27 50 32 110 15 130 12 310 25 120 15 100结果:通行相位 GN=598 个方向上的 GN 为:0.13333 81.5 116 169.5 90 50.5 206.5 798 个方向上的 NC 为: 156 159.5 194 216.5 183.333 132.167 287

21、.833 172.667 经过三次的验证,HUANG 模块运行正常,算出的 GN,NC 完全正确。再检测两组出错的数据:第四组数据:aa 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80

22、 10 78输出结果:6.17064e+06 0 0 0 0 0 0 0 0 第五组数据:20 120 21 50 18 30 25 80 4.2 105 8 200 15 80 10 aa20 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 78输完第一行,输入就停止了输

23、出结果:通行相位 GN=388 个方向上的 GN 为:0.26667 27.5 100.4 110.5 32.5 33.5 146.4 64.58 个方向上的 NC 为:38.5 27.5 100.4 110.5 32.5 33.5 146.4 64.5但运算结果明显错误!但有一点要特别说明,也是本软件的一个不足之处,由于 HUANG 所输入的数据是通过路口检测其所得。由于条件的约束,我们不可能用到路口检测器,所以在这里,我们只是采用读取文件中数据的方法来模拟路口检测器的取值,也就是说,我们的取值,包括测试的时候,我们也要根据我们日常的生活经验,尽量输入符合常规的数据。在这里,Tb 应该比 T

24、a 大,因为 Tb 是一个路口相位后面一个检测器的取值,Ta 是这个路口相位前面一个检测器的取值,两者相减才是 GN。而且对于非通行相位,后一次的 GN 值肯定要大于(至少等于)前一次的 GN 值,因为红灯的时候车辆累计是慢慢增加的,而对于通行相位 GN 值既可以大于前一次的值也可以小于前一次的值。在测试中我们也是尽量遵循这两条规定。当然就这个模块本身而言,是不受这些条件约束的,任意的 Tb 和 Ta 值都能够输出一个结果,但如果放到现实中,有时不合情理的。其结果就会导致有的路口可能会等待很长时间,甚至会引起交通混乱。3.2.2 模块 2:MA3.2.2.1 模块功能:MA 的功能主要是计算一

25、个每个相位的紧迫度的。3.2.2.2 测试数据和访问文件:输入的第一组数据为:Double GN 8=21.5,256,16.5,107,17.5,0,24,99.5;Double RL 8=0,0,0,0,0,0,0,0;Double NC 8=39.3333,272.667,33.1667,124.833,35.6667,276.333,41.6667,116.333输出的结果为:1 0.675 0.275 0 0 0 00.5 0.3 0.15 0 0.125 0.35 0.51 0.675 0.275 0 0 0 00.625 0.675 0.65 0.375 0.125 0 01 0

26、.675 0.65 0.375 0.125 0 00.75 0.4875 0.2125 0 0.0625 0.1875 0.251 0.675 0.275 0 0 0 00.625 0.675 0.65 0.375 0.125 0 0输入的第二组数据为:Double GN 8=21.5,25,26.5,17,17.5,10,214,89.5;Double RL 8=0,0,0,0,0,0,0,0;Double NC 8=39.3333,272.667,33.1667,124.833,35.6667,276.333,41.6667,116.333输出的结果为:1 0.675 0.275 0 0

27、0 00.75 0.4875 0.2125 0 0.0625 0.1875 0.251 0.675 0.275 0 0 0 00.8125 0.675 0.4625 0.1875 0.0625 0 01 0.675 0.275 0 0 0 00.5 0.3 0.15 0 0.125 0.375 0.50.75 0.4875 0.2125 0.0625 0.1875 0.25 0.18750.75 0.7375 0.5875 0.25 0.0625 0 0输入第三组数据为:Double GN 8=6.5,75,109.5,161.5,78.5,42.5,200,71;Double RL 8=0,

28、0,0,0,0,0,0,0;Double NC 8=134.333,142.167,176.667,249.833,161.5,115,272.667,153.833输出结果为:0.75 0.55 0.4 0.25 0.1875 0.0625 00.6875 0.6125 0.525 0.3125 0.1875 0.0625 00.5625 0.4875 0.4625 0.375 0.3125 0.1875 0.06250.5 0.3625 0.3375 0.3125 0.375 0.3125 0.18750.6875 0.6125 0.525 0.3125 0.1875 0.0625 00.

29、5625 0.4875 0.4 0.1875 0.125 0.1875 0.250.5 0.3 0.2125 0.1875 0.3125 0.375 0.31250.6875 0.6175 0.525 0.3125 0.1875 0.0625 0输出结果完全正确,说明 MA 运行完全正常。因为 MA 的数据来源是 HUANG 的输出结果,所以测试的时候,我们也是选择的黄的输出结果进行测试,如果输入的数值胡乱输入,MA也可以有输出,但这和上面一样,在模块中无法显示出错误,只能放到系统运行中去检验。3.3 联合测试在检查上面三个单元无误后,将他们联合起来,就构成了我们整个程序的一个核心的部分。在这

30、里称之为 DONG,DONG 就是我们的核心代码,它的主要功能就是通过路口检测器送入的每个路口的 TB 和 TA 值,算出每个路口的路口紧迫度 GN 和下游路段的路口紧迫度NC,再选择最紧迫的路口,算出他需要调度的时间,选择他进行调度。下面就对合并后的核心代码 DONG 进行测试,首先对系统初始化:初始化数据:12 100 17 30 15 20 20 60 3 90 6 80 10 54 8 5012 100 17 30 15 20 20 60 3 90 6 80 10 54 8 5012 100 17 30 15 20 20 60 3 90 6 80 10 54 8 5012 100 17

31、 30 15 20 20 60 3 90 6 80 10 54 8 5012 100 17 30 15 20 20 60 3 90 6 80 10 54 8 50输出: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;输出说明:有初始化,得到该路口的最大绿灯时间

32、和最小绿灯时间分别是 260 和 10,最大和最小车辆使出率为 9 和 2,此时各个相位的红灯持续时间为 0,绿灯持续时间也都为 0。输入第一组测试数据:20 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105 8 200 15 80 10 7820 120 21 50 18 30 25 80 4 105

33、8 200 15 80 10 78输出:通行相位 GN=38.58 个方向上的 GN 为:0.26667 61.5 100.5 110.5 66.5 33.5 146.5 64.5此时通行相位:0此次需要调度时间:15HGN=38.5,GL=15X_RED=0,X_RED=15, X_RED=15, X_RED=15, X_RED=7.5, X_RED=7.5, X_RED=15, X_RED=15;X_GREEN=15,X_GREEN=0,X_GREEN=0,X_GREEN=0,X_GREEN=7.5,X_GREEN=7.5,X_GREEN=0,X_GREEN=0;输出说明:此次选择调度相位

34、为 0 号,调度时间为 15,因此在下面的红灯持续时间中,被选中的 0 号相位时间不变,其他相位红灯时间累计增长 15;而绿灯持续时间中,0 号相位绿灯持续时间为 15,而组成 0 号相位的两个方向则各累计增长 15。此时,系统开始正常工作,路口开始调度。第二组测试数据:12 32 23 70 20 50 30 90 15 150 18 220 16 90 20 9012 32 23 70 20 50 30 90 15 150 18 220 16 90 20 9012 32 23 70 20 50 30 90 15 150 18 220 16 90 20 9012 32 23 70 20 50

35、 30 90 15 150 18 220 16 90 20 9012 32 23 70 20 50 30 90 15 150 18 220 16 90 20 90测试结果:通行相位 GN=528 个方向上的 GN 为:0.1,65,77.5,124.5,72,45,168.5,33.5此时通行相位:0此次需要调度时间:30X_RED=0,X_RED=30, X_RED=30, X_RED=30, X_RED=15, X_RED=15, X_RED=30, X_RED=30;X_GREEN=30,X_GREEN=0,X_GREEN=0,X_GREEN=0,X_GREEN=15,X_GREEN=1

36、5,X_GREEN=0,X_GREEN=0;第三组测试数据:11 22 33 44 55 66 77 88 11 22 33 44 55 66 77 8811 22 33 44 55 66 77 88 11 22 33 44 55 66 77 8811 22 33 44 55 66 77 88 11 22 33 44 55 66 77 8811 22 33 44 55 66 77 88 11 22 33 44 55 66 77 8811 22 33 44 55 66 77 88 11 22 33 44 55 66 77 88测试结果:通行相位 GN=118 个方向上的 GN 为:11,3.46667,11,11,11,11,11,11此时通行相位:1

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。