【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

“窥探”谷歌测试

  • 2012-07-26
  • 本文字数:2417 字

    阅读完需:约 8 分钟

一淘网测试架构师黄利在他的博客上发布了翻译的一个专题系列文章:《谷歌如何测试》,整个系列文章从全局到局部地介绍了谷歌有关测试的情况。

译者黄利在《译者序》中阐述了在软件开发模式(尤其是互联网)中,近几年的快速迭代发布,以 Beta 版本线上运行,让大家对测试产生了一些误解:

复制代码
  • 这些应用没有经过很好地测试,好多功能使用上都有问题;
  • 测试水平比较有限,没有能及时的发现潜在问题;
  • 测试本身没有太多的技术,基本上是功能确认,点点鼠标、搭建环境验证下就可以;
  • 只要认真仔细,有责任心就可以做好测试;

这些误解让很多人特别是应届生,都不会把测试作为职业规划来考虑,黄利表示:“想通过这个系列的讨论,让大家清楚测试工作如果做好,方法其实并不是想象中的那么简单和表面上的肤浅,是非常好有挑战的。”

关于《谷歌如何测试》,黄利已经翻译了六篇:

第一篇:介绍谷歌工程生产力部门构成,以及这种测试人员的项目分离和汇报组织结构的优点与缺点。

谷歌没有真正的测试部门,测试依托在各个产品部门里,即“工程生产力”,这个部门由以下几个团队组成:工具产品团队(负责内部和外部开源的促进生产力的工具开发与维护);服务团队(给产品部门提供一些专业的建议,包括一系列工具、文档、测试、发布管理、培训等方面,这些专家建议涵盖可靠性、安全、国际化等,甚至包括产品团队面对的功能问题);嵌入式的工程师(在需要的时候被产品部门高效地“借”去使用)。

在测试人员的这种项目分离和汇报组织结构中,其优点是开发和测试将具有相同的地位,缺点则由于测试人员被看做外部资源,产品部门团队不能对测试人员有太多的依赖,他们自己必须要合理地控制产品质量。

第二篇:为了让开发人员效率提升,特别是在质量方面的提升,在传统的软件开发人员的之上,增加了几个角色,特别是需要工程技术方面的特殊角色。

将工程师的角色细分为:软件开发工程师【SWE,Software Engineer】, 就是传统的开发人员;软件测试开发工程师【SET or Software Engineer in Test】,和软件开发工程师一样是开发工程师,主要负责软件的可测试性;软件测试工程师【Test Engineer】,和软件测试开发工程师【SET】恰恰相反,主要工作是做测试而不是开发。

从质量的角度来看,软件开发工程师对功能开发和质量负有全责,软件测试开发工程师是提供测试支持的开发人员,软件测试工程师的职责就是最终用户级别的测试。

第三篇:质量不等于测试,“质量不是被测出来的”。

最简单的办法是不要区分开发和测试,不要把他们当成对立的活动。测试和开发【注,两种行为,不是人】最好能手牵手的并行,写一点代码就立刻进行测试,写的越多,测的就要越多。最好是,在编码的同时,甚至在编码之前,就考虑清楚这些代码将如何被测试。测试不是一个单独的工作,测试就是开发的一部分。所以,质量并不等同于测试,当把开发和测试混在一起,搅拌直到分不清他们彼此的时候,就得到了质量。

对于质量来说,预防问题比发现问题本身更重要。质量是开发人员的问题,而不是测试人员的问题。通过把测试工作融入到开发过程中,我们能降低那些富产 Bug 的人的出错机会,不仅可以避免了大量最终用户的使用问题,而且还可以极大地降低测试人员报无效 Bug 的数量。在谷歌软件测试工程师的工作目标就是检查这种预防措施是否有效,软件测试工程师不停地寻找一些证据来证明作为 bug 的作者和预防者的“软件开发工程师 - 软件测试开发工程师”组合是否存在问题,一旦发现任何不正常,就会拉响警笛。

第四篇:从爬到走、走到跑的模式,在一个产品的核心模块被开发后,如果有一定数量的受益人群就立刻发布,然后不断的得到用户反馈再迭代开发新功能。

这样爬、走、跑的模式对分析也有益处。例如,发现了一个 bug,测试人员可以根据这个 bug 创建一个测试用例,并针对所有的每一个版本都运行这个测试用例,从而可以验证这个 bug fix 是否在所有的版本中都真正得到了修复。

第五篇:测试范围的定义,以及自动化测试和手动测试。

“哪些需要被测试及测试范围的确定,这是一个动态变化的过程,在不同的产品之间会有比较大的差异。谷歌更倾向于频繁发布,从产品的外面用户那里得到反馈之后再迭代开发。”

“自动化测试和手动测试,对于所有的三种类型测试【小规模、中等规模、大规模测试】来说当然更喜欢前者。如果能够被自动化,而且不需要任何人智力和直觉判断,那就应该把它变成自动化的。只有在特别需要人为判断的时候,例如用户的界面是否漂亮、或暴漏一些涉及用户隐私的内容时,在这些情况下应该保留手动测试。

