软件测试环境要不要和软件开发环境隔离?

上一篇 / 下一篇  2012-07-02 10:10:36 / 个人分类:测试经验

 开发环境要不要和测试环境隔离?要就是说,是不是要各用一套数据库等基础设施?

Q~vUv{M4l0  能隔离当然最好,开发人员和测试人员不会互相干扰。但隔离是有代价的,它意味着你要多引一个数据库,如果你的系统是分布式的,你还要多维护一套MQ、RPC中间件等。

r Fw-Yb\#~0

!|q5X"Q,\0  依我看,需不需要隔离要看系统是否满足下面的三个条件:

W S*Q!w v\ZPB0

8e]5Ra(k5WvU0  1、两个环境的系统总是要接触到同一份数据51Testing软件测试网Ho R-c9k+m}

rm+P"u,I7NCyR0  2、数据被一个系统接触后,业务状态会改变;导致这份数据对另一个系统不再可用51Testing软件测试网"m d6\ KdfZ

51Testing软件测试网R g9ZKk2Jc1p(m

  3、很难禁止两个系统在同一时刻接触到同一份数据51Testing软件测试网LwO0G Zgj0Z

51Testing软件测试网 Nxa5V7I4bC^

  解释:

d |u~iw;ay0

Vsc&^D? H8p0  条件1.如果两个环境共享数据库,但开发环境只处理北方数据,测试环境只处理南方的,那不用隔离51Testing软件测试网f/G.p0C$W(Z Y@

51Testing软件测试网#|~U#q(klH9xZ

  条件2.即使两个环境都会处理北方数据,但如果这种处理是只读的,也就是开发环境用了,测试环境可以再用,那也无所谓51Testing软件测试网/_*}AV O,e)RQ5d

D)V Mj"u"A)z_0  条件3.即使数据被一个环境处理后,另一个不能用;但如果对数据的接触是人为触发的,也就是说开发环境被人触发数据改动时,不会干扰测试环境的测试,那也无所谓。

cF:?!^4\#r051Testing软件测试网G:i|7U/u+d/{

  具体的场景:

)v2jt D`r8DZ0

^:I;]Ma+a0  1、纯读的网站不必隔离,它不满足条件2

&[ w(W o'i%S0

&z!E5~PWe7W0  2、有写、但所有操作都由用户触发的网站也不必隔离,因为它不满足条件3

J*Mv["i$DR tI051Testing软件测试网(r~1|t9C3F5K/j

  3、以全局数据为目标的自启应用需要隔离,比如Quartz,Cron,MQ消费者等,因为它们不满足条件1。以MQ应用为例,如果外部发来的某个数据被测试环境消费过了,开发环境就无法再消费了,这时你应该为开发和测试环境各配一个MQ

} ?U6s\Vs.o051Testing软件测试网!| Eu/Vs6nP

   4、对自启应用,如果实在不想隔离,就要在代码里做一些env-specific的东西,使得不同环境不会访问到相同的数据,比如开发环境只能访问数据 库里flag=Dev的记录。不过,这种作法对程序和数据的侵入都很大,不值得提倡。但这种做法可以应用到其他环境的隔离上,比如预发环境和正式环境,它 们必须使用相同的数据库。

gR|Kxi U0

TAG:

 

评分:0

我来说两句

Open Toolbar