敏捷测试:反学习的关键

上一篇 / 下一篇  2012-04-10 09:50:48 / 个人分类:杂谈

“懂得如何反学习的人学得最快。”51Testing软件测试网n&y&z~\z

                          ——作者不明51Testing软件测试网+W"f0CG;E!bZ(w

#gR}o0p2^0  当QA团队和管理层刚刚开始运用敏捷的实践的时候,他们通常会遇到如何将传统的并且在他们脑海里已经根深蒂固的思想和实践忘掉的问题。51Testing软件测试网zSMM&DC$S`Q

;vPY'w F4gr"]#C0  下面是一些从QA的角度出发,在实施敏捷实践之前需要忘却的一些关键点:51Testing软件测试网wN-r*~`)m`"U

51Testing软件测试网sH`p%r4l

  ●测试团队需要是独立团队,并且能够获得足够的授权才能变得高效51Testing软件测试网#^&h"lvIn R

51Testing软件测试网.hH"FH-J {tIY4i

  ● 如果没有独立的测试策略和测试计划的话是很难进行测试管理的51Testing软件测试网FU+xwZW0R

%Bm \ `9@~"D yp0  ● 在敏捷sprint中无法与用V模型51Testing软件测试网z:x^VnPg-jr8Y

51Testing软件测试网1og]_ Rip p1^

  ● 独立的测试团队不需要做白盒测试51Testing软件测试网R L-}%_ Ec3WC"xD

51Testing软件测试网9BYz~krV#x

  ● 只有能够发现BUG的时候才能够体现测试的价值51Testing软件测试网2?io @L#I2@4dyD

51Testing软件测试网j[d*WI8F E s2V\

  ● 测试自动化不是必须的,而且只有在回归测试的时候才需要51Testing软件测试网 ?"_7e4Yf@

[4Kj9K7y#M0  ● 在一个sprint中是无法进行系能测试等非功能性测试的

6l Wg ] Q+X}051Testing软件测试网^ lu"gR4c(_(ZC

  ● 测试必须按照:计划、规格、执行和完成的顺序进行

%D"M7sAC`!N051Testing软件测试网TXNhvm$hw

  ● 不需要为已发现的BUG写新的测试用例

?(k-E~t)GuJ051Testing软件测试网Ra-_r6z;\RU \y

  ● 只要代码能够实现所需的功能,测试团队就不用计较代码的质量

Zgdb9H!Q051Testing软件测试网 C)s:d q3t3V

  ● 测试流程改进模型并不适用于敏捷测试

Kl7@T8Dc~$b4S$O ]0

&mT$N Z B7Pt0  接下来让我们来把上面的这些观点一个一个地审视一遍:51Testing软件测试网q aA1zuQ*^

2G I+_V%SB0  测试团队需要是独立团队,并且能够获得足够的授权才能变得高效

