• 跟谷歌测试工程师的对话
    时间:2012-10-11   作者:外刊IT评论网   出处:aqee.net

    Alan Faulkner是谷歌的测试工程师,他的工作对象是谷歌的DoubleClick广告报价管理系统(Bid Manager),这个系统提供让广告代理商和广告客户在多个广告上进行报价竞标的功能。Bid Manager是谷歌2010年收购的Invite Media系统的下一代产品。 Alan Faulkner的主要工作负责Bid Manager系统用来移植数据的组件,这些组件用来把Invite Media中的广告客户信息转换到Bid Manager系统中。Alan Faulkner 2011年进入谷歌,工作地点是位于华盛顿的柯克兰办公室。

    alan

    你是测试工程师,还是编写测试代码的软件工程师?这两者之间有什么区别?

    目前我是测试工程师,但这两种角色非常的相似。作为测试工程师,你更多的是专注于产品的总体质量和软件发布的速度,而编写测试代码的软件工程师更多的是关注测试框架,自动化测试和为测试重构代码。我想这两者之间的不同更多的是关注点,而不是能力问题,因为在谷歌,这两种角色都需要能写出产品级质量的代码。例如,我所做的测试工程师的任务是引入自动化的发布过程,为团队划分模块来提高测试覆盖率,减少校验数据正确性时需要的手工操作步骤。

    你的典型的一天的工作是个什么样的情形?


    当来到公司,我首先去看哪些代码审查是需要回复的,看看哪些从技术客户经理发过来的bug是具有高优先级的,然后开始写代码。在当前的职务上,我的主要精力是放在提高大规模集成测试和测试框架上的测试有效性和覆盖率。我也会在我们的产品中增加一些功能特征,来改进测试有效性。我的时间的50%到75%会花在写代码上或代码审查上。

    你只写测试代码吗?

    不是的,我写的很多代码会留在发布的产品中。在谷歌做SET或TE的一个最大的好处是:你写产品代码就像写测试代码一样简单。我两者都写。我写的测试代码主要是用来改进测试框架,让开发人员能写出集成性好的测试程序。我写的产品代码主要是来改进对外部输入数据的验证。我还会写一些来提高可测试性的功能代码。这些代码能给产品带来质量更高的功能特征,避免了让产品依赖于测试程序来发现其中的问题。

    你用什么语言开发?

    测试代码和产品代码大部分都是使用Java。偶尔也会使用Python或C++。

    手工测试会占用你多少时间?

    目前,在这个岗位上,我手工测试的时间少于5%。经过某些探索式的测试能帮助提高对产品的认识、发现某些风险的存在,但这些不会反复的出现,也不多。需要手工的步骤很少,我的任务就行帮助减少这种操作,所以团队不会让我去做那些数据迁移中反复的手工测试工作。

    你不是给自己的代码写测试代码吧?


    在谷歌,测试的任务是在所有工程师间交叉分摊的,并不是只由测试工程师来做。每个人都要为他们的组件写出单元测试代码,就像集成测试工作一样。这就是说,我写的测试用例针对的组件并不是我开发的,但这些组件需要有说明如何为它写测试代码。这些组件通常牵涉到非常复杂的代码或需要用新的模拟框架,例如Mockito。

    开发谷歌的广告产品,哪些是你喜欢的?

    我喜欢我们需要解决的问题中的海量或高性能所带来的挑战——从处理海量数据到在毫秒级间实时对大量的广告请求进行响应。我还喜欢我们产品的影响力,因为这些产品会牵涉到很多的用户。这是工作在这样的产品上获得的回报。

    依你的经验,谷歌的测试工作和你干的其它公司里有什么不同?

    我感觉在谷歌,这个角色非常的灵活。在我的团队里很少区分这是SET的那是TE的,每个人可以灵活的选择他们认为最重要的工作去做。例如,我写了很多的产品代码,修改了很多产品中的bug,提高代码的可测试性,增加在迁移数据中对错误数据的可观察性。同时,谷歌的很多开发人员却在花大量的时间测试代码,所以说,测试不是我的唯一任务。

    在谷歌柯克兰工作区工作和在谷歌总部工作有什么不同?

    我真正喜欢谷歌的地方是它的各个办公区各有自己本地风格和个性。谷歌提倡这样。例如,位于柯克兰的办公区有攀岩和划船设施,我们办公大楼里的所有会议室都是以本地品牌命名的。位于西雅图的办公室有皮划艇,而纽约的办公区里在自主餐厅里有食品车。

    谷歌的这种测试文化有前途吗?

    我觉得前途一片光明。我们有很大的灵活性,能对产品的质量和可测试性产生重大积极的影响,能提高产品发布的速度。我们需要快速的产品发布和高质量的产品发布。问题是我们面对的问题很复杂,而且要求很苛刻。我们需要用技术来确保团队有有效的测试方式。这是所有在谷歌的测试人员和工作中这个领域的开发人员的努力目标。

    网友留言/评论

    我要留言/评论

    相关文章

    为什么如此多的创业公司挂了?:编者注,本文来自Bob Dorf,一个退休企业家。The Startup Owner s Manual 合著者之一。
    如何理解Linus Torvalds的“什么才是优秀程序员”的话:Linux的创始人Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:“烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。”
    用户为什么需要导购网站?:前些天跟天下网商聊“导购”,后来发了三篇文章来阐述我的一些观点(编辑注:1、白鸦谈导购(一):我们为什么需要导购 2、白鸦谈导购(二):导购现在活得还很好 3、白鸦谈导购(三):淘宝与导购是什么关系)。回来后我又对一些提到的观点和数据进行了印证,现整理出了一份完整详细版的内容在此。
    商家为什么需要导购网站:前些天跟天下网商聊“导购”,后来发了三篇文章来阐述我的一些观点(编辑注:1、白鸦谈导购(一):我们为什么需要导购 2、白鸦谈导购(二):导购现在活得还很好 3、白鸦谈导购(三):淘宝与导购是什么关系)。回来后我又对一些提到的观点和数据进行了印证,现整理出了一份完整详细版的内容在此。
    导购网站所服务的用户和提供的价值:前些天跟天下网商聊“导购”,后来发了三篇文章来阐述我的一些观点(编辑注:1、白鸦谈导购(一):我们为什么需要导购 2、白鸦谈导购(二):导购现在活得还很好 3、白鸦谈导购(三):淘宝与导购是什么关系)。回来后我又对一些提到的观点和数据进行了印证,现整理出了一份完整详细版的内容在此。
    社会化导购为什么让淘宝开心又忧心?:前些天跟天下网商聊“导购”,后来发了三篇文章来阐述我的一些观点(编辑注:1、白鸦谈导购(一):我们为什么需要导购 2、白鸦谈导购(二):导购现在活得还很好 3、白鸦谈导购(三):淘宝与导购是什么关系)。回来后我又对一些提到的观点和数据进行了印证,现整理出了一份完整详细版的内容在此。
    传统营销已死:《哈佛商业评论》曾经写了一篇文章,“传统营销已死”:包括广告宣传、公共关系、品牌管理以及企业传媒在内的传统营销手段都已经失效。很多还在这一行的人们似乎还没有意识到,他们所在的部门或者组织已经只剩下躯壳了。而建立于同伴影响力和社区导向的新型营销手段已经登上舞台,通过真正的顾客关系,它将为企业创造持续的增长。很显然,小米手机提供了一个很好的思路。
    小企业如何在网上找到免费帮助?:如果小企业的创始人没有经济学、金融学或者商业管理背景,很难想像公司的财务会是什么样子。
    创业成功几率究竟有多大?:我的一位VC 朋友曾经表达过这样的看法: 在所有创业企业 CEO 中,只有2种类型值得投资:1.之前创业成功过,知道下一步努力的方向和需要改进的地方,他的动力就是:努力做的更好。2.之前没有创业过,他渴望进行成功和死亡的尝试,不成功,则成仁。任何其它类型的CEO 都是在浪费Term Sheet。
    VC十大忽悠用语:创业者,我看好你!:编者注:这是一篇三年前的“旧文”。有趣的是,这些“忽悠术”即使今天看起来仍不过时,“我一会儿还有个会”、“很看好你,可惜内部讨论没通过”……这些话好像总在哪里听过。最近在微博上被翻出重提,看得人十分欢乐,仔细想想又全是经验之谈。重新发布,并欢迎补充。