`
找不着北
  • 浏览: 314790 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

谷歌如何测试软件 —— 第二部分

阅读更多

为了做到“you build it, you break it”这句名言所说的那样,有必要在传统的开发人员之上再增加几个工作角色。因为懂技术,开发人员做测试工作就更合适、更有效。在Google,我们新增 的工作角色是来让技术人员负责去提高其他人的效率。这些技术人员通常把自己看作是测试人员,但他们真正的使命是提高生产率。他们的存在可以使开发人员更高 效,产品更有质量,这些都是生产率最重要的部分。下面是对这些角色的一些概述:


软件工程师 是传统的开发角色。软工编写需要提交给客户使用的程序功能代码。他们编写设计文档,设计数据结构,以 及整个架构,他们主要的时间是花在开发和检查程序代码。软工会写出大量的测试程序,包括测试驱动设计,单元测试,以及我在下一部分里将会提到的整个开发工 程中的小规模,中等,大规模的测试程序。软工对他动过的任何程序的质量负责 —— 不论是自己开发的、还是改过bug的,或完善过的程序。


测试软件工程师 同样也是开发人员,只不过他们更侧重于测试相关的东西。他们审查设计,发现里面的代码质量问题和 风险。他们重构代码,让程序更容易测试。测试软工编写单元测试/自动化测试框架。他们是软工开发的程序的共同创造者,但更关注于提高质量和测试覆盖率,而 不是增加新功能和提高程序性能。


测试工程师 正好和测试软件工程师反过来。这个角色是以测试第一,开发放在第二。很多Google的测试工程师的 大部分时间都是在写自动化测试脚本之类的代码,用来驱动测试用例或模拟一个用户。他们同时也负责组织软工和测试软工的测试工作,解释测试结果和驱动测试执 行,特别是在项目开发的晚期推动产品正式发布的重要角色。测试工程师是产品专家,质量顾问,风险分析师。


从质量的角度看,软件工程师 对产品功能和产品质量负有完全独立的职责。他们负责产品对错误的忍耐度的设计,错误恢复,测试驱动设计,单元测试,以及帮助测试软件工程师 开发那些用来测试这些程序的测试代码。


测试软件工程师是编写测试功能的开发人员。他们提供一种框架,通过虚拟物来模拟程序所依赖的各种环境,使开发出的新代码能隔离起来运行。他们负责管 理代码的提交(check-in)。换句话说,测试软件工程师编写那些用来测试软件工程师开发出的功能的测试程序。大部分的实际的测试活动都是软件工程师 执行的,测试软件工程师只是来确保程序的各项功能都可测试,软工以十分活跃的角色参与到这些测试用例的编写过程中。


很显然,测试软件工程师 主要是为开发人员服务的。确保每个功能的质量是他们的目标,他们使开发人员能够容易的测试自己开发出的程序。我相信有人肯定已经看出,在这个开发过程中,存在一个巨大的漏洞:怎么没有用户?


用户测试是 Google的测试工程部 的工作。假设软工和测试软工的测试通过的话,下一步的工作就是看看这一堆的可执行代码和数据集成起来是否满足用户的需求测试工程部 在 开发人员的工作基础上做双重检查。任何明显的bug的存在都会说明前期开发测试工作的不合格、很差劲。当这种问题很少时,测试工程部会将主要精力放在软件 在用户场景中运行时的性能效率、安全性、国际化等问题上。测试工程部要做大量的测试,并且要在测试工程部和签约测试人员,目标集体测试者,dog fooder,beta用户,前期用户之间配合测试。他们会同遇到到基础设计上、功能复杂度和错误恢复方法上的问题的用户进行交流。测试工程部 一旦插手,事情就永远没个完了。


好了,你现在对各种角色都有了较明白的理解了,我还会进一步的对如何安排他们的工作事项上进行介绍。下一次见 … 感谢你的关注。

 

:)

21
4
分享到:
评论
1 楼 jameswolf 2011-04-06  
google 这有钱,能设置这么多角色

相关推荐

    华为P40安装谷歌框架步骤1——backup.rar

    华为P40下载谷歌框架第一步。 使用手机浏览器下载(对浏览器无要求),在文件管理中找到下载的安装包 1、文件管理——长按压缩包——更多——解压至——内部存储——选择目录——Huawei(位置在中间偏下)——勾选右...

    新手学HTML5移动开发——面向iOS和Android平台

    第iii部分介绍了ios和android sdk(software development kits,软件开发包),并且向您展示如何将第ii部分的web应用程序转换成独立的应用程序,该应用程序可以分发到苹果公司的和谷歌公司的应用程序商店中。

    hadoop实战——初级部分学习笔记 2

    ### Hadoop实战——初级部分学习笔记 2 #### 一、引言与背景 随着大数据时代的到来,Hadoop作为处理大规模数据集的核心工具之一,其重要性和应用范围日益扩大。本文将基于私塾在线《Hadoop实战——初级部分》的...

    全程软件测试

    第二章主要聚焦于测试计划的制定。测试计划是一份文档,其中详细描述了软件测试过程的各个方面,包括测试的范围、目标、方法、资源、进度安排、测试工具和人员分配等。为了确保测试计划的合理性和有效性,首先要进行...

    从入门到精通HTML5——PDF——网盘链接

     1.4.3 使用可视化软件制作页面 10  1.4.4 使用浏览器浏览HTML文件 14  1.4.5 使用HTML开发的明日图书网 14  1.5 小结 15  1.6 习题 16  第2章 HTML文件基本标记 17  教学录像:44分钟  2.1 HTML头部标记 18...

    AndroidStudio————实战演练——仿美团外卖菜单

    在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...

    云应用开发 ——Google App Engine & Google Web Toolkit入门指南

    #### 第2章 环境搭建 ##### 2.1 安装JDK Java Development Kit (JDK) 是 Java 开发的基础工具包,包含了 Java 运行环境 (JRE)、Java 编译器以及其他开发工具。为了使用 Google App Engine 和 GWT 开发应用,首先...

    Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例

    在本章节中,“Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例”主要聚焦于Android应用程序开发中的一个实际应用场景——构建一个RSS阅读器。这个实例将帮助初学者理解如何将Android SDK的...

    云计算技术之————MapReduce

    "云计算技术之————MapReduce" 云计算技术中的 MapReduce 是一种分布式编程模型,用于大规模群组中的海量数据处理。MapReduce 由 Google 公司的 Jeffrey Dean 和 Sanjay Ghemawat 开发,旨在解决大规模数据处理...

    解析Google Android SDK——智能手机开发范例手册.rar

    第2章 Android之HelloWorld 第3章 认识可爱的UI 第4章 应用资源 第5章 数据存储 第6章 蓝牙 第7章 Android与Internet 第8章 Android搜索框架 第9章 安全和权限 第10章 应用小部件 第11章 Android常用程序开发 第12章...

    参考资料-工程材料合格证试验报告(第2卷)——卷内备考表.zip

    本案例中,我们关注的焦点是一个名为"参考资料-工程材料合格证试验报告(第2卷)——卷内备考表.zip"的压缩包文件。这个文件的主要内容是一个文档,具体为"工程材料合格证试验报告(第2卷)——卷内备考表.doc"。这...

    Google Android SDK开发范例大全——示例代码

    本资源“Google Android SDK开发范例大全——示例代码”聚焦于第五章,这部分内容通常会涵盖Android开发中的核心概念和实用技巧,通过具体的代码示例帮助开发者深入理解和实践。 第五章可能包含以下几个关键知识点...

    深度学习框架(TensorFlow)基础教程——第2章:TensorFlow环境搭建

    在现代人工智能领域,深度学习是推动技术发展的核心力量,而TensorFlow作为谷歌开发的一款开源深度学习框架,受到了广大开发者和研究者的热烈追捧。本教程将带你逐步走进TensorFlow的世界,从环境搭建开始,深入理解...

    Android源码——手机铃声软件源码.7z

    10. **发布与打包**:最后,开发者需要将应用打包成APK文件,签名并发布到Google Play Store或其他第三方应用市场。 以上就是基于提供的标题和描述所涉及的Android开发主要知识点。具体的源代码实现会根据设计和...

    C++单元测试简单示例

    你可以通过`TEST_F`宏定义一个测试用例,其中第一个参数是测试套件的名称,第二个参数是测试用例的名称。 3. **编写测试用例(Test Case)**: 测试用例由一系列断言组成,用于验证代码行为。例如,`ASSERT_EQ`...

    Google Apps Script,第2版

    ### Google Apps Script 第二版 —— 关键知识点详解 #### 标题与描述解析 - **标题**: "Google Apps Script, 第2版" - **核心概念**: 本书是关于Google Apps Script的第二版,主要介绍了如何利用Google Apps ...

    安卓Android源码——个人消费记录软件.zip

    从标题"安卓Android源码——个人消费记录软件.zip"和描述中,我们可以推测这是一份包含源代码的压缩包,用于教学或实践如何创建一个帮助用户跟踪日常开支的应用。以下将详细介绍涉及的技术点: 1. **Android Studio...

Global site tag (gtag.js) - Google Analytics