《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,根据我们对产品的信心以及来自用户的反馈,我们在整个过程中使用了不同的版本,大致顺序如下:
- 金丝雀版本:每日构建,用来排除过滤一些明显不适宜的版本。
- 开发版本:开发人员日常使用的版本,一般每周发布一个。
- 测试版本:一个通过了持续测试的版本。这个版本基本上是最近一个月里的最佳版本了。
- beta或发布版本:这个版本是由非常稳定的测试版本演变而来,并经历了内部使用和通过所有质量考核的一个版本,也是对外发布的第一个版本。
这种爬、走、跑的模式,给我们的应用程序尽早的提供了一个测试验证的良好机会。与从自动化测试那里得到的反馈一样,我们每天都能从内部用户那里得到关于这些版本的质量反馈。
5 测试类型
Google并没有使用代码测试、集成测试、系统测试这些命名方式,而是使用小型测试、中型测试、大型测试这样的称谓,着重强调测试的范畴规模而非形式。
表1 测试类型
| 名称 | 参与者 | 自动化 | 方式及任务 | 解决的问题 |
| 小型测试 | 主要由SWE,少量由SET,TE几乎不参与 | 绝大部分 | 用于验证单独函数或独立功能模块,着重于典型的功能性问题、数据损坏、错误条件和大小差一错误等方面的验证。一般需要使用mock和fake。 | 这些代码是否按照预期的方式运行。 |
| 中型测试 | SET会驱动这些测试的实现及运行,SWE会深度参与,一起编码维护这些测试 | 绝大部分 | 一般会涉及两个或两个以上模块之间的交互。 | 一系列临近的模块互相交互的时候,是否如我们预期的那样工作。 |
| 大型测试 | 三种工程师角色都会参与到大型测试之中 | 大部分 | 涵盖三个或以上的功能模块,使用真实用户使用场景和实际用户数据,大型测试关注的是所有模块的集成,但更倾向于结果驱动,验证软件是否满足最终用户的需求。 | 这个产品操作方式是否和用户的期望相同,并产生预期的结果。 |
对于所有的三种类型测试,Google更倾向于做自动化测试,当然Google也有大量的手动测试.它更倾向于测试新功能,用户体验,隐私之类东西。
相关链接
新浪博客JerryGao写了其它章节的心得如下:
《Google软件测试之道》- Google软件测试介绍的更多相关文章
- 《Google软件测试之道》【PDF】下载
<Google软件测试之道>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382198 内容介绍 每天,Google都要测试和发布 ...
- 《Google软件测试之道》
Google软件测试之道 Google对质量的理解 质量不等于测试,即质量不是被测出来的 开发和测试应该并肩齐驱,测试就是开发过程中不可缺少的一部分 质量是一种预防行为而不是检测 Google对软件测 ...
- 《Google软件测试之道》基础
<Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯 ...
- 《Google 软件测试之道》摘录
最近刚刚看完<Google 软件测试之道>,受益颇多,遂记录下: 只有在软件产品变得重要的时候质量才显得重要 第一章:谷歌软件测试介绍 角色介绍 SWE(Software Engineer ...
- google软件测试之道--读后笔记
看完google软件测试之道,以前有认真看过一次,今天又重新看了一遍. 在google,测试人员严格区分为SET和TE.SET前期深度参与项目的开发,推动开发人员的自测,从破坏者的角度寻 ...
- 《Google软件测试之道》测试开发工程师
拖延了将近半年的草稿,断断续续的写完了.之前草草翻看完这本书,关注点主要在TE上,而关于SET的部分则只是浏览,最近后知后觉,又翻出了这本书,重新看了一遍,又有新收获. 就说说Google的SET是如 ...
- 《Google软件测试之道》简介
<Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯 ...
- 小课堂week14 Google软件测试之道
读<Google软件测试之道> 在IT领域,Google是一面旗帜,是一家非常善于思考善于尝试的公司.随着面临挑战的不断增大,传统的测试开展方式也越来越力不从心,这本书讲述的就是一次完整的 ...
- google软件测试之道读后感(一)
这几天在抽空读一本新书,久负盛名的<google软件测试之道>.之前在网络上一点一点地看过它的英文版,很受触动,还做了很长的读书笔记,现在看到了中文版,才恍觉之前的好些理解存在不恰当的地方 ...
随机推荐
- 5 cocos2dx 3.0源码分析 渲染 render
渲染,感觉这个挺重要了,这里代入一个简单的例子 Sprite 建立及到最后的画在屏幕上, 我们描述一下这个渲染的流程: 1 sprite 初始化(纹理, 坐标,及当前元素的坐标大小信息) 2 主循 ...
- Python 字符串前面加'r'
在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' . 例如,\n 在raw string中,是两个字符,\和n ...
- 超链接的禁用属性Disabled了解
可以设置超链接的Disabled属性的true 和 false来确定超链接是不是能点击 例如: <a herf='http://www.baidu.com' onclick='return cl ...
- Android -- Activity的销毁和重建
两种销毁 第一种是正常的销毁,比如用户按下Back按钮或者是activity自己调用了finish()方法: 另一种是由于activity处于stopped状态,并且它长期未被使用,或者前台的acti ...
- 如何获取浏览器URL中查询字符串的参数?
如何获取浏览器URL中查询字符串的参数? 想要知道怎样解决这个问题,首先我们先认识一下Location对象. Location对象包含了当前页面与位置(url)相关的信息 URL示例:http://w ...
- 裸裸的线段树(hdu 1754)
线段树的第一发. 哪天忘了还能够让自己找找回顾. 线段树操作: build : 建树. update:点改动: query:查询 Input 在每一个測试的第一行,有两个正整数 N 和 M ( 0& ...
- 你们对LinearLayout线性布局中Layout_weight的误解
帮人找个入门级别的书得负责任,自己先看一下有无缺陷,结果发现这个:(原文发在该书的论坛上,发现受众面太小了,无奈转到这个弃用很久的博客里,以后把心得慢慢发上来) Google Android开发入门与 ...
- spring测试实例
我们以前要进行单元测试,必须先得到ApplicationContext对象,再通过它得到业务对象,非常麻烦,重复代码也多.基于spring3的单元测试很好的解决了这个问题 基于spring3的单元测试 ...
- nuget命令的用法:
nuget命令的用法: Install-Package 安装包 -Version 4.3.1 参数指定版本 Uninstall-Package 卸载包 Update-Package 更新包 Get ...
- sql各种连接详解
迁移时间:2017年6月1日16:33:58 CreateTime--2016年9月14日11:19:00Author:Marydon sql各种连接详解 参考链接: http://www.jb5 ...