《Google软件测试之道》- Google软件测试介绍

《Google软件测试之道》- Google软件测试介绍

2015-05-21

目录

1 质量与测试
  2 角色
  3 组织结构
  4 爬、走、跑
  5 测试类型
  相关链接

与Microsoft相比,Google的测试团队并非雄兵百万,更象是小而精的特种部队,依靠的是出色的战术和高级武器。Google信奉“少则清晰”。

1 质量与测试



返回

测试是开发过程中必不可少的一部分,当开发过程和测试一起携手联姻时,即是质量达成之时。

2 角色



返回

软件开发工程师(software engineer,简称SWE):传统的开发角色,与测试相关的是:代码审核,编写与测试代码,包括测试驱动的设计、单元测试、参与构建各种大小规模的测试等。

软件测试开发工程师(software engineer in test,简称SET):重心在可测试性和通用测试基础框架。参与设计评审,非常近距离的观察代码质量和风险。

注意:SET和SWE在代码库上的合作伙伴,与增加功能性代码或提高性能的代码SWE相比,SET更加专注质量的提升和测试覆盖率的增加。SET写代码的目的是可以让SWE测试自己的功能。

测试工程师:(test engineer,简称TE):TE把用户放在第一位来考虑。TE组织整体质量实践,分析解释测试运行结果,驱动测试执行,构建端到端的自动化测试。

从质量角度来看:

  • SWE负责功能实现和这些独立功能的质量。他们对容错设计、故障恢复、测试驱动设计、单元测试负责,并和SET一起编写测试代码。
  • SET也是开发人员,负责提供测试支持。SET的主要责任是让开发者可以很容易地编写测试代码,从而实现独立功能模块的质量要求
  • TE专注于用户角度的测试。

3 组织结构



返回

Google的组织汇报关系被划分为不同的专注领域(Focus Area)。这些专注领域包括客户端(Chrome、Google工具栏等)、地理(地图、Google Earth等)等等。所有开发工程师都汇报给这些专注领域的管理者。

测试是独立存在的部门,是与专注领域部门平行的部门(横跨各个产品专注领域),我们称之为工程生产力团队。测试人员基本上是以租借的方式进入产品团队。生产力团队会根据不同的产品团队的优先级、复杂度、并与其他产品实际比较之后,在来分配测试人员。

4 爬、走、跑



返回

在拥有如此少量测试人员的情况下,Google还能取得不错的成果,核心原因在于:Google从来不在一次产品发布中包含大量的功能。实际上,恰恰相反,在一个产品的基本核心功能实现之后,就立即对外发布使用,然后从用户那里得到真实反馈,再进行迭代开发。

例如Chrome,根据我们对产品的信心以及来自用户的反馈,我们在整个过程中使用了不同的版本,大致顺序如下:

  1. 金丝雀版本:每日构建,用来排除过滤一些明显不适宜的版本。
  2. 开发版本:开发人员日常使用的版本,一般美洲发布一个。
  3. 测试版本:一个通过了持续测试的版本。这个版本基本上是最近一个月里的最佳版本了。
  4. beta或发布版本:这个版本是由非常稳定的测试版本演变而来,并经历了内部使用和通过所有质量考核的一个版本,也是对外发布的第一个版本。

这种爬、走、跑的模式,给我们的应用程序尽早的提供了一个测试验证的良好机会。与从自动化测试那里得到的反馈一样,我们每天都能从内部用户那里得到关于这些版本的质量反馈。

5 测试类型



返回

Google并没有使用代码测试、集成测试、系统测试这些命名方式,而是使用小型测试、中型测试、大型测试这样的称谓,着重强调测试的范畴规模而非形式。

表1 测试类型

名称 参与者 自动化 方式及任务  解决的问题
小型测试 主要由SWE,少量由SET,TE几乎不参与 绝大部分 用于验证单独函数或独立功能模块,着重于典型的功能性问题、数据损坏、错误条件和大小差一错误等方面的验证。一般需要使用mock和fake。 这些代码是否按照预期的方式运行。
中型测试 SET会驱动这些测试的实现及运行,SWE会深度参与,一起编码维护这些测试 绝大部分 一般会涉及两个或两个以上模块之间的交互。 一系列临近的模块互相交互的时候,是否如我们预期的那样工作。
大型测试 三种工程师角色都会参与到大型测试之中 大部分 涵盖三个或以上的功能模块,使用真实用户使用场景和实际用户数据,大型测试关注的是所有模块的集成,但更倾向于结果驱动,验证软件是否满足最终用户的需求。 这个产品操作方式是否和用户的期望相同,并产生预期的结果。

对于所有的三种类型测试,Google更倾向于做自动化测试,当然Google也有大量的手动测试.它更倾向于测试新功能,用户体验,隐私之类东西。

相关链接



返回

新浪博客JerryGao写了其它章节的心得如下:

google测试分享-SET和TE

google测试分享-GTA

google测试分享-测试经理

时间: 2024-12-12 04:11:35

《Google软件测试之道》- Google软件测试介绍的相关文章

Google软件测试之道 pdf下载

