速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

“窥探”谷歌测试

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

评论

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

Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践

阿里云大数据AI技术

人工智能 最佳实践 PAI Qwen2.5-Coder

开放创新,释放云上生产力 | 2024华为云开源开发者论坛盛大开启,邀您相约上海

华为云开发者联盟

开源 大会

新技术架构给集团企业身份管理体系带来的挑战

芯盾时代

身份安全 iam 数字化经济

即时通讯技术文集(第44期):微信、QQ技术精华合集(Part1) [共14篇]

JackJiang

即时通讯;IM;网络编程

Transmit 5 for Mac(功能丰富的 FTP 客户端软件)

Mac相关知识分享

Eudic欧路词典 for Mac(英语词典翻译查询工具)

Mac相关知识分享

基于Sermant实现xDS服务网格,获取15+倍更高性能和更低成本

华为云开源

开源 微服务治理

How to Choose the Right Wi-Fi Chip: IPQ4019 vs. IPQ4029 vs. IPQ4018

wallyslilly

IPQ4019 ipq4029 IPQ4018

Milvus×Florence:一文读懂如何构建多任务视觉模型

Zilliz

微软 计算机视觉 Milvus 向量数据库 Florence

如何降低大模型训练与推理计算成本,以确保它们在软件研发中的有效应用?

思码逸研发效能

DevOps 研发效能 大模型 AI 基础设施 思码逸

API 之旅的三个阶段

NGINX开源社区

读书笔记 最佳实践 API

RAG搭建中,如何选择最合适的向量索引?

Zilliz

向量数据库 rag 向量索引

软件测试丨Pytest生命周期与数据驱动

测试人

软件测试

TiKV Raft Store 内存管理的原理与实现丨TiKV 源码解读(二十三)

PingCAP

数据库 分布式 TiDB

CRISPR-detector:快速、准确地检测、可视化和注释基因组编辑事件引起的全基因组范围突变

INSVAST

基因测序 基因数据分析 生信服务 生信分析 Sentieon

Mac代码管理软件:SnippetsLab for mac v2.6激活版

理理

Mimestream for Mac 管理和使用Gmail邮箱 v1.5.0激活版

理理

一站式视频处理软件 VideoProc Converter 4K for mac v6.6中文免激活版

理理

探索淘宝天猫API:解锁商品详情与关键词搜索的高效之道

代码忍者

API 接口 pinduoduo API

MAMP PRO for Mac(专业的Web开发环境)

Mac相关知识分享

TiDB 助力北京电信夯实电信账务系统的数据底座

PingCAP

数据库 TiDB

揭秘可观测利器:腾讯云 APM 深度融合 OpenTelemetry 和 Prometheus,助力高效指标采集与处理

腾讯云可观测平台

如何使用PHP开发一个购物网站?

科普小能手

php 电商 系统开发 购物 PHP开发

GreatSQL 自动开启复制导致同步报错

GreatSQL

Easy Data Transform for mac 智能数据转换与整合

理理

选择好的数据产品应当避免的六大坑|StartDT Talk

奇点云

大数据

昆仑万维「天工大模型4.0」o1版(Skywork o1)正式启动邀请测试

新消费日报

FlowJo 10 for Mac(mac流式细胞分析软件)

Mac相关知识分享

PHP 互斥锁:如何确保代码的线程安全?

左诗右码

火山引擎VeDI在AI+BI领域的演进与实践

字节跳动数据平台

如何评估测试工时?

老张

项目管理 软件测试 需求管理

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