写点什么

测试团队与咖啡店

  • 2013-07-15
  • 本文字数:1776 字

    阅读完需:约 6 分钟

测试团队的“核心价值”应该是什么?这个问题无数次被提出,又无数次在讨论中归于沉寂。所谓的“核心价值”,恐怕在不同的组织和不同的产品中很难达成一致,因此,归于沉寂也就不足为奇。

但“核心价值”的问题本身确实值得探究,因为没有价值观的认同,就很难去讨论测试的前进方向。在不少测试相关的会议上,我的演讲都旗帜鲜明地把“价值”作为测试理所当然的前进方向,在我看来,测试本身需要找到自己存在的价值,然后才可以讨论“该做什么”和“该怎样做”。

据说 IT 工程师在想要转行时,通常的第一考虑是开餐馆或是咖啡店,坦白说,我也曾有过这样的念头:)现在,假设我终于要离开 IT 行业,转行去开个咖啡店。于是我选择了一个在我看来合适的地段(某 IT 人士集中的写字楼下),用多年积攒的工资缴纳了租金,然后正式开始了我的咖啡店老板生涯……起初,一切都非常完美,我按照自己的规划装潢了这家咖啡店,用的是我最喜欢的墙纸,欧式的格调,柔和的灯光,散发着柔和光泽的咖啡用具……嗯,连音乐都是我精挑细选的,应该说,这就是我梦想中最完美的咖啡店。可是,在按照我的心意打造了这家咖啡店之后不久,我突然意识到了一个大问题。那就是,似乎我的客户和我在品味上并不一致,虽然有些人口头表达了对我这家咖啡店的认同,但实际情况是他们很少有足够的耐心等待细致的咖啡制作环节完成,甚至一段时间后,有人问我能不能提供火锅。提供火锅?!这可不是我的梦想,我的梦想是全世界最好的咖啡店!在断然拒绝他们的无理要求之后,毫不意外,我的咖啡店生意越来越差,梦想还在,但离赚钱的目标却越来越远……

好吧,实际上,我还不打算现在转行去开咖啡店。讲这个故事,只不过是想以咖啡店老板的心态来探讨测试团队的价值取向。把故事里的咖啡店老板换成测试团队,你会发现其中有不少的相同点:

1,测试团队按照自己的梦想建立了“完美的”测试体系(测试流程、自动化测试工具、缺陷跟踪与分析体系等);

2,开发工程师偶尔也会赞扬这些看上去很完美的流程、测试用例等,但却始终关心这个问题:“你们能不能在我们每次修改代码之后帮我们验证一下”;

3,显然,测试团队会非常不喜欢开发工程师的要求,断然拒绝;

4,测试团队继续着自己的梦想和期望,长吁短叹开发对自己的不理解与不认同,然后……

那么,我的问题是,如果你是咖啡店的老板,你准备怎么做?显然,一旦了解谁是客户,你立刻就会明白:如果客户要的并不是环境优美、格调高雅的咖啡店,那么我们就提供给客户他需要的东西。如果我们的目的是最终盈利的话,显然,在这种情况下把咖啡店改成火锅店会更加合适一点。

回到测试团队的话题,谁是测试团队的客户?单纯的说是开发团队也不尽合理,实际上测试团队和开发团队的客户一样,都是产品的直接用户。但考虑到开发团队的直接产出是用户可使用的软件产品,测试团队把开发团队当成自己的客户还是合情合理的。

