51Testing软件测试论坛

标题: Google如何测试软件 [打印本页]

作者: jumptor    时间: 2011-3-22 09:19
标题: Google如何测试软件
导读:本文是从 How Google Tests Software - Part Three 这篇文章翻译而来。 本文作者 James Whittaker, 前微软架构师,是“How to Break Software”系列图书中好几部书的作者,现任Google测试工程主管,最近他写了一系列的关于谷歌如何测试软件的文章,本文为其系列的第三部分。以下是文章内容:

在Google,质量并不等于测试。我相信在任何一个地方都是如此。“质量不是被测试出来的”这句老话是再正确不过了。从汽车到软件,如果它们起初制造的就有问题,那它们永远都不会没问题。试问任何一个曾经被迫大量召回的汽车公司,掩盖质量问题的代价有多大。

然而,事实情况并不是像这句话那样既简单又精确。虽然质量并不是测试出来的,但我们有同样的证据表明,没有测试,你不可能开发出任何有质量的东西。一个人怎么可能在没有测试的情况下认定你的工程具有高质量?

对于这种难题,最简单的解决办法就是:禁止对开发工作开方便之门,以独立自由之精神进行测试。测试和开发工作需要同步进行。编写一点,测试一点。再编写一点,再测试一点。更好的方法是制定测试计划,或者你开发之前先把计划做好。测试并不是一个独立的工作,它是开发工作的一部分,伴随着整个开发过程。质量不等于测试;为了质量,需要你把开发工作和测试结合到一起,搅拌它们,直到分不清你我为止。

在Google,这是我们明确的目标:把开发和测试融合,你不能单独进行任何一项工作。做一点,测试一点。再做一点,再测试一点。关键就是看谁在做测试。因为在Google,专职测试人员是出奇的少,所以唯一可行的方法就是使用开发人员。还有比这些实际开发了这些程序的人员更合适做测试的吗?还有比程序的作者更适合去发现bug的吗?是谁具有更多的愿望在程序第一次写出时避免bug?Google之所以安排这么少的专职测试人员的原因就是,开发者负责质量。事实上,坚持使用大型测试机构的团队通常会开发出有问题的东西。测试机构庞大,这是一个信号表明编码/测试工作的融和有问题。增加测试人员并不能解决任何问题。

这就是说,质量措施更多的应该是一种预防行为,而不是一种发现过程。质量属于开发问题,而不是测试问题。通过把测试工作一定程度的融合到开发过程中,我们极大的降低了一些本来被认为会写很多有问题的代码的人的出错机会。我们不仅避免了大量的客户方的问题,我们还非常有效的降低了测试人员提出的、其实不是bug的bug。在Google,测试工作的目标就是检查这些预防工作是否在有效的运行。测试工程部一直在寻找这种作为bug创造者的软件工程师和作为bug预防者的测试软件工程师之间的联合能达到的效果的证据,一旦这个方法出现问题,他们就会拉响警笛。

这种开发和测试的结合随处可见,从代码审查注释上写的“你的测试呢?”到厕所里的给开发者的最好的测试实践方法的宣传画——这是我们臭名昭著的厕所测试指导方针。测试是开发工作中是必不可少的,开发和测试的联姻是孕育质量的过程。软工就是测试者,测试软工就是测试者,测试工程师就是测试者。

如果你的企业也有这种类型的结合,请分享出你们成功的经验与挑战。如果没有,那么这是一个给你的企业带来好处的机会:在开发人员和质量之间画上全等号。

原文链接:http://googletesting.blogspot.co ... are-part-three.html

译文连接:http://www.aqee.net/2011/03/21/h ... oftware-part-three/
作者: davids    时间: 2011-3-24 15:11
前两天也刚看了这个文章,感觉还是讲的比较模糊~~
用开发人员进行测试的确比专门的测试人员的效率更高,因为他们更清楚程序的内部实现逻辑和可能存在的问题;但我感觉有一点其实和人性的本能有点冲突,就是人都不太愿意给自己找问题,不知道google是如何解决这个问题的~~
作者: 51mobile    时间: 2011-3-24 18:07
嗯 ,同问
作者: 愚人    时间: 2011-3-24 18:07
测试机构庞大,这是一个信号表明编码/测试工作的融和有问题。

非常同意这一观点……
作者: 51mobile    时间: 2011-3-24 18:07
嗯 ,一般的创造者都不太愿意破坏自己的东西,该如何解决
作者: zgbhm1    时间: 2011-3-24 23:02
同问 求高手解答
作者: piaolingxue423    时间: 2011-3-25 09:44
和我们老板的思路一样的   把质量建立在开发环节  培养开发人员做测试   开发人员往往是不愿意做测试的  即便是做了  也是业务流程上而已   很多细节没有注意到
作者: davids    时间: 2011-3-25 10:12
是的,我觉得这是观念问题,可能从中国的教育开始就灌输了这样的思想,所以。。。哎~~
作者: yintianyouqin    时间: 2011-3-25 11:07
有几点我觉得说的非常好!
质量不是测出来的。
没有测试,你不可能开发出任何有质量的东西。
测试机构庞大,这是一个信号表明编码/测试工作的融和有问题。增加测试人员并不能解决任何问题。
作者: zorovip    时间: 2011-3-26 19:14
嗯,虽然我是刚测试入门,不过这文章里的有些思想还是说得很好的。就像9楼说的。
作者: hwgis    时间: 2011-3-27 20:04
对于一个大的软件系统来说,开发人员做测试是不可取的,一般的软件开发人员都只会对自己做的一小部分非常了解,对软件的全局性把握远不如测试人员。而且开发人在测试时会站在开发的角度上来看问题,而测试不同,测试人员是站在客户的角度来测试的。
作者: 读你七夜雪    时间: 2011-3-28 16:55
同意2楼的,开发者都不容易发现自己程序的BUG。因为他们写出来就会觉得是最好的。不然不会写出来。
作者: lyingmore    时间: 2011-3-30 17:46
前两天也刚看了这个文章,感觉还是讲的比较模糊~~
用开发人员进行测试的确比专门的测试人员的效率更高,因 ...
davids 发表于 2011-3-24 15:11



    同问。发帖的人自问自己可以做到这一点吗?
作者: vip108821    时间: 2011-4-1 10:09
开发人员自己测试自己的程序,这是测试的大忌。文章的真实性值得考虑....
作者: lvxinsi    时间: 2011-4-2 16:42
开发人员做测试,这个问题值得探讨!
作者: archonwang    时间: 2011-4-2 16:57
换个角度罢了。。不要又当骡子又当马
(⊙_⊙)?
作者: jiangli2701    时间: 2011-4-11 09:39
前两天也刚看了这个文章,感觉还是讲的比较模糊~~
用开发人员进行测试的确比专门的测试人员的效率更高,因 ...
davids 发表于 2011-3-24 15:11


同感,从某些方面讲,开发人员确实比测试人员更熟悉程序的内部逻辑和可能出现的问题,但同时,开发人员都不愿意破坏自己写的东西,不容易发现自己的bug,并且开发人员都不愿意做测试,如何使得开发人员和测试人员更紧密的配合,是很值得探讨的问题。
希望大家踊跃发言,说说自己的看法
作者: jessie1121    时间: 2012-1-19 00:41
google使用的是scrum模式,有些很好的方式,比如结对编程,可以来避免楼上几位的疑虑
作者: weizhangya    时间: 2013-1-30 17:02
谢谢分享
作者: peng_nh    时间: 2013-2-3 11:47
开发做测试,就如同我们在考试的时候自己检查自己的答案,效果怎么样,大家应该很清楚滴!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2