如何加强测试过程改进
上一篇 / 下一篇 2008-08-28 12:07:37 / 个人分类:Test Process
v;g:D bv|V)A0为了更好的开展测试工作,需要我们在工作过程中不断积累经验、不断对测试过程进行改进工作。那么又该从哪些方面入手进行测试改进呢?个人分析如下:51Testing软件测试网h"Uo'QF _S"V*J
51Testing软件测试网u5H^}$?1、增加测试需求分析
M:pM^eJ2^f@051Testing软件测试网X F3^%e*O)m6vu-d(H?前提:用户需求搜集、软件需求分析
!Qv-h9Wy4wk3h051Testing软件测试网q;TUYY^$a软件测试过程也是一个相对的开发过程,而不是机械的服从于开发过程及其过程资源,需要进行软件测试的需求分析。
1fM1o,LM$aGV0hX[G'J H,J^0测试活动需要从软件需求中理解系统行为,但不是机械的从字面上听从软件需求的内容。51Testing软件测试网\`B7Ztn
wc"S Wzt'|)}0测试需求分析,需要关注的不仅仅是软件需求所表现出来的特性,还需要关注软件需求之外的一些特性。
^VtS.t FSB0qWlg8yRd0测试需求分析的目的,与软件需求分析的目的是一致的,都是为了满足用户的需求,因此,在理解软件需求之前,获取最原始的用户需求是必须的。而目前的测试,真正涉及到用户需求的不多。
oF.p pJ$Pq s7@0o q*^&]o%@0测试需求分析最直接的对象很多,目前至少有2个:用户需求和软件需求,其他的涉及到软件开发过程中其他的一些对象,如,软件系统结构、软件开发技术/方法、开发语言、测试环境等,见后面的说明。51Testing软件测试网FI3aHl [
'I'g(d;eC)fpn0k4y4u0不同的测试对象和测试类型,其测试需求分析的对象和方法也是不一样的。
'W%H$hR;NJ k0$k-wu:t\8O0目前,测试需求分析并未形成一种有效的模式,也只是借鉴于软件需求分析的模式,以满足用户需求和软件需求为最终目标。
T-]yp+B1`I6W051Testing软件测试网$a:Hvon c,H测试需求分析,基本上基于一种过程的概念,对测试对象和测试过程中所有可能涉及到的事务进行有效分析,提炼出测试的对象和范围,从而确保测试对象和过程的正确性和有效性。51Testing软件测试网.p5uz.^!n
51Testing软件测试网W:YY.N5@`;qg%R测试需求分析的要素,至少包括对象、行为、过程、结果4个部分,其中后3者可以定义为对象的测试场景分析。
\0G*vo)fs:E5t0g4xzkHt0说明一点的是,在现在的流程中,测试计划和需求的同行评审具有了一些测试需求分析的特征
YSy$[6j0Fe,J\y]02、强化参与开发深度51Testing软件测试网x0L;^dH_s._"]P
51Testing软件测试网.F+ZRoSP前提:集成软件开发(含测试)
!?}Mf t)F0"`7m!v!O\I7L(s0目前的测试,基本上只停留在对软件需求的理解之上。51Testing软件测试网+~R0e:?5h!x I3F%Q%\
3Y z'A2ISdYkC0而需求并不是业务。对需求的生搬硬套,就如囫囵吞枣,结果可想而知。如果对业务表现形式熟练,在测试的时候,测试的有效性就高些。而如果对业务根本不理解,那就不可能真正的测试到业务所需要满足的要求。51Testing软件测试网3y;U@ S1R.[(I3|
9y1MO,Oeb0如何提高对业务的理解呢?只有从用户需求开始就深入的参与项目开发过程,才有可能真正的理解业务及其表现形式,从而进行有效的测试设计和执行。当然不同的测试对象和类型,所参与的深度是可以不同的。51Testing软件测试网4g{gD$_ c"y9Dc
51Testing软件测试网'eQ%v7}Vm U;Y目前要做好这一步,可能还需要很多的时间,同时也需要项目组给予更多的支持和参与。例如,项目经理、开发经理需要很明确在整个的开发过程中需要进行哪些测试(要说明预期中的结果是什么、期待发现什么问题等),需要提供哪些资源(包括相关文档、测试时间、人员配合和技能支持等)给测试人员
s&l,t!jl~Qk,vG0@1W6}a|,z03、优化测试用例设计51Testing软件测试网b"IY7h6u
51Testing软件测试网M G9f2D Vp$L U)Ws前提:测试需求分析51Testing软件测试网P @$_q H&f$Bd3l|6gy
;L2d\1nGy8]01)目前的测试用例设计,基本上是基于对软件需求的一种理解,从而在表现形式上是进行测试执行具体步骤的设计,这是正确的,而且在很大程度上已经满足了目前测试流程的需要,但是,如果相对进行分步式设计,可能会更有利于测试的持续发展。
'[x5J(sE[Z,_00[2gy8R](n8b0软件测试设计雷同于软件开发设计过程,也不是一蹴而就的,是需要一个循序渐进的过程的。首先需要根据软件测试分析所提供的可行性,对软件项目进行概要性的设计,在概要性的设计取得用户(该用户包括该系统的BA(作为最终用户代表)、设计开发人员(作为开发人员代表)、测试人员(作为测试人员代表))的认可(即评审)。51Testing软件测试网5T-Ih"~5w,L"] p2z&OT
51Testing软件测试网4a6psb'|'@然后,根据概要性的设计对测试用例进行详细设计,该设计即可对应现在的测试设计阶段,主要实现对测试的试运行条件、测试对象操作人员、测试执行步骤、测试结果与通过标准等的分析和设计。该阶段的测试设计需要取得BA、测试人员的认可(即评审)。
(dyQGV[JvL051Testing软件测试网{@w7c`D:Hms2)测试用例设计可以进行测试执行步骤的设计,但不仅仅是步骤的设计,需要言简意赅,重复性的设计尽量复用,这样在设计测试用例的时候才能一幕了然。在此也建议采用对象化的设计方法来设计测试用例,而不是从功能角度进行。参见测试需求分析。
Xm#dZ1V+D~c051Testing软件测试网NP-jK5DA~*n&aH说明:目前的测试项起到了部分的作用
@QZGuQ051Testing软件测试网j x:e:l4vS4、增加测试场景设计51Testing软件测试网qRq7Nr k
51Testing软件测试网N%C*fq+s+R H前提:测试需求分析
LNt/eO `V051Testing软件测试网N.f|?:J.Q)g测试场景有3个概念,也分三步走:
T"}%v(O'_051Testing软件测试网CldPZ G$Jb(j~第1步,是在进行测试需求分析的时候,对测试场景进行了分析,在此需要对测试场景进行设计,这些测试场景的设计基本可以按照测试需求分析的要求进行,部分在测试设计的过程中成为了测试用例。
#plPG"_D051Testing软件测试网&yc3`)@OF第2步,就是在进行测试用例设计的时候,常常需要对一些特殊的测试用例(执行)进行测试场景设计,以满足某些测试(用例)执行的需要。51Testing软件测试网U3F0A%Fi V#S2o
9kP;D+AM^1}0第3步,就是使用辅助性的测试工具,对一系列的测试执行步骤进行集合,录制、编写测试脚本,从而在进行bug/功能验证、回归测试的时候,直接执行脚本即可。
x"Q2d5?_g0YF3b#\I vaU"C|0说明:可以与目前流程中的测试规程相结合使用51Testing软件测试网#j7y:x-fb.p.t tG
51Testing软件测试网;d7U\@0c{q5、强化测试用例执行51Testing软件测试网"P,Z8@bc4uNrX
.{NRQS$A'm0前提:优化测试用例设计、增加测试场景设计
Cz9mu@ BYp051Testing软件测试网5l??'a%UiU){0s目前测试执行的状态是测试用例写了无数,但是执行的时候却基本不按照此执行,即使按照测试用例执行,也很难在测试用例执行的时候填写测试执行结果。51Testing软件测试网k \7|2s9L5VI0F
51Testing软件测试网8Lmqq;Tb%yB ~&z原因有2个,一个是测试用例设计过于细致,无法按照测试用例执行(一次操作就可能执行了几十条记录);另一个就是测试用例执行没有自动化,重复执行困难。
7fB'Y1y}c3t|(O051Testing软件测试网 m+X3I/nk,J"s因此需要在优化测试用例设计的基础上,强化测试用例的执行率,使得测试过程中的记录更为完整(个人并不赞成执行单步执行,这样的效率极其低下)。51Testing软件测试网 PY/r q W7z$Q
0y3BL1h P!V#L!i0可以在测试用例设计阶段引进测试用例设计工具,使得测试用例执行时能够方便提交bug,且重复执行起来快捷。而且对于重复执行且界面等发生变化不大的测试用例执行内容脚本化,则可以大大减轻在测试执行过程中的劳动强度。参见测试场景设计51Testing软件测试网 q(a9]#c S4`^;`'z
51Testing软件测试网M2MLW cEY6、强化系统回归测试51Testing软件测试网fy B C2ZS:UO[#?
51Testing软件测试网^-^.A/^2ZA前提:回归测试的测试需求分析、优化测试用例设计、增加测试场景设计