WB
kC#J\0 一直以来,总想写一写关于测试方面的文章。今天,真的接到这个题目时,却欲言又止,迟迟不能落笔。在这里,我也只将自己的实际经验介绍给大家,抛砖引玉,和大家共同探讨。
2VsF]q:[hew2@0eD-Y$SDj j0 刚开始做测试的同事会有一种感觉,认为测试实际上是在充当这个产品的第一用户。也有人认为,测试其实很简单,没有什么技术可言。51Testing软件测试网+{f4GIp ^Pa~
k;MH_l,r@ G0 其实,测试说易也易,因为进入门槛低;说难也难,因为测深测精不简单。黑盒测试很讲究策略,测试也是一门学问。
t;Q9Y8_h B`4P5oE%j051Testing软件测试网Y?7@6xfV 初涉测试的心路历程51Testing软件测试网4b
h1n_;A ib
:`$hdz5f
v'Z0 对测试的认识,每个测试人员都有一个过程。我对测试的认识,在每个阶段各不相同,其中也走了不少弯路。在此,我用第三人称把自己对测试工作的认识过程写出来,希望后来的同事能从中得到启发。
X:E|%_&F*JW~0*T?
hA[KU$B^"De0 第一阶段 学习+验证51Testing软件测试网,\ dS8pe
n
J SQ@P:g0 对于新来的同事,刚刚涉及测试,往往踏不下心来。感觉测试是件没完没了地事情,并且单调重复、枯燥乏味,没有激情、没有成就感。这是很正常的现象,刚进入一个新的岗位,总有一个适应过程。
}"P#Y
H!i0LMVE5cZP0 在这一阶段,新员工需要做的事情是,先学会使用所测的软件,熟悉他的每一个功能,弄清楚每一个功能的正确效果应该是什么?然后才开始尝试着去找一些肤浅的问题。这一阶段的感觉是:"测试实际上就是验证产品每个功能的有效性"。新员工这一阶段虽然不太出成绩,但却很重要,因为这是以后工作的基础。51Testing软件测试网7b:[auNk-s
n0]"\H3h4s8QK0 第二阶段 与开发对立的误区51Testing软件测试网%D({J(N/^E:mq%J
5|8f'b i+w0 当熟悉了所测产品的功能,并且找到测试的感觉后,就开始较深入地测试了。
,^nw\P:q0A.\2Ff;i8w!p'WGie0 在这一阶段,新员工会逐渐发现一些严重的BUG。当看到自己发现的问题被解决后,才真正感觉到自己在参与产品的生产。渐渐地,渐渐地,就会感觉到测试其实也挺有趣。尤其是发现一些死机或特别严重的错误时,有时会兴奋上几个小时。这是他进入状态的必然过程。51Testing软件测试网@T?;v"W-]b
51Testing软件测试网|%C3M(z-_9m M.HN&I 此时,他对测试的认识是:“测试,就是要找出产品的缺陷,是证明当前产品不可用的一种行为”。这一阶段非常值得注意!很多软件公司常说:"开发和测试的行为是对立和矛盾的",这实际上是测试工作的误区。51Testing软件测试网$A)N
}5r-Ns:S3p
51Testing软件测试网;Q y!yCZ 第三阶段 与开发主动配合
5?I)nS-j&`~*T-I%NM07C}+n6P'}2|0 随着测试经验的积累,对工作的认识也逐步深入。最后,他会发现,开发和测试之间,本质上是一个合作的过程,目标本是一致的。都是为了尽量减少发布产品中的错误,达到用户可接受的程度。于是,他会更多地站在用户角度考虑问题,测试的目的也越来越明确,工作也越来越主动。
E(n~n0[;S]'f/|-u051Testing软件测试网$LKND8dKl4k 第四阶段 责任感+验证
BZ*CJ;sR J!h}051Testing软件测试网l}%Fb7az)Sx:|:D 当经历了产品的几个生命周期之后,从不断的需求、开发、维护、升级循环过程中,逐渐认识到,测试实际上是降低产品风险的一种行为。逐步认识到,测试介入的环节越早,风险也就越小。51Testing软件测试网
}6BHh$I
D~$iSgB6I2?0 在和最终用户多次打交道,亲身体验用户的心情之后,油然而生出一种强烈的责任感,对测试的理解也随之升华为一种产品意识:测试工作和研发工作,实际上是一种荣辱与共的关系,取得的成绩和造成的失误,其荣誉和责任是同等的。此时,当他发现一个致命的错误或缺陷时,第二阶段的那种兴奋也许只会存在3秒钟。此时的他,更多考虑的是怎样帮助研发组尽快地把该问题解决掉。在这一阶段,测试工作中更注重产品的实用性和易用性。
C V
N9T'KUCOu0T8R"m$B$@4R'~2v0 从学习阶段对产品的验证,到与研发的对立,到主动地和研发配合,到一种责任感使命感自发地对功能的验证,这是一个高级测试人员所必然要经历的一个心路历程。51Testing软件测试网/nB4nA+Xj#[
OD*W a;o1Jn0 测试中的几种思维方式51Testing软件测试网:]*{&vM
p@x
51Testing软件测试网Bbw.u+IZ/` 测试能否出成绩?以及测试工作的优劣,与个人的素质和修养有关。51Testing软件测试网2Tqu#D(XkWo
51Testing软件测试网
A _7E&Y_0l4P o+f8s5K 测试工作说易也易,只要认真、负责,就能做出一些成绩。但说难也难,测试讲究很多方法和策略,要测的精,问题定位的及时准确,规律找的准确有效,那是需要下一番功夫的。在此,我把测试中常用的几种思维方式共享如下:
{#V'WQJ7W1d"]051Testing软件测试网+N@J
I*Kb'B7O'B 正向思维
D5wjTo051Testing软件测试网
IlmvP'D 在测试一个产品之前,需要做的重要事情是,熟读产品的设计文档,详细了解每个功能的正确效果。然后针对每个模块,顺着程序员的思路,逐个验证,以验证测试功能的有效性。这是以后深入测试的基础,也是做自动测试的前提。
:c|e1Aa3o(w0|q y+Y]*e'Z0 搞清楚每个模块是干什么的,弄清楚正确的效果,才知道什么是错误的。这是非常关键的一个环节,如果在这方面不下功夫,也就很难测试出有价值的BUG。因为,很明显的错误结果可能就在你眼前大摇大摆地经过,而你却认为这是正确的!我就曾经一度陷入这一误区,好在很快地补上了这一课。
O
ffL/U;s#gKc@$|051Testing软件测试网j1K1XLj,P 逆向思维51Testing软件测试网6T[T:CY^I
51Testing软件测试网
|1A[1YVf1t
] 关“逆向思维”,我有两种解释,一是针对开发人员。51Testing软件测试网] @'UH GW4]
H#__DMC_5~0 开发人员在调试或自测时,总爱顺着已有的思路进行。所以,在很多情况下容易忽略自己所犯的错误,例如边缘条件检查,异常处理等等。所谓当局者迷,旁观者清,是因为你可以跳出他的思维定式,从另外的角度来思考问题。所以,只要你肯动脑筋,不按他的逻辑进行检测,就一定能找出许多破绽。51Testing软件测试网{Gzq:^%jF
wh}dR0 关于“逆向思维”的第二种解释,是针对具体问题。51Testing软件测试网[$tejXz
51Testing软件测试网BkL+sXs"|:l8u 当发生严重问题时,首先要保护好现场,然后努力地回忆,努力地理清思路。要善于从错误现象的最后一步往前倒推。例如死机问题,仅一个现象并不能说明问题,关键要找出它的规律。规律有时是最后一步操作导致,而有时则是前几十步操作的累加,这需要我们追忆刚才的几十步操作,并大胆怀疑其中的疑点,有目的的undo、redo。这一招叫顺藤摸瓜,抓住规律的尾巴,从最后一步开始。
$X.e.a1V%T#E(vDa0:\4WvA/FSqo[+Rf0 跳跃性思维
7S7V$]j|051Testing软件测试网'\:h;B0sh6u+dZa 我也称它为联动思维。
D.M
xF {3r5d051Testing软件测试网}ub
Y g)_kY"X.N,b 有时,一个问题表现出来的现象和问题的本质会差着十万八千里,这类问题的规律也极难准确地捕捉到。处理这类问题,需要有扎实的测试基本功,并对产品非常地熟悉,才能把表面上毫不相关,却有着千丝万缕关系的孤立的两点联系起来;才能从一处错误得到启示,联想到其他模块也可能存在类似的问题……51Testing软件测试网s1HIIT
Y
G
51Testing软件测试网rF6jo)~"N-------------http://www.csai.cn 作者:李守亮 来源:互联网 2008年6月20日
%tuzEv/P)j \7t0