大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

“窥探”谷歌测试

  • 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:008729

评论

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

启信宝产业洞察:广东江苏领跑全国,动力电池回收形成“模式+标准”双标杆

合合技术团队

人工智能 #算法 #大数据

中美贸易战:短期缓解、中期风暴,长期重构

PowerVerse

Apache Cloudberry™ PAX 行列混存方案技术解析

酷克数据HashData

AI 时代,为什么编程能力≠ 开发门槛

阿里巴巴云原生

阿里云 云原生 通义灵码

深入研究:微店商品列表API接口详解

tbapi

微店商品详情接口 微店API 微店商品列表接口

收藏!十种企业最佳单点登录(SSO)工具选择与对比

运维有小邓

单点登录 零信任模型 多因素身份验证

深入研究:拼多多商品详情API详解

tbapi

拼多多商品详情接口 拼多多API

出版社资源管理系统的运营

北京木奇移动技术有限公司

软件外包公司 出版社 资源管理系统

同济大学胡维老师分享大模型如何助力经管高效科研

ModelWhale

大模型 科研 同济大学 经济管理

2025深圳人工智能展览会(高交会)

AIOTE智博会

高交会 人工智能展览会 人工智能展会 人工智能展

从 DB-Engines 排名攀升看 TiDB 全球突破之路

TiDB 社区干货传送门

京东物流基于Flink & StarRocks的湖仓建设实践

Apache Flink

大数据 flink 实时计算

FAST'25论文解读:HaSiS单索引存储架构实现HTAP数据处理新范式

ScaleFlux

雅菲奥朗可观测性Observability认证培训圆满结课,赋能企业可观测性新能力

雅菲奥朗

星闪,连接智能的「最短距离」

白洞计划

AI

凌晨3点的程序员,都在偷偷用这个神器续命…

测试人

人工智能

DeepSeek 正当红,聊聊大模型应用的四大关键要素和未来

京东科技开发者

3D空间视频生成技术探索与应用

京东科技开发者

【前瞻技术布局】咖啡机器人:具身智能技术首阶段探索与实践

京东科技开发者

远程访问自建私有云、Docker服务只需3步,贝锐花生壳DDNS解析

贝锐

Docker 内网穿透

3FS系列(三):从源码到实测:3FS USRBIO静态库的编译与性能体验

九章云极DataCanvas

人工智能 深度学习 DeepSeek 3FS

IBM发布《2025 年 X-Force 威胁情报指数报告》: 大规模凭证盗窃不断升级,亚太地区首当其冲

财见

超实用指南:应届生如何三步高效拿下理想实习机会

安全乐谷

面试 找工作 转行 笔试 找实习

AI 时代,为什么编程能力≠ 开发门槛

阿里云云效

阿里云 云原生 通义灵码

DevEco Studio AI辅助开发工具两大升级功能 鸿蒙应用开发效率再提升

HarmonyOS开发者

微店商品详情接口调用实战:从入门到精通的完整指南

代码忍者

微店商品详情API接口

皇家马德里对阵毕尔巴鄂竞技:联赛第二名与第四名之间的焦点战

新消费日报

【重磅】JeecgBoot 里程碑 v3.8.0发布,支持AI大模型、应用、AI流程编排和知识库

JEECG低代码

低代码 AI应用 AIGC 流程编排 JeecgBoot

Node.js 异步调用淘宝API实战:构建高吞吐商品详情数据采集方案

代码忍者

淘宝API接口

如何实现采购数字化?

积木链小链

数字化转型 智能制造 采购数字化

第一期人工智能工程师(中级)课程顺利举行,AI精英齐聚一堂!

雅菲奥朗

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