IO8X\g'~+_I*f?051Testing软件测试网+X|{2Jx

  传统上来说,测试团队可能有以下这些组织结构:没有独立的测试团队依靠开发人员进行测试;测试人员在开发团队里面;由公司中专门的部门来进行测试——甚至可能是把测试外包出去。通常来说,测试团队希望能够直接汇报给高级项目主管,而不是报告给开发团队或者TL。他们的初衷是希望在提交BUG的时候不会被TL阻挠。51Testing软件测试网/ZY3S `8|+X e$m![

51Testing软件测试网ahf n6sr)Rl:CY&c

  在敏捷思想中,测试人员必须是团队中的一员。他们应该专注的是,在没人任何技术债务的前提下,在每个sprint结束的时候交付质量过关的可交付产品,从而满足团队承诺的代办列表项的“完成”条件。测试人员要向敏捷团队汇报,而且要对PO和业务需求负责。

h;J3ji1a ULMX051Testing软件测试网"BL-x`;[,R

  如果没有独立的测试策略和测试计划的话是很难进行测试管理的51Testing软件测试网rS JU7c'Tn

uI$@ W6^c0  通常测试策略的文档都是集团级的,公司级的或者是部门级的,至少也是产品级的。很少有人会为一个单独的项目设立测试策略,除非这个项目要持续很多年,所以为某个项目专门设立的策略通常会记录在该项目的测试计划里。

`6T+ylc:i(w:f(h051Testing软件测试网q$i2E0w8A'c6g1n&Q,t

  在敏捷项目中,测试方法可以记录在发布计划中,而针对每个sprint的测试活动应该在sprint计划会议的时候记录下来,因此很有可能不需要独立的测试计划。然而,拥有高于项目层面的测试计划是非常有用的,尤其在公司在向敏捷转型的过程中。在测试策略中,可以记录测试的实践、和在集团或者分公司中需要遵循的规则。然后,敏捷团队可以在为项目的发布计划定义的测试方法中应用其中的一些实践。51Testing软件测试网:vO-e"uET T

{,p!ACc$Eb0  在敏捷sprint中无法与用V模型51Testing软件测试网 I$[J^"\K

N-F7H!Y2LPJ|0  在sprint中,验证和检查都是通过敏捷实践来实现的,例如验证需求已经按照INVEST的形式记录;编写和评审涌现的文档和简单设计;评审视图建模;举行每日站会;进行持续集成;进行代码重构;利用自动化测试进行开发测试和验收测试;增进和PO以及客户的交流。

M,]1C6Ce9dh]051Testing软件测试网}J Hx p.{ Aa$c

  下图中展示了敏捷中的V模型和传统的V模型关于验证和检查之间的区别:51Testing软件测试网7ck2pm edYU

sip'O B0
独立的测试团队不需要做白盒测试51Testing软件测试网2tRy5tX|E&XBj{7\

  传统上,独立的测试团队专注于黑盒测试,而对底层的测试不屑一顾。然而,在敏捷项目中,测试人员在自动化开发测试和验收测试中扮演着非常重要的角色。敏捷测试通常是持续性的,而非阶段性的。敏捷的测试人员需要懂得设计以及了解代码层面的知识才能更有效地在一个sprint中进行测试。通常开发人员主导单元测试,而敏捷测试团队参与部分的底层测试以及主导自动化测试。51Testing软件测试网3Ce"v/uZ

WM'Mm,eG6~0t0  只有能够发现BUG的时候才能够体现测试的价值

:b+sy-j&{051Testing软件测试网)L6bp0|TT m,x

  测试的价值不光在于检测出多少个BUG,还在于能够保证可交付的产品的质量是足够好的。敏捷团队需要忘记从前那套以找BUG个数为上的思想。团队可能以为找到越多的BUG就证明绩效越高,结果导致了系统中记录了很多琐碎的BUG。

4])_8Bo:WUD*^$p051Testing软件测试网;eM t(XC6w

  敏捷测试团队直接对产品待办列表项目的状态负责,也就是说,如果一个代办列表项没有通过测试的话就不能认为其已经完成。敏捷测试团队要多利用各种展示板来展示各个代办列表项的状态。51Testing软件测试网 i;WmH+Zs2\4`?6z

#r4W/LVJ9j[S,r4q0  测试自动化不是必须的,而且只有在回归测试的时候才需要51Testing软件测试网cnX(}(E%|U

51Testing软件测试网mxp_jGBK

  自动化测试不是可有可无的,相反,自动化测试是非常重要的部分,尤其是需要加快一个产品推向市场的时间的时候。一个以最高速率前行的敏捷团队,会应用持续集成、自动化开发测试、自动化验收测试等工程实践。如果没有了自动化测试和工具的使用,那么团队就不能称之为敏捷团队。51Testing软件测试网8VgA$^kkm4M2h

51Testing软件测试网)~)|0V hWCi

  在一个sprint中是无法进行系能测试等非功能性测试的51Testing软件测试网X!N,D {ZI

*ZKQ%A`0  有时候,有可能无法在一个sprint中完成系统性能测试等非功能性测试。然而,这个问题可以通过在发布计划中加入一个单独的发布sprint来解决。发布sprint可以用来进行非功能性需求的测试,也可以进行一轮验收测试来验证在BUG修复后系统还能正常运行。如果有实施持续集成和自动化测试的话,那么也许就不需要严谨的集成测试了。

%F FC`%Mo3p i5af F0

hjl-]4C6H$fT\0  测试必须按照:计划、说明书、执行和完成的顺序进行51Testing软件测试网1e4[$I,eY,~+G

51Testing软件测试网Vt JAq PE5x1[,J

  虽然计划、说明书、执行和完成都和敏捷测试息息相关,但是我们需要记住的是敏捷测试是一个持续性的过程,而不是阶段性的。例如,当一个待办列表项已经标志为完成的时候,很有可能另外一个待办列表项还处于编写说明书的阶段。有些团队会在把当前待办列表项的测试用例都用自动化实现了以后才将该项标识为“完成”。

mP)d*wiPq"O;IAl0

RO)X T!z5|0  不需要为已发现的BUG写新的测试用例

,Y }1s;j7c5Nss0{051Testing软件测试网!M%~,|`A6u5lJ

  在传统上,如果测试团队在探索性测试的过程中发现了BUG,团队并不会回过头来为这个BUG创建一个新的测试用例。不这么做的一个关键原因是,改变测试文档的流程需要改变计划好的测试基准。然而,适应变化正式敏捷框架的一个基础组成部分。在敏捷测试中,如果一个BUG没有对应的测试用例,那么就要为这个BUG编写新的测试用例,然后再把新的测试用例添加到自动化测试中。51Testing软件测试网%K!fHK#x S(]I*`)d1N

51Testing软件测试网#XB$RG^,s})B v[_

  只要代码能够实现所需的功能,测试团队就不用计较代码的质量

3S2v|z |K(R C _/w051Testing软件测试网4QV0~!C4m/?"r

  这个观点和上面的“独立的测试团队不需要做白盒测试”是相关的。以前独立的测试团队只专注在黑盒测试,只要代码能够实现需要的功能,代码质量就不是他们所关心的问题。但是,如果测试团队能够在测试或者验证阶段就能够找到代码级别的技术债务的话,这对整个项目所带来的价值是相当可观的。这也是敏捷测试人员需要改变的关键观念之一。51Testing软件测试网p3ng1LtL

/I|4W{6gO0  测试流程改进模型并不适用于敏捷测试51Testing软件测试网6A"ke-p}

51Testing软件测试网.u2f j6FP b/O%L

  实际上,我们确实有办法能够用标准的行业模式来衡量和改进敏捷测试。测试流程的改进方法,如TPI NEXT,主张在敏捷环境中利用对关键领域的优先级排序来对业务驱动的测试流程进行改进。这就是把敏捷的原理和专门的领域对应起来的敏捷测试思想。51Testing软件测试网 K2~mO!fX

wxM|\ x6]0  结论51Testing软件测试网6Y-m0w}+]AO

"kZ0g4n W p\ _?0  虽然,进行测试的具体方法和在瀑布式、迭代式和敏捷中在原则上没有很大的区别,但是在敏捷的思想中包含了很多新的方法另团队能够更高效地达到期望的结果。敏捷本身更多的是敏捷的实践,而不是流程。51Testing软件测试网x(v'l4b5vk3S-[B


TAG:

 

评分:0

我来说两句

Open Toolbar