Patrick Copeland是谷歌公司高级工程总监,最近接受UTest公司的采访,讨论谷歌公司测试的方法和理念。我觉得很多观点都很精彩,摘选一些对话,和大家一起分享。
Patrick Copeland加入谷歌之前在微软工作过10年,负责BizTalk, Dynamics和Internet Search(Bing前身)等工作。2006年加入Google,目前带领着800人的工程团队。
原文在连接: http://blog.utest.com/testing-the-limits-with-patrick-copeland-part-i/2010/02/
问(UTest):如何面对来自全球用户或客户的挑战?有些产品很成功,有些很杯具,这些都对你们产品规划起着什么样的作用?
答(P): 我们的方法是做大量的实验,快速发布并且不断进行改进。我们尽早的(early),快速的(Fast)更新软件,并且认真收取用户的反馈。
根据产品性质,我们将产品可以分为以下类别。
1)战略型: 也许是新功能,但可能已经有竞争对手(例如Android)
2)财务性:搜索和广告
3)用户型: Gmail
4)遗留产品:例如CheckOut需要符合SOX法令.
问:你以前说过“在一个领域呆着越久,知道的越少”,作为开发和测试人员如何保持继续学习的心态?
答:我们在招聘的时候会选择那些有测试DNA的人,他们对测试有热情,热爱软件。这些人有着天生的气质接受挑战,不断的学习。
问:谷歌每两个星期就发布一此软件,那么谷歌是如何平衡已有软件和新软件的投入?
答:在谷歌,有着70/20/10原则,70%投入已有核心产品,20%与新产品相关,10%是高风险创新产品。
谷歌有很好的测试基础设施,例如每天5000个CPU进行65K次编译,执行超过100M测试用例。Build和测试系统为了适应负载需求,每年增长75%。项目的平均Build和测试时间是4分钟。在谷歌,产品组总是维护一个可用的版本(Green Build),因此,我们在建设测试系统时候,非常注重以下几个方面。
1)速度:所有的测试和分析都应该非常快。
2)反馈系统:测试系统必须是高质量的。我们希望工程师在任何时候都保持产品高质量代码,而不是出问题才修正。
3)简单:透明使用,高效工具
问:优秀(Good)测试人员和卓越(Great)测试人员的区别是什么?
答:优秀测试人员是可以培训的,他们有好的背景,理解客户,熟悉开发流程等等。卓越测试人员是可遇不可求的,非常稀少的。卓越测试人员通常都是卓越开发人员,但是卓越的开发人员未必是卓越测试人员。对于卓越测试人员来说:1)他们有很好的直觉找到真正问题 2)他们对于测试有极大的热情。
问:设计,开发和发布高质量的软件过程中,最大的障碍是什么?
答:每个产品都有自己独特的开发方法,其中有许多变化。项目要根据自己的情况在敏捷和严格流程中找到自己的最佳平衡点。
问:对于想成为资深技术人员的年轻软件工程师,你有什么建议吗?
答:
1)注重技术
2)成为创新者和组织者
3)把握自己职业:不要等待别人来赏识你。告诉他人你的想法和成果,你是你最好的广告牌。
4)发挥你的强项:选择你喜欢的项目,你能够取得更大影响。
问:你是否特别喜欢的开发语言?
答:没有,谷歌最常用的就是Java,Javascript,Python,Perl和C++。