在比其他公司少很多测试人员的情况下,谷歌做的还不错的一个关键原因是,很少尝试在一次发布中包含很多的功能。实际上,谷歌经常反其道而行之,在一个产品的核心模块被开发后,如果有一定数量的受益人群就立刻发布,然后不断的得到用户反馈再迭代开发新功能。这也是我们在Gmail 上的做法,Gmail 被贴上Beta版本的标签在线上运营了四年。通过这个Beta标签也可以来警示用户,Gmail 还并非完美的产品,有出错的可能。只有当邮件数据达到 99.99%的时间都是可用的时候,我们目标就算达到了,这个Beta标签才会被去除。很明显,质量是一个不断改进的过程。
这里的这个改进过程,并不像西部牛仔那样,一下子什么都能搞出来。实际上,一个产品为了达到我们称之为Beta的版本,也要经历一系列的过程,并在过程中证明其价值。Chrome是我加入谷歌前两年一直所工作的团队,它同样经历了多个版本。在每个版本里,基于对产品质量的信心和不断寻求的客户反馈才让我们进入到下一个版本。这些版本历程大致如下:
金丝雀版本(Canary Channel),不太可靠的版本,并不适用于发布。就像一只金丝雀在煤堆里一样,如果不幸身亡,那说明还有工作要去做。只有超强容忍能力的用户才有可能使用金丝雀版本来试验运行,你不能依赖这样的应用能把实际工作完成。
开发版本(Dev Channel),是开发工程师们日常工作中使用的版本。所有的同一产品组的工程师都需要去安装这个版本,并在真正的工作中使用他们。
测试版本(Test Channel),是给内部的狗食【译者注,dog food,一般指自己团队的产品,给自己或者公司内部的人尝试使用的中间产品】,如果能够有持续不错的性能表现的话,也可能会是beta版本的候选。
Beta版本或发布版本(The Beta Channel or Release Channel),是给外部用户使用的第一个版本。只有在之前的各种版本历程中通过了测试和真实用户的枪林弹雨般的验证后,才会成为beta版。
上述的这种从爬到走、走到跑的模式,让我们在运行一些测试同时又可以对我们的应用系统做一些试验调整,并从真实用户和每个版本的每日自动化测试那里得到及时的反馈。
对于这样的过程,还有一些分析角度的益处。例如,发现了一个bug,测试人员可以根据这个bug创建一个测试用例,并针对所有的每一个版本都运行这个测试用例,从而可以验证这个 bug fix是否在所有的版本中都真正得到了修复。
【译者注:关于Chrome 与 Chrome OS 各版本的称呼,可以参见http://www.chromi.org/chromedownload ,其中也涉及到本文中各个版本的称呼,但并不是与 James文中完全一致,实际上像金丝雀版本,一些喜欢尝鲜的外部用户也在使用】
公直
2012/3/20
英文原文,
How Google Tests Software – Part Four
http://googletesting.blogspot.com/2011/03/how-google-tests-software-part-four.html
Wednesday, March 02, 2011 10:11 AM
By James Whittaker
Crawl, walk, run.
One of the key ways Google achieves good results with fewer testers than many companies is that we rarely attempt to ship a large set of features at once. In fact, the exact opposite is often the goal: build the core of a product and release it the moment it is useful to as large a crowd as feasible, then get their feedback and iterate. This is what we did with Gmail, a product that kept its beta tag for four years. That tag was our warning to users that it was still being perfected. We removed the beta tag only when we reached our goal of 99.99% uptime for a real user’s email data. Obviously, quality is a work in progress!
It’s not as cowboy a process as I make it out to be. In fact, in order to make it to what we call the beta channel release, a product must go through a number of other channels and prove its worth. For Chrome, a product I spent my first two years at Google working on, multiple channels were used depending on our confidence in the product’s quality and the extent of feedback we were looking for. The sequence looked something like this:
Canary Channel is used for code we suspect isn’t fit for release. Like a canary in a coalmine, if it failed to survive then we had work to do. Canary channel builds are only for the ultra tolerant user running experiments and not depending on the application to get real work done.
Dev Channel is what developers use on their day-to-day work. All engineers on a product are expected to pick this build and use it for real work.
Test Channel is the build used for internal dog food and represents a candidate beta channel build given good sustained performance.
The Beta Channel or Release Channel builds are the first ones that get external exposure. A build only gets to the release channel after spending enough time in the prior channels that is gets a chance to prove itself against a barrage of both tests and real usage.
This crawl, walk, run approach gives us the chance to run tests and experiment on our applications early and obtain feedback from real human beings in addition to all the automation we run in each of these channels every day.
There are analytical benefits to this process as well. If a bug is found in the field a tester can create a test that reproduces it and run it against builds in each channel to determine if a fix has already been implemented.
from:http://sdet.org/?p=164
分享到:
相关推荐
【学术英语1-6单元C篇翻译】主要探讨了第四次工业革命中,社交媒体,特别是Facebook,对商业格局和人们沟通方式的巨大影响。这篇翻译强调了技术进步如何改变商业环境,以及公司如何适应这些变化以满足客户需求。 ...
从给定的信息来看,本文档包含了四篇关于“阴天”的作文,每篇作文大约300字。尽管这些文章的主要焦点在于描述个人情感和经历,而非直接涉及IT技术领域,但我们仍然可以从这些文本中提炼出一些与技术和写作相关的...
本篇文章将详细探讨如何利用易语言来提取Google翻译音频,以及相关的技术实现。 一、易语言与Google翻译API的结合 易语言的强项在于它的可视化编程界面和丰富的组件库,这使得开发者可以快速构建应用程序。而...
这篇外文翻译的PDF文件详细探讨了Android系统的安全架构,包括它如何保护用户的隐私,防御恶意软件,以及如何通过更新和权限管理来增强整体的安全性。 一、Android安全模型 Android的安全模型基于Linux内核,它...
### 谷歌黑板报:数学之美——深入探索Google的数学原理 #### 知识点一:统计语言模型 统计语言模型是自然语言处理(NLP)领域中的一项核心技术,它通过数学方法评估一系列词语构成句子的可能性,进而帮助机器理解...
格式一般为:<item>*******</item> ,或<string name="****">****</string> 第三个是以大写字母开头的词条,一般都是需要汉化的。 注意:这三条要综合起来运用,特别是在比较大型的软件中,情况会比较复杂,需要自己...
Four different Translation Engines四种翻译引擎任选 Search Engine Optimized搜索引擎优化: Global Translator会添加语言代码到你所有URI的开头来创建永久链接 Fast Caching System快速缓存系统:减少翻译请求被...
例如,第一题询问男士拒绝女士邀请的原因,第二题讨论的话题可能是工作、天气或者汽车保养等,第三题推测说话者之间的关系,第四题评价电影的感受,第五题寻找Bill的位置。这些题目旨在考察学生的听力、推理和情境...
《挑战程序设计竞赛(第2版)》是一本专门针对程序设计竞赛的指南,由日本的秋叶拓哉、岩田阳一和北川宜稔三位经验丰富的程序设计高手共同编写,由巫泽俊、庄俊元和李津羽翻译。这本书主要面向程序设计人员、竞赛爱好...
这篇文档主要介绍了四个常用工具软件的使用方法,包括WinRAR的压缩解压、Ultra Video Splitter的视频分割、Adobe Reader的PDF阅读以及谷歌金山词霸的翻译应用。 1. **WinRAR的使用** - **解压文件**:通过“开始”...
#### 第一部分:入门篇 - **第1章:可伸展的语言** - 介绍Scala语言的设计理念和特性。 - 探讨Scala语言如何适应不同规模的软件开发项目。 - 分析Scala语言与其他语言相比的优势。 - **第2章:Scala的第一步** -...
- 拥有国内第一款Android软件商店:优亿市场(eoeMarket)。 - 提供了海量、全面、优质的Android学习资料、互助共享的开发者服务。 - **CMD100** - 为中国手机开发者联盟开辟了独立专区。 - 为开发者提供了免费...
Android3D游戏开发付费视频教程共享(更新第四集) 史上最全示例Android教学视频,非常值得观看 Android游戏开发系列源码+CHM+书籍截图+目录】 Android developer guide中文翻译文档 Android开发开发技巧之 EditText...
2)设计要求: a) 如何设计规划网络结构(需要画出拓扑图) b) 如何设置防火墙的过滤规则 c) 假如IDS只能监控交换机的一个端口,您会建议用户监控哪个端口 7、 英文测试 简要翻译一篇关于Exchange邮件服务器SMTP服务如何...
* 2007 年,图灵奖获得者 Jim Gray,提出“数据密集型科学发现 (Data-Intensive Scientific Discovery)” 将成为科学研究的第四范式,“数据科学”拉开了帷幕 * 2008 年,《 Nature 》杂志出版专刊,讨论大数据处理...
这篇指南将详细介绍如何进行Android Studio的汉化,帮助您更高效地学习和使用这个强大的开发平台。 一、Android Studio简介 Android Studio是Google推出的一款基于IntelliJ IDEA的免费开源开发工具,专为Android...
- 在二进制版本的结构和内容(第四章)中,`dist\lib\ext` 下的 `jfreechar.jar` 应为 `jfreechart.jar` 这些问题可能会影响资源包的正常使用,请在安装和配置时特别注意。 #### 结语 通过这篇文档,我们不仅了解...