[转]James Bach:测试人员的角色

2015-05-13

以前,我是个开发人员。我不喜欢这个工作,无尽的压力让我疲惫。我几乎从未感觉到自己的工作做得足够好。我从未有过真正的休息。如果我没做好,我们就可能超过最后期限,或者是发布了一个垃圾产品。此后成为一个测试经理(test manager),感觉就像是休假一样。

测试同开发比起来,是一个非常模糊的工作——有很多的余地。我要做的仅仅是找问题。

我曾经认为测试的职责就是找问题。

找问题很简单,但是时间长了就会发现这样很难让人满意。我想让产品变得更好。

我曾是Apple一个400人团队中的众多测试专家之一。由于团队名称是软件质量保证(Software Quality Assurance),我们在质量保证(QA)上的讨论过比测试还多。一位经理推荐了一本书,Philip Crosby的《Quality Without Tears | 质量无泪 》,以此来帮助我们看到自己在产品开发过程中更深层次的职责。这本书提到了“零缺陷”,于是我转向了缺陷预防这一理念。“质量不是测出来的”是我们的口号。

我曾经认为测试的职责是保证质量。

但是,测试人员并不能真正的保证质量。首先,完美的质量本身就是不可及的目标。质量有多个方面,其中的一些就是冲突的。其次,测试人员并不创造质量,所以保证质量这样的职责并不在我们的能力范围之内。如果我们把自己想象成质量把关者,团队的其他人就有可能倾向于为质量少承担一些责任,他们会认为有QA在保证着质量——这样如果产品不是很好,我们就会承担主要责任。

除此之外,许多QA是通过定义流程和审查流程的执行来发挥作用。问题是,这样的一个方式很容易就会沦为关于质量的说教,在响亮的口号和常见的“好的质量是好的,不好的质量是不好的”式的争论中,QA所有的优点都看不见了。这就是为什么很多开发人员把QA视为耳边的噪音——只会另他们分心。

而我,从这种招人烦的角色中被解救了出来。经理把我叫到一边,告诉了我一个大秘密:一切都是为了风险——不必追寻完美,只需找到一个足够好的东西就够了。这样就把测试和质量保证转变成了一种项目的雷达,寻找敌人。我们在项目中是要快速的找到重要的问题,而不是每一个历史阶段中的每一个旧问题。

这深深的改变了我的思想。我不再像以前那么关注要在测试中达到尽可能全面的覆盖,而是关注哪一部分真正需要测试,并评估未知问题的风险。

考虑风险使测试人员在项目中更加容易与其他人相处。关于质量的讨论变成了判断哪些有影响,而不是纠结于谁想要完美。

我曾经认为测试的职责是分析风险。

风险是很重要,但它仍然是一种抽象的概念,而且悲观。一个开发经理跟我说他不喜欢谈论风险。“风险听起来很消极。我们不是保险公司理赔员,我们是企业家。我们勇于冒险。”他说的很在理。回报才是项目最重要的部分。难道对于测试,就找不到一个更全面和积极的观点了?

当然,测试的目的的确是发现问题、分析风险、以及保证质量,但是还有一种更本质的方式来看待我们的职责:我们照亮道路。没有测试,项目在黑暗中乱撞、被障碍绊倒、最后跌下悬崖。而测试会在需要的地方点亮火把,来帮助开发人员和经理知道他们在哪、他们要去哪、还有他们什么时候能到达。

现在,我认为测试的职责是提供重要信息,来协助创造和运营优秀的产品。这包括了发现问题、保证质量、分析风险、以及其他任何能够帮助团队了解当前状况的方式。

明天,我会怎么看待测试呢?

