原创翻译:James Whittaker系列——Google是如何测试的(3)

原创翻译,请勿转载!!!!


Wednesday, February 16, 2011


       在Google,质量不等于测试。我认为这是普遍适用的真理。“质量不是被测出来的”,这句话看似陈词滥调,但却包含着一定的道理。从汽车行业到软件行业,如果从开始的设计就出现了错误,那这个错误永远也走不回正轨。试问一下汽车行业的公司,大量召回有质量问题的产品,代价是多么的巨大。

     然后,这句话也并不像听起来的那么简单和准确。虽然质量不是被测出来的,但是同样可以证明,没有测试是不可能开发出有质量的软件的。研发产品,不做测试,怎么能生产出高质量的产品呢?

    解决这个难题有一个简单的办法,就是结束开发和测试的对立面。测试和开发应该并驾齐驱。写完一段代码,就接着测试它,然后再写一段代码,再测试它。做得更好一点,在开始编码甚至更早的阶段,就开始计划测试。测试不是孤立的活动,它本身就是研发中的一部分。质量不等于测试;当开发和测试实际中被糅合在一起进行,不再分彼此时,你就得到了质量。

   在Google,这正是我们的目标:把开发和测试糅合起来,不再分彼此。写一段代码,然后就测试它。关键点是,谁来做测试呢?在Google专职测试人员数量非常稀少,所以,自然地,测试就落到了开发人员的身上。事实上,谁会比写这段代码的人测试得更好呢?谁会比写这段代码的人更适合去找其中的BUG呢?谁会比写这段代码的人更早的去关注避免BUG产生呢?Google能用如此少的专职测试人员的原因,就是开发自身就要对质量负责。事实上,如果一个团队专门做了大量的测试,一般都是预估到产品可能存在不少错误。测试人员太多的团队,释放了这么一个信号:团队所做的开发/测试工作已经失衡,这不是单单依靠增加测试人员就能解决的问题了。

    这种情况就意味着,保证质量更多的是预防,而不是后期的测试。质量是研发问题,不是测试问题。把测试糅合到开发中时,我们的研发过程就变成了一个迭代的过程,如果一个版本BUG重重,那我们就回滚到之前的稳定版本。我们预防的不仅仅是用户的问题,还要大量减少测试人员的数量来确保不出现回滚级的BUG。在Google,测试的目标就是判断这种预防工作效果如何。TE要不断是监测SWE-SET作为BUG写手和预防者协作的成效,当这种协作偏离轨道,质量过程出现不可控时,TE要立即给与警示。

    这种开发和测试糅合起来的方式从代码审核的小note就可见一斑,note上写着“你的测试呢”,然后贴到卫生间里,随时提醒开发人员不要忘了测试——这就是我们公司著名的“在马桶上测试”。测试是开发不可缺少的部分,开发和测试的联姻才是保证质量的不二之选。SWE是测试人员、SET是测试人员,TE还是测试人员。

    如果你们的公司开始朝这个方向努力,请不要忘了把你的成功和经验与我们分享。实施时,请赋予开发人员产品质量保证方面赋予足够的权利。你应该也知道这句谚语:做一份鸡蛋培根早餐,鸡愿意,而猪会愿意吗?朝你的开发人员猪吼一声,看他们是否猪吼回来,如果他们回你的是鸡叫,那就有问题了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值