边界破坏性虚拟运行测试指南.docx
《边界破坏性虚拟运行测试指南.docx》由会员分享,可在线阅读,更多相关《边界破坏性虚拟运行测试指南.docx(18页珍藏版)》请在冰豆网上搜索。
边界破坏性虚拟运行测试指南
边界/破坏性/虚拟
运行测试指南
批准人
刘岩
审核人
崔戈
拟制人
刘慧丰
批准日期
1999.5.12
生效日期
1999.5.12
关
联
文
件
沈阳东东系统集成有限公司
更改记录
序号
发行日
更改对象·更改内容
批准
审查
拟制
0
1999.5.12
新发行
刘岩
崔戈
刘慧丰
目录
1.目的2/9
2.边界测试
2.1边界的含义2/9
2.2边界测试项目实例2/9
2.3边界测试内容的事先设定4/9
2.4边界测试的实施日期4/9
2.5确认条件的明确记录4/9
2.6边界测试结果的保存4/9
2.7由错误事例分析出的不合格内容4/9
3.破坏性测试
3.1破坏性的含义6/9
3.2破坏性测试项目实例6/9
3.3事前确定边界测试内容8/9
3.4破坏性测试结果的保存8/9
3.5从错误事例分析出的不合格内容8/9
4.虚拟运行测试
4.1虚拟运行测试的含义8/9
4.2虚拟运行测试的方法8/9
4.3虚拟运行测试项目8/9
4.4虚拟运行测试内容的事先设定9/9
4.5虚拟运行测试结果的保管9/9
1.目的
本指南的目的是为了强化软件产品的测试内容,提高产品质量。
具体内容如下:
·边界测试:
确认系统边界值的测试。
·破坏性测试:
系统异常情况的破坏性确认测试。
·虚拟运行测试:
模拟系统实际运行状况的测试。
2.边界测试
2.1边界的含义
系统资源耗尽的状态,叫做边界。
例如:
表上溢、文件上溢、CPU或管道超过负荷系数、内存满等。
2.2边界测试项目实例
边界测试项目为下述项目:
No
边界测试项目
测试方法
1
依据最大值、最小值进行测试
使用各数据项目的最大值、最小值来进行上下边界的测试,目的是为了确认实际最大值、最小值时的处理是否与要求的一致。
确认事项
·输入错误:
输入值检查(最大值、最小值)
·运算错误:
运算精度(上溢、下溢)
·输出错误:
输出精度(上溢、下溢)
注意事项
·保证规范定义范围内的数值(最大、最小、精度)
·规范定义范围外的错误检查处理/错误处理/错误通知处理。
注
·输入许可的数据后,若出现运算错误或输出错误的话,是设计有误,以不出现运算错误或输出错误为原则
2
表、文件的边界的溢出测试
让表或文件实际出现溢出,以确认溢出时的处理是否与目标一致。
注意事项
·确保需求规范定义范围内的数据容量。
·规范定义范围外的错误检查处理、错误处理和错误通知处理。
·确保规范中没明确的内部表/文件的容量(缓冲、栈、要求列表等)。
3
用最大数据量进行负荷、性能测试(主要测试批处理的执行速度)
该测试为对处理大量数据时的系统负荷与性能的确认,应事先考虑产生大量数据的机制。
如果不在系统外部制作数据,则制作大量数据的负荷,会对系统负荷、性能测试产生影响,也就不能掌握真的系统负荷、性能。
注意事项
·确保规范中定义的最大数据量时系统的动作和性能(即在规定的时间内完成该处理)
·数据超出规范范围外时系统动作的确认(限定为不能防止数据量超出规范范围外时)
·确保完成数据的处理。
(防止数据被破坏)
·确保系统的周期性
注
·不仅对规范规定限度内的性能进行定义,而且要对超过规范允许时的系统的动作进行定义。
4
连接最大数目终端时的负荷、性能的测试(主要做在线实时处理)
此测试是多个终端同时输入数据时的系统负荷与性能的测试,有使用实际终端、使用仿真器2种方法。
使用仿真器时,在外部设置负荷仿真器,希望使用同时能够产生大量数据的方法。
注意事项
·确保规范中规定的最大数目的终端台数时的系统动作、性能(瞬间处理负荷)
·确认规范规定范围外的系统动作(限定于不可能防止时)
·应具备(或考虑)恢复功能。
5
矩阵测试(测试有效区域的测试)
没有覆盖机能的系统(如程序的输出依赖于多个输入条件的组合的系统),虽然很难管理测试路径,但可以用在流程上作标记的方法来管理。
在现实中想要通过整个测试路径是相当困难的,可以通过模拟实际运行的状况来扩大测试范围。
6
最大/最小值系列输入值的边界测试
在最大/最小值系列的输入值的边界测试中,必须确认如下每个项目:
·Min/Max值测试
这是在每个输入项目中输入Min/Max值后对上下边界的测试,确认它是否与目标处理一致。
必要时根据输入值的有无符号来进行测试。
·输入位数检查测试
这是在每个输入项目的输入位数有限制时进行的测试,根据限制范围内位数的输入与限制范围外位数的输入来确认是否与目标处理相一致。
·运算上溢,下溢测试
在每个输入项目中输入最大数据、最小数据来确认不发生运算上溢或运算下溢。
·除法错误处理测试
这是对输入项目进行除法运算时的错误处理测试,在输入数据中输入0时,确认不发生除法错误(根据被除数与除数的位数的不同,成为上溢或下溢错误)
·输入文字种类测试
对输入项目中的“只有数值”、“带符号数值”、“半角文字”、“全角文字”等有输入文字种类限制的项目,输入指定种类的文字与指定外的文字来确认是否与目标处理相一致。
·输入文字数限制测试
这是文字数据输入时的输入文字数的限制的测试,确认“半角文字”、“全角文字”及半角与全角的混合文字输入,是否与输入文字限制处置的目标处理相一致。
7
数据容量边界测试
硬盘的数据容量的边界测试,需要确认如下项目:
·硬盘容量边界测试
确认规范中规定的硬盘所需文件数、文件容量及预备的空间是否能够保证。
·文件个数限制测试
确认一下,硬盘卷中是否已备好所需文件数以及所需文件数超过文件限制数时的处理。
·记录个数限制测试
对于有记录数目限制的文件,确认其在超出时的处理。
(对于带关键字(Key)的文件,确认Key部分与数据部分的平衡)
·表尺寸上溢测试
确认发生表尺寸的上溢时的处理(不能破坏表、显示错误信息、继续输入被终止等)。
8
通信系统边界测试
通信系统的边界测试应确认如下项目:
·一个电文长度的边界测试
确认规范中定义的文字数最大的电文,包含传送控制文字,是否能够接收和发送。
·通信量的边界测试
此测试为增加通信量时的边界确认测试,确认作为目标的处理能力是否能够保证。
·超时处理测试
确认通信系统的终端应答监视时间值和超时时的处理,是否与目标处理相一致。
2.3事前确定边界测试内容
制作开发计划书时,在质量确认分析表中记述边界测试的目标内容。
2.4边界测试的实施日期
依据边界测试内容的等级,按单体测试、组合测试、综合测试的顺序,依次扩大进行各等级的测试与确认。
2.5确认条件的明确记录
很多时候边界测试要花费大量时间与精力来制作测试条件,所以制定一套严密的测试实施计划与确认条件是非常重要的。
例如:
在文件环境为数万记录的文件边界测试中,若制作记录生成器的话就不必修改文件环境,但因记录生成条件复杂而不能制作记录生成器时,将文件环境缩小后实施边界测试。
负荷测试按照性能管理表的要求进行实际测试、确认。
2.6边界测试结果的保存
边界测试中所使用的数据或测试工具应保存好,以便在今后对系统进行修改或解决错误时可以再利用。
2.7从错误事例分析出的不合格内容
以下举出几例错误作为参考:
1)上/下限检查中的NG例
NO
不合格现象
正确方法
1
因分析电文用的文件地址成为0,无限循环进行读/写指针检查,使数据不能传送到终端。
设计方法:
文件指针的检查中必须有0的条件。
测试方法:
如果文件地址(文件为空)为0是正确的,则必须测试文件空的状态。
2
在输入时末指定值的项目(缺省0),错误地解释为0,被处理,所以结果不正确。
设计方法:
使缺省值标识符化,对标识符进行初始化和判断,防止误用。
测试方法:
对于输入项目中需要缺省值的所有项目,实行有输入值与缺省值(省略输入)时的测试确认。
3
要进行下月处理时,因在继续处理中将月日检查只处理了日期,所以在月变化时,日期一缩小,便成为对上月的处理。
5/256/4···4/4
设计方法:
在日期检查中,一定要判断年、月、日。
测试方法:
因为是日期的检查,所以要测试年变化、月变化、日变化及闰年。
2)表/文件的边界、上溢处理NG例
NO
不合格现象
正确方法
1
因写入文件时未检查返回值,所以即使发生文件溢出,也继续处理。
设计方法:
一定要检查文件的写入结果,而且按照此值进行处理。
(有可能发生文件满时,设计相应的处理方法)
测试方法:
将文件做成满的状态后确认处理是否正确。
2
接收文件溢出,电文丢失。
设计方法:
传送的接收文件变满,表示系统出现异常,设计成能够通知对方不能接收与接收文件已满的警告,并进行处理。
测试方法:
使接收文件成为满的状态后,确认能否按规范处理。
3
接收开始时检查文件是否有剩余空间,认为无时发出警告、然后要返回到处理开头,却进入了接收处理。
设计方法:
这是从异常状态恢复到原位时的错误,应按符号的指示回到原位。
测试方法:
确认接收文件满时是否按规范进行处理。
4
DISKFD保存功能一直保存到了文件区域外的数据,因此FDDISK复元功能恢复文件内容时,发生了文件上溢。
设计方法:
将读写数据的缓冲初始化后读入数据,写入后使其能够通过一般的初始化例行程序。
测试方法:
将数据从DISK保存到FD时,以比较程序来比较相互内容。
或是将相互的内容Dump下来后进行确认。
3)多重记录处理的NG例
NO
不合格现象
正确方法
1
传送格式变换中的逻辑文本长为256位数的话,跨帧时附加FTX,发送队列满。
设计方法:
与逻辑文本长相对比、物理文本长由于电路控制符的附加而变长、对追加电路控制符后的物理文本长进行判断。
测试方法:
对物理文本长大于逻辑文本长的情况,确认是否为正常处理。
4)初始化的NG例
NO
不合格现象
正确方法
1
错误的产生使再输入时的初始值设置遗漏,因此导致数据内容不一致。
设计方法:
作为初始化处理后的输入处理,错误的恢复也要使用一般的初始化处理。
测试方法:
确认输入错误发生后再输入时是否正确进行了初始化。
2
特定的程序中遗漏了初始化处理,在重复进行此处理多次时,产生文件垃圾(因没有初始化),所以文件变满。
设计方法:
作为初始化后的输入处理和输入后的再处理可以设计成通常的初始化。
测试方法:
以输入处理单位确认文件的内容,确认初始化是否正常。
3
图像处理用的工作区域的初始化不全面,检查不出图像范围的结束,成了死循环状态。
设计方法:
把工作区域结束标志查出条件作为数据的结束或工作区域的结束。
测试方法:
在工作区域满时,数据中无数据结束的情况下继续处理。
4
画面的切换回前画面,再回到下一个画面时,缓冲中残留前回内容,因把此内容写入到文件中,成了错误数据。
设计方法:
明确设计出上位画面与下位画面或下位画面上位画面的切换时何时实施区域的初始化。
测试方法:
反复进行上位切换到下位画面、下位切换到上位画面的动作,转储文件的内容后,确认其结果是否正确。
5
处理对象改变时,忘记了特定关键字的改变处理,用原值继续处理。
设计方法:
设计时就该明确在何时改变(更新)处理关键字。
测试方法:
依次转换处理关键字时,确认其结果是否正确?
继续处理之后,以同一处理关键字转换处理key,确认其结果是否正确?
6
遗漏了特定领域的初始化,所以仍显示出原来的数据。
设计方法:
应在设计时明确进行初始化的时间。
测试方法:
带着特定条件输入之后,确认其它输入处理是否正常。
3.破坏性测试
3.1破坏性的含义
用切断电源操作、异常值及随机键操作等输入的数据进行的测试,叫做破坏性测试。
3.2破坏性测试项目实例
NO
破坏性测试项目
测试方法
1
切断运行中的硬件设备的电源,进行障碍恢复测试。
是对运行过程中因停电或机器故障而发生电源切断时的恢复测试、确认电源恢复后,是否能够进行恢复的测试。
2
网络系列机器的电源OFF障碍恢复测试。
用网络系列机器的电源切断进行个别恢复测试。
3
恢复测试(自动,手动)
这是包含硬件、基本软件、应用软件的系统恢复测试,确认系统的退出·再构成·再开机。
4
随机键操作测试。
往输入项目里随便输入数据后确认,能否实施符合目标的处理。
最近通过终端画面来进行输入处理的越来越多,因此输入项目中的文字类型(数字、ANK文字等)检查是非常重要的。
5
异常值数据测试
通过本测试来确认输入异常值数据后,错误检查正常与否。
规范中虽明确记述,但对于通过像传送等手段从别的系统输入的数据来说,很有可能混入规范外的数据,所以需要注意.
6
错误处理测试
通过本测试来确认错误处理与错误恢复,还应对整个单体测试中的错误处理进行确认.
有些机器出错很难发生(必须破坏机器),这时可以设想发生了错误后,确认恢复处理.
而且还需要确认,从电源切断到恢复的处理过程.
7
互斥处理测试
通过本测试来确认互斥处理的妥当性,由于终端台数的增多,多个终端可能同时处理同一个记录,这时需要对它进行互斥处理的确认
8
接口测试
通过本测试来确认接口部分的正常与异常恢复.接口中有机器或设备等外部接口部分与软件包等内部接口,这两种接口应在单体测试级中实施.
9
闰年对应测试
必须对实施闰年处理的功能进行确认处理.
10
最大/最小值系列破坏性测试
●异常键输入处理
●末输入处理(只输入返回键)
●符号输入处理
●往数值键输入项目里输入指定键外的英文·假名等。
●不用输入数据,而只进行回车键的输入。
●进行带+、-符号的数值输入。
11
障碍测试
●通信系列中的电路障碍
●接收电文的数据异常处理
●终端异常时的替换处理
在通信系列的电路障碍测试中,确认从障碍到恢复的过程。
*对于发生电路障碍时,接收发送的电文由于电路恢复、再发送等不会出现丢失的确认。
●接收电文中混入异常数据时的异常检查确认。
●对于输出处理中的输出终端异常时,指定将其切换到另外的终端中进行输出的确认。
12
双系统切换的测试
●双磁盘
●双CPU
双系统的异常检查中的切换功能的测试。
双DISK片系列中发生异常时,应放弃异常片而继续运转。
还要确认只用单片DISK就能启动系统。
工作中CPU发生异常,将系统切换到待机系统的CPU中,确认系统是否能够启动。
3.3事前设定破坏性测试内容
制作开发计划书时,在质量确认分析表里明确记述破坏性测试的目标内容。
3.4破坏性测试结果的保存
妥善保管破坏性测试中所使用过的数据或测试工具,以便在以后进行系统修改时使用。
3.5从错误事例分析出的不合格内容
以下举出几例错误作为参考:
1)任意输入的数据的NG例
NO
不合格现象
正确方法
1
若将汉字域中的光标设成全角时,ANK域中的光标也变成全角。
(与使用多种窗口时的光标形状管理不同)
设计方法:
若输入项目中有输入文字类型条件时,确认是否为此输入类型中的文字类别数据。
测试计算方法:
往输入项目中输入任意数据后,确认能否检查出错误。
2)互斥处理NG例
NO
不合格现象
正确方法
1
更新计数器时,因没进行互斥处理,所以计数器值变少,其它JOB变为等待状态。
设计方法:
不直接操作互斥领域,以宏使其隐藏,来防止互斥错误。
测试方法:
使互斥领域成占有状态后,确认关联任务是否进入互斥等待
2
操作员选定“等待修改”后,想进行“修改”时,因数据已被其它终端处理、删除,所以出错。
设计方法:
将从多个终端来的文件记录作为系统宏,回避互斥问题。
测试方法:
使互斥对象记录成占有状态后,确认别的终端在访问该记录时将进入互斥等待。
4.虚拟运行测试
4.1虚拟运行测试的含义
模拟用户的实际使用情况进行的测试叫做虚拟运行测试。
4.2虚拟运行测试的方法
虚拟运行测试用的机器配置最好是实际应用的机器配置,如果没有准备好机器时,用仿真器进行仿真测试。
仿真器分为主机仿真器等上位仿真器或终端等下位仿真器等。
设计系统时要考虑如何模拟,还应估计制作仿真器对工期的影响。
4.3虚拟运行测试项目
NO
虚拟运行测试
测试方法
1
按操作手册测试
在本测试中,除按照操作手册实施操作外,还要进行手册的检查。
2
用客户的实际数据测试
从用户处借用实际数据进行虚拟运行测试时,应对借用的数据进行保密管理,并保证安全返还。
3
备份系统(每日、每周等)的恢复测试
本测试为:
结束每日、一周的处理之后、进行从备份系统恢复的处理。
4
实际性能测试
本测试为:
故障发生时,从双系统的本机切换(也包扩相反处理)到备份机后,是否能够在指定的时限内启动的性能测试。
5
业种·业界常识项目的测试
由于业种·业界常识不足的缘故,搬到用户端之后会受到用户的指责。
有必要将业种·业界常识作为虚拟运行测试项目来实施测试。
6
设想运行错误时的测试
想象运行错误后,确认能否恢复系统正常状态。
4.4虚拟运行测试内容的事前设定
在制作开发计划书时,往质量确认分析表明确记述虚拟运行测试的目标内容。
4.5虚拟运行测试结果的保管
虚拟运行测试中使用的数据、除借来的以外都应保管妥善,以便在今后的系统改造或解决错误时能够使用。