软件GUI测试中的关注点3
上一篇 / 下一篇 2007-11-07 12:01:53 / 个人分类:学习资料
http://www.testage.net/html/17/n-140417-3.html51Testing软件测试网)N6{q:oj
51Testing软件测试网)r U5l7A&eF \[B P Z dVq {#@ U051Testing软件测试网fL3}(E^Z0c*ya6]7、输出
:z)siEF3N P4W#Xh0Et+^$t`!f/I0程序的输出应如输入一样完整。它要求更精确,尽量快速和能实现多路径及对输出内容更有效的管理,这四类标准几乎决定了输出功能的主要表现特性。
7]1ZT d.Q*P0Z9m1N5X4?O:u,L01)不能输出某种数据51Testing软件测试网 G?SP^P
51Testing软件测试网GA8I V?JvV3~你应该能打印出你输入的任何信息,打印不出输入的内容对任何程序而言都是致命伤。51Testing软件测试网6i*EYPb,Kmk:P|.?
51Testing软件测试网6_2uI Y"GS`$Js2)不能重定向输出
*m0Ul iz {1n d4G0,xz8UY9\A0你应该可以重定向输出。特别是,你应该能向磁盘发送一个很长的“打印输出”标记,并稍后打印该磁盘文件。程序不应该阻止你把数据输出发送到预料之外的设备,如绘图仪,磁带,打印机等。
{;u#B-P'k dF051Testing软件测试网7p c+^?h^+Bk!\3)与一个后续过程不兼容的格式51Testing软件测试网 sB&E+]2Ue6|)Th
d!B/Z0?^0如果一个程序声明能够以第二个程序可以理解的格式保存数据,那么就应该测试它是否可以真正做到。这意味着购买或借用第二个程序的副本。使用第一个程序保存数据,用第二个程序读数据,同时看看第二个程序得到了什么,这是对此进行测试的最简单方法。
Fd0Gq MZ!j {V-V0r*Z%MYQM {v04)必须输出的很少或很多
eh?Y/~X){ {r051Testing软件测试网)C,@'yUP3rs你应该可以修改报告,从而呈现你需要的信息。不得不在仅包含少量有用信息行的打印输出的大量页中找出所需信息,几乎和没有得到信息一样糟糕。
v"DV$}{b05Iq3]k*\o,X05)不能控制输出布局
%tJ%w0e6~:q051Testing软件测试网R b3Y7I HDS(gngX你应该可以改变字体,对输出信息增加特殊标记来强调信息。你应该可以修改信息之间的间距,最低限度来说,程序应该可以以一种由合适文字处理进行修饰的格式把报告输出到磁盘文件。51Testing软件测试网&izk-~$E
8O#@sVkm J06)荒谬的精度输出级别51Testing软件测试网8In'P!PMVt
3WXJ-Oc0要是说4.2加上3.1等于7.3000000或者说3.1111+2.11等于5.22110102都是很愚蠢的。在最终输出的结果中,程序应该按照规定的格式和精度输出最后的数据。
yA vPC9S0Q:^7Qn#a07)不能控制表或图的标记
k r)WX,\O&_6?0{&Vgoi}E0你应当能够改变字型,措辞及任何说明,包括标题,表格,图形或是图表中文本的位置。51Testing软件测试网;O,kmhknX
51Testing软件测试网:C Uv(n:[*Qd8)不能控制图形的缩放比例51Testing软件测试网NwDs2{}4T2Bt6\w*i
v La/c8jG:oc0绘图程序应该提供默认的垂直和水平比例,不要告诉我你最后输出打印报表中的图形超出了整个页面或是只占据了整个页面的一角。
%s }*PI ms051Testing软件测试网,sp%nM5AH二、错误处理
~%I"}5u6c;cQ+D0c8P"H:J)Y g0在处理错误时发生的错误通常是最常见的缺陷。错误处理产生的错误包括:未预料到错误发生的可能性并防止其发生,没有注意错误状态,以及较严重的:程序可能与错误数据一起工作并最终产生错误结果的情况。51Testing软件测试网#N(b@el+i"e
:JBMT H_5z H01、错误预防51Testing软件测试网` A:V)^ku/O
1c#Y`FlnS r4u;l r0程序应具备这种能力:它能保护自己不受到系统其他部分的影响(包括有害输入和有害处理)。如果程序可能与错误数据共同工作,确保其在发生严重可怕的影响之前(如程序崩溃,数据丢失与错误,系统崩溃等),检查并消除这些问题。
V,Q7u'? yy#h$Q051Testing软件测试网\|'Bx-[{9Z1)不充分的初始状态验证
v"tFQ} [A~051Testing软件测试网 {z4RL UO dU如果内存的某个区域必须以其中所有位都是0开始,那么程序应该可以运行一个抽样检查,而不是假定已经存在0值。这会导致程序初始化时发生内存错,甚至不能启动。51Testing软件测试网2O6P^ uu d
(P3IGOz1HK'xI02)不充分的用户输入检查51Testing软件测试网q{ M{I
51Testing软件测试网w#s7Kv Hq w此类问题非常常见,开发人员可能会在编写程序时遗漏掉大量这方面的问题。告诉人们输入1位到3位数是不够的,有些人可能会输入5位甚至更多,也有人 会输入特殊字符或是运算符,还有些人会按下功能键一次或多次,如果程序允许输入,那么程序就应能顺利应付,而不是一打非专业人士不能明白的提示甚至更糟的 情况。
hu`z*c$nl051Testing软件测试网"]3F:f6M MTX!vF3)对受损数据不能充分预防
6sqo:{j`,F?q051Testing软件测试网T7[}$x'aa没有人能保证磁盘上的数据是好的。可能是有人已经编辑过或者根本是有硬件问题。即使开发人员认定在保存前的文件是有效的,那么他也应该检查(校验)下次打开的是否是同一个文件。
q:s:K_ W0&e;jwz2Gn,W;N04)不充分的参数传递测试
` a7o InE `@0C04C^ Y]!g&^d0一个子程序不应该假定得到了正确的调用(事实上,采用相反的想法可能会让测试进行得更加顺利一些)。它应该确保传递给它的数据在其可控制的范围之内。
)XB9Z \y4z(d u7{Y051Testing软件测试网u(PM9?@-s+T5)针对操作系统的预防不充分51Testing软件测试网f:epamM f/P
a1P'E9@2w4A;]t0操作系统存在缺陷――不光是过去,现在甚至将来也是,应用程序可能会触发其中存在的问题。如:如果开发人员知道,他把数据送到磁盘后很快又把数据送到打印机,会引起一些操作系统的崩溃,那么他就应该确保程序在任何情况下都不会这样做。51Testing软件测试网)S-k2L gL1n
5BHBbNLa`i|'s06)不适当的版本控制51Testing软件测试网z({6] F:e0C
51Testing软件测试网d3T mQ6N[ s如果可执行代码不止存在于一个文件中,那么有人会尝试把某一文件的新版本和老版本一起使用,客户对其软件升级使得这类问题时常发生,但是又不能明白出了什么问题。新版本应确保所有的代码都是最新的,当然也要对老版本有完整的备份。51Testing软件测试网_c+xx)fCr
%}^.v"i#y}+Z P07)针对恶意使用的不充分预防
de#KCN @NQ051Testing软件测试网SFa)l g人们有时会有意无意的提供程序有害输入,或者尝试触发错误状况(特别是做测试的家伙们)。不要假定“任何有理智的人都不会这么做”,相信我:程序不完全是为了“有理智”的人开发的。51Testing软件测试网Wh+aO-q:p+\%L
51Testing软件测试网5mt?-c;|v2、错误检测51Testing软件测试网,QoM"\5I0Lr
51Testing软件测试网3I Mx/PD j gX H程序通常有足够的可用信息来检测数据中或其操作中的错误。这部分内容将指导一部分常见的错误检测方式并对其进行归类。
^6]1C&E,?;Z#C04n8P6Iow\(j.PU01)忽视溢出
adqI^051Testing软件测试网/o3CqsM一个数值计算结果对于程序来说太大以至于无法处理时,就会产生溢出。溢出由较大数字相加和相乘或者被0除或是由于过小的分数除而引起。在有既定规则的情况下,溢出是很容易检测到的。
a7J`Ks ? R051Testing软件测试网TWpJ3z]!X2)忽视不可能的值51Testing软件测试网7U RIvz[8M
51Testing软件测试网5N ^+PXH0orH在计算机当中,几乎没有什么不可能发生的事。程序应该检查其变量,以确保它们在合理的界限之内,它应可以捕获并拒绝如2月31日这样的日期值。如果 当变量为0时,程序完成某动作,变量为1时完成另一工作,并假设其他所有值都是不可能,那么就必须保证变量只能为0或者是1,对其他所有值进行额外的处 理。在一个项目中,经过数年维护编程后,旧的假定就不一定安全了。51Testing软件测试网7WXL+g;S/J6P.]E8j
!o%B u"UW0Bs03)忽视看上去不真实的值51Testing软件测试网%Q JWf\ s
51Testing软件测试网b.K\(k"G4l+P有些人可能会从自己帐户里提取100,000,000,000的钱,那么就算他有这么多钱,也应该在通过交易之前向几个不同的人进行确认。这类看似荒唐的用例往往包藏着错误的祸心,应该小心应付。
0Iz,E3x&p#[P0/[~Sf&m04)忽视错误标志51Testing软件测试网o2WT+GUs
v?y/Z*n V0程序调用了一个子程序,结果操作不成功,它在一个被称为错误标志的特殊变量中报告了该失败。与通常一样,程序能检查或忽略它,并把从例程返回的误用数据当作真实的进行处理。
@,R&W1RBdn051Testing软件测试网)I}T(EK4E5)忽视硬件缺陷或错误情况
,qqor6D051Testing软件测试网R7EC3OZT程序应该假定它能连接的设备是失败的,许多设备能够发送警告某件事情出错的返回信息。如果有设备这样做了,停止尝试与其交互,并向某人或更高级别的控制程序报告该事件。不能忽视该类情况以避免造成不必要的困扰。
#hG?o&{5E-_s|0ND'_Ik%i#d@ lX06) 数据比较
\ vz5zd0x%W0z{p:Tw0结算银行存折时,你有一个你自己认为的余额数值,银行也会提供一个余额数值。在考虑了服务费,银行利息,最近帐单等等数据之后,两个数据不吻合,那么就要好好查一查了。在互相检查两个数据集或计算结果集时,也会产生类似的情况。
;p ~v(rO051Testing软件测试网9I$v%pws~3、错误恢复51Testing软件测试网j;kN*Q ]C/}wE.W
51Testing软件测试网FL v6n#P.M9FZ6?1Zq程序中存在错误,程序已经检测到了错误,而且现在正设法对其进行处理。许多错误恢复代码只是稍微进行了测试,或者根本没有进行测试。错误恢复例程中的缺陷可能比原始问题更严重。
9m-k]jxm^'D hh!J0