[转]James Bach:测试人员的角色的更多相关文章

  1. 51Testing专访史亮:测试人员在国外

    不久前,我接受了51Testing的访问,讨论了软件测试的一些问题.以下是全文. 1.史亮老师,作为我们51Testing的老朋友,能和我们说说您最近在忙些什么吗? 自2011年起,我加入Micros ...

  2. Grooming Meeting及测试人员所扮演的角色

    Grooming Meeting的中文翻译是“梳理会议”,它并不是Scrum框架中标准的会议(标准会议为Planning Meeting, Daily Scrum Meeting, Review Me ...

  3. 测试管理_测试人员招聘[持续更新ing]

    招聘之难,难于上青天. 如何招聘到一位称心如意的员工想必是每个公司和管理者都要面临而且头疼的问题.尤其在初建团队或团队缺人的情况下问题会显得更加严重. 作为一个测试管理者,如何招聘到合适的测试人员是必 ...

  4. 随心测试_软测基础_005 <测试人员工作内容>

    接上篇:清楚了_测试人员的工作职责范围,那每项 测试活动的具体工作内容有哪些呢? Q1:如何理解测试工程师的工作内容? A1:SX的观点:综合一体化 现如今互联网行业如何哪达,每一项IT职业的工作职责 ...

  5. 随心测试_软测基础_004<测试人员工作职责>

    接上篇续,依据_软测基础体系:<依据不同的测试对象,选取适合的方法,按照设计的流程完成测试工作,检验整个过程是否达到测试的目的>.“学以致用”,实践于工作职责 常见面试题: —— 诸如以下 ...

  6. 软件开发项目组各职能介绍 & 测试人员在团队中的定位

    前言     接触了许多非测试和新入行的测试从业者,听到最多的问题就是:“测试是否被需要?“   团队职能介绍     <暗黑者1>中有句台词,“专案组有五个职能角色构成,侦探.网警.痕迹 ...

  7. ISTQB测试人员认证 初级(基础级)大纲

    ISTQB测试人员认证 初级(基础级)大纲 ---中文修订版本1(2015年5月6日) 2015-06-22 大纲pdf下载  ISTQB资料中心 在课程大纲中,每个章节都会提供相应的认知水平要求: ...

  8. James Bach Rapid Test的感受

    前阶段拜读过James大神的快速测试,英文水平有限,阅读起来有点吃力,虽然想亲自参加大神的培训,一直没有机会,不过阿里牛人参加大神的培训,并总结的不错,现在谈谈自己的感想和看法. 进入测试行业不少年了 ...

  9. 测试人员学Java入门指南

    目标读者 本指南特别适合有Python基础的同学学习Java入门,对于没有任何编程经验的同学可能会存在困难. 为什么测试人员要学Java 选择Java,应该不错.TesterHome测试论坛知名大佬基 ...

随机推荐

  1. Python任务调度模块 – APScheduler。动态修改调度时间间隔

    APScheduler可以把调度任务放到内存里,也可以把任务放到数据库里,那么如何交互式修改定时任务的执行时间间隔或者下次执行时间呢? 方案一:把定时任务放到数据库里,修改数据库里任务的调度时间 方案 ...

  2. .net使用自定义类属性

    .net中可以使用Type.GetCustomAttributes获取类上的自定义属性,可以使用PropertyInfo.GetCustomAttributes获取属性信息上的自定义属性. 下面以定义 ...

  3. C# 16位GUID

    摘自: http://www.cnblogs.com/lcwzj/archive/2009/04/16/1436992.html 当我们想要获得一个唯一的key的时候,通常会想到GUID.这个key非 ...

  4. 谷歌浏览器开发调试工具中Sources面板 js调试等 完全介绍

    这次分享的是Chrome开发工具中最有用的面板Sources. Sources面板几乎是我最常用到的Chrome功能面板,也是在我看来决解一般问题的主要功能面板.通常只要是开发遇到了js报错或者其他代 ...

  5. 了解Redis 和 Memcached 的区别

    1.Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去. ...

  6. luigi框架--关于python运行spark程序

    首先,目标是写个python脚本,跑spark程序来统计hdfs中的一些数据.参考了别人的代码,故用了luigi框架. 至于luigi的原理 底层的一些东西Google就好.本文主要就是聚焦快速使用, ...

  7. 免费的多数据库管理工具sqldbx个人版本

    SqlDbx是一个先进的Sql编辑器和数据库对象资源管理器SqlDbx仅一个可执行的文件不需要安装 SqlDbx与SSMS对象内存占差的不是一点点,但功能与SSMS相当 优点:支持多数据库,占用内存小 ...

  8. TeamTalk 5

    TeamTalk 5 Repository for TeamTalk 5 development. Download TeamTalk 5 SDK To build the TeamTalk clie ...

  9. Eclipse与Android源码中ProGuard工具的使用(代码混淆)

    由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的 ...

  10. 初次使用IntelliJ IDEA

    一.认识IDEA IDEA 全称IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持 ...