引领一代风骚的明星企业google, 推出过很多成功优秀的产品,搜索引擎不用说,譬如Gmail ,Chrome, Google Doc, G+等等等等,也推出过很多短命的产品,譬如Google Wave等等. 作为一个时常需要推出新产品,但又要根据用户反馈而做进一步选择继续还是放弃的企业,作为一个需要让产品稳定健壮以保持客户满意度的明星企业,该如何测试是一个很大的问题.Google的经验非常值得借鉴. 该书的作者是Google测试的Senior Director(如果我没记错的话),在测试领域有

《Google软件测试之道》

Google软件测试之道 Google对质量的理解 质量不等于测试,即质量不是被测出来的 开发和测试应该并肩齐驱,测试就是开发过程中不可缺少的一部分 质量是一种预防行为而不是检测 Google对软件测试的划分 抛却复杂的专业术语,简单按照测试范围去划分: 小型测试:对一个代码单元的测试,通常就是单元测试 中型测试:对两个或多个模块之间交互的测试,通常类比于“集成测试” 大型测试:对一个应用系统及其子系统整体的测试,通常类比于“端到端测试” 这样划分的好处有: 容易定位问题:测试范围从小到大,各自

转《Google软件测试之道》

<Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯吧,就做了笔记,将自己的学习理解感触写下来... 预计会分为五部分写这些学习笔记,分别是Google软件测试基础介绍.软件测试开发工程师.软件测试工程师.测试经理以及附录其他部分... 快乐阅读,快乐测试,祝愿你总能发现(并修复)BUG... ----James Whittaker.Jason Arbon.J

《Google软件测试之道》测试开发工程师

拖延了将近半年的草稿,断断续续的写完了.之前草草翻看完这本书,关注点主要在TE上,而关于SET的部分则只是浏览,最近后知后觉,又翻出了这本书,重新看了一遍,又有新收获. 就说说Google的SET是如何做的,以及个人的一些思考和收获吧,寥有慰藉... Google的测试流程可以简练的概括为:让每个工程师都注重质量.而在工作流程引入过程中也伴随着一些致命的缺陷,下面简述下Google是如何解决以及其测试流程的是如何进化的. ①.测试并不能保证产品质量.需要一直谨记的一点:质量是内建的,而不是外加的

《Google软件测试之道》心得笔记

Google软件测试介绍 把开发和测试融合在一起--开发和测试必须同时展开 开发人员自己要对自己写的代码负责,比专职的测试人员更适合做测试工作. 测试开发工程师SET 对于Google拥有很少量的测试人员的情况下,还可以取得不错的成果,核心原因在于Google从来不会再一次产品发布中包含大量的功能,实际上,做法恰恰相反,在一个产品的基本核心功能实现之后,就立即对外发布使用,然后从用户那里得到真实的反馈. 软件测试开发工程师(SET) Google的四大主要开发语言:C++.Java.Python

google软件测试之道读后感(二)

这几天又翻了几页这本书,觉得妙语连珠,关键语录摘抄如下,并补充自己的一些思考: "如果你想要求一个团队去尝试新的事物或者做某些改进,给他们提供一个联系人会更好一些,这个联系人来源于更大的社区,并可以从他那里得到帮助": "不要陷入尝试去创建一个包含独立指标的完美系统的陷阱中.对所有人都完美的事情是不存在的.在没有可替代的方案时,在合理的地方达成一致并勇往直前是很重要的.需要灵活的时候就灵活一些,但一定要坚持你的原则底线". 当考虑团队建设方面时,在以前总是收获理想很

Google软件测试之道(一):软件测试开发工程师

设计文档 项目发起人要做的第一件事情就是设计文档.这是一个动态的文档.最早期的项目设计文档,主要包括项目的目标.背景.团队成员.系统设计.团队成员一起协同完成设计文档的不同部分.对于一些大规模的项目,需要针对主要子系统也创建相应的设计文档.在初期版本完成后,将来需要完成的工作清单也可作为项目路标.从这一点讲,设计文档必须经过相关技术负责人审核.作为SET,比较幸运的是在初期阶段加入了项目.SET在团队中有一个巨大优势,就是拥有产品方面最广阔的视野.通常代码复用和模块交互方面的设计会由SET来做,

Google软件测试之道(二):测试工程师

一种面向用户的测试角色 一种用户开发者,TE首先必须是工程师,Google的TE他综合了开发者仰慕的技术能力和以用户为中心检查软件质量而对开发者产生一定制约的能力.在研发的早期阶段,功能还在不断变化,最终功能列表和范畴还没有确定,通常TE没有太多工作可做.在TE进入产品时,需要考虑以下问题: 当前软件薄弱点在哪里? 有没有安全.隐私.性能.可靠性.可用性.兼容性.全球化和其他方面的问题? 主用户场景是否功能正常?对于全世界不同国家的用户都是这样吗? 这个产品能与其他产品互操作吗? 当发生问题时,

测试技术的思考 ---- 读《微软的软件测试之道》有感系列

假期期间,带着复习巩固测试基础理论的目的,开始阅读<微软的软件测试之道>,阅读过程中有不少启发,遂将自己的思考及学到的知识在此处做个总结记录. 1. 为什么阅读这本书? ????做了几年测试工作,随着对测试理解的加深,我发现测试理论对于日常的测试工作有较大的帮助与影响.待测系统复杂多样性的增加,要求我们也逐步去思考,如何测试,才能保证待测系统的质量,这期间就需要测试理论的支撑. ????我个人的一个观点是,一个优秀的测试工程师,或一个优秀的软件开发测试工程师,需要在三个方面持续的打磨: 理论