那么,当客户对你说他想要火锅(持续不断地对提交的产品进行验证),而不想要格调高雅的咖啡(晚上的流程、分析等),你该怎么办?最直接的反应是把咖啡店改成火锅店,提供火锅而不是咖啡。所以,测试团队可以用手工的方式帮助开发人员验证不断地验证产品,直到……自己再也无法应付为止。更好的方法也许是探寻客户真正的需求,例如,一个不断要求火锅的客户很可能不是非火锅不吃,而是因为他喜欢吃火锅的热闹,选择的自由,以及在花费不多的情况下鼓腹而出。那么,我们大可以给他提供他真正想要的东西。当开发人员对测试团队说“我需要你们在每次提交后对产品进行测试”,他真正想要的只不过是能够有一种机制,使得每次代码提交之后都能验证产品是不是存在明显的问题。通过 CI、分层的自动化测试,测试团队可以用更轻松、更快捷也更优雅的方式解决开发团队的问题。在这个基础上,也许你还可以说服开发团队建立一系列的标准,用于评估产品的生产率和质量,让测试团队和开发团队一起推动持续的生产率增长和质量提升。

也许,对测试团队来说,咖啡店不是个最好的比喻(毕竟不是每个测试工程师都像我这么没有想象力)。但当你下回纠结于“开发工程师为什么不接纳我们辛辛苦苦建立的流程”的时候,至少可以把自己想象成咖啡店老板,换个角度想想你的客户需要什么样的服务。

本文作者简介

段念,工程副总裁 @豆瓣。对软件开发管理与团队管理颇有兴趣,喜欢和各位同好交流。

本文来自 InfoQ 微信公众账号:infoqchina

2013-07-15 20:393685

评论

发布
暂无评论
发现更多内容

Python Qt GUI设计:QCalendar日历类和QDateTimeEdit时间类(基础篇—20)

不脱发的程序猿

Python qt GUI设计 QCalendar日历类 QDateTimeEdit时间类

新公司安排的工作做不来怎么办?是不是该离职了?

石云升

28天写作 职场经验 12月日更

Java问题排查分享

捉虫大师

Java 问题排查

工业区块链与关键关联技术融合创新

CECBC

模块九作业

Geek_fc100d

「架构实战营」

模块五作业

ks

架构实战营

微服务架构细节

卢卡多多

28天写作 12月日更

[架构实战营] 模块五作业

张祥

架构实战营

架构实战总结

Geek_fc100d

「架构实战营」

31 K8S之StatefulSet控制器

穿过生命散发芬芳

k8s 28天写作 12月日更

Android C++系列:Linux信号(三)

轻口味

c++ android 28天写作 12月日更

基于云的技术架构设计实践-第0篇

hackstoic

云计算 架构 云原生 创业公司 签约计划第二季

10个问题解答火热的元宇宙概念

CECBC

继续跑步

wood

创业 跑步

反脆弱漫谈

木风

质量管理 技术管理 28天写作

深度参与,亲身体验,谨慎接受

mtfelix

28天写作 必然 未来趋势 2022开年学习

模块五作业 ”微博评论“的高性能高可用计算架构

小朱

架构实战营

TypeScript 之常见类型(上)

冴羽

JavaScript typescript 翻译 大前端

云原生:详解|容器核心技术解析

息之

Docker 镜像 技术优势

Mysql探索(一):B-Tree索引

程序员历小冰

MySQL 索引 28天写作

Java 项目中使用 Resilience4j 框架实现隔断机制/断路器

码界行者

Java circuit break 断路器 Resilience4j 隔断机制

Java基础系列:反射

正向成长

Java 反射

高层与基层思考上的差异与解决办法

光环PMO社群

项目管理

和12岁小同志搞创客开发:手撕代码,做一款节拍电子鼓

不脱发的程序猿

少儿编程 DIY 智能硬件 创客开发 Arduino

毕业设计-电商秒杀系统

小智

「架构实战营」

浪潮云说直播间-云溪数据库之ClickHouse原理解析今晚开讲

云计算,

云原生:详解|容器云平台应用解析

息之

容器安全 容器应用

在AI与信息交互之间:QQ 浏览器的边界探索

脑极体

王者荣耀商城异地多活架构设计

胡颖

架构实战营

微博系统中“微博评论”的高可用高性能架构

AHUI

「架构实战营」

由《组织行为学》讲义想到的两个问题(1/28)

赵新龙

TGO鲲鹏会 28天写作

测试团队与咖啡店_文化 & 方法_段念_InfoQ精选文章