对于谷歌来说非常重要的是仍然使用了大量的手动测试,不管是使用文本记录的方式还是使用探索性测试,虽然有些已经进入了自动化测试的视线。业界使用的录制技术将手动测试转变成自动化测试,可以在每个版本后自动地重复运行,这样保证了最少的回归工作,并把手动测试的重点放在新问题上。而且,谷歌已经将提交 BUG 的过程和一些手动测试的日常工作也自动化了。

人类智慧的最后一英寸”体现在测试设计上,谷歌的下一代测试工具也正在这个方向上努力尝试,将其自动化。

第六篇:软件测试开发工程师【SET】的生命

“软件测试开发工程师【Software Engineers in Test】是软件工程师,专注在测试实现。首先,软件测试开发工程师是开发角色”

“通常来说,软件测试开发工程师不会在早期设计阶段就介入。”

“当我说“测试”时,并不是仅仅意味着单纯的检查验证代码路径。测试人员不是从开始就参与进来的,但“测试”却至始至终都有。实际上,一个开发尝试去 check in 代码的时,测试人员的影响力在这个时刻可能就已经显现出来了。”

这个系列的文章还没有完结,也欢迎大家继续关注黄利的博客分享,并通过 InfoQ 网站及 InfoQ 微博等方式参与讨论。


感谢黄玲艳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-07-26 00:008348

评论

发布
暂无评论
发现更多内容

接口测试学习之json

测试人生路

json 接口测试

快进收藏吃灰!字节跳动大佬用最通俗方法讲明白了红黑树算法

小Q

Java 学习 架构 面试 算法

媲美物理机,裸金属云主机如何轻松应对11.11大促

京东科技开发者

云计算 容器 服务器 云主机

入坑 docsify,一款神奇的文档生成利器!

沉默王二

docsify

阿里达摩院副院长亲自所写Java架构29大核心知识体系+大厂面试真题+微服务

Java架构追梦

Java 学习 阿里巴巴 架构 面试

MySQL 连接为什么挂死了?

华为云开发者联盟

微服务 数据 存储

DataPipeline CPO 陈雷:实时数据融合之法,稳定高容错

DataPipeline数见科技

数据融合

Springboot过滤器和拦截器详解及使用场景

996小迁

Java 编程 架构 面试 springboot

6. 自定义容器类型元素验证,类级别验证(多字段联合验证)

YourBatman

Hibernate-Validator Bean Validation 多字段联合验证

《迅雷链精品课》第六课:主流区块链数据存储分析(一)

迅雷链

区块链

32核打赢AMD64核 英特尔Ice Lake为HPC提供强劲性能

E科讯

前嗅教你大数据——史上最全代理IP服务商对比

前嗅大数据

大数据 数据采集 动态代理 静态代理 代理IP

互联网券商系统搭建建议书

软件开发大鱼V15988750073

国际配售 港股交易系统开发 证券交易系统 IPO系统开发 金融平台搭建

第九周学习性能优化 3 总结

三板斧

极客大学架构师训练营

架构师训练营第九周作业

_

极客大学架构师训练营 第九周作业

DataPipeline CTO 陈肃:构建批流一体数据融合平台的一致性语义保证

DataPipeline数见科技

数据融合

Scrum指南这么改,我看要完蛋!

华为云开发者联盟

Scrum 敏捷 改版

DataPipeline 王睿:业务异常实时自动化检测 — 基于人工智能的系统实战

DataPipeline数见科技

大数据

【JDD京智大咖说】AI 未来,路在何方?NLP、CV 技术的探索与展望

京东科技开发者

人工智能 CV nlp

号外!5G+X联创营华为云官网上线,5G 创业春天来了!

华为云开发者联盟

华为 程序员 AI 5G

DataPipeline CPO 陈雷:实时数据融合之道,博观约取,价值驱动

DataPipeline数见科技

数据融合

11月阿里Spring全家桶+MQ微服务架构笔记:源码+实战

小Q

Java 学习 程序员 面试 微服务

AI技术在音乐类产品中的应用场景

HIFIVE音加加

人工智能 AI 音乐 音乐制作

京东T8Java架构师总结整理的15w字的Java面试手册,2021年金三银四不愁涨不了薪!

Java架构之路

Java 程序员 架构 面试 编程语言

一周信创舆情观察(11.9~11.15)

统小信uos

架构师训练营 1 期 -- 第九周作业

曾彪彪

极客大学架构师训练营

DataPipeline CPO 陈雷:实时数据融合之法,便捷可管理

DataPipeline数见科技

数据融合

企业工作流设计原则及多项目整合开发注意事项

Marilyn

敏捷开发 工作流 企业开发

架构师训练营 1 期 - 第九周 - 性能优化 3

三板斧

阿里P8架构师吐血整理的《SpringBoot+Vue全栈开发实战》文档资料

Java架构之路

Java 程序员 架构 面试 编程语言

3年Java开发经验从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经

Java架构之路

Java 程序员 架构 面试 编程语言

“窥探”谷歌测试_软件工程_sayhelen_InfoQ精选文章