对软件测试团队“核心价值”的思考(来自 李云)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

之前曾写过《软件质量管理的困境与对策思考》,在其中谈到开发部门与质量管理部门(QA)应形成一个有“交集的双环”而非“哑铃型”组织,也指出软件质量管理应重实践轻量化,其目标应是帮助工程师改善工作习惯和提升开发环境的效率。那时并没有认真地思考过测试团队的核心价值,直到读到@段念-段文韬老师的《测试团队与咖啡店》。


通常,软件开发团队似乎几乎不谈论自己的“核心价值”,而针对测试团队总有对该问题的特有思考是不是折射出了现实的一些状况?因为但凡探寻“核心价值”时,往往意味着价值不够清晰或者找不准重点。


以我过去一直从事软件开发相关工作的经历来看,测试团队对于“核心价值”的特有思考的确存在其必然性。探讨其根源让我们从一个“游戏”开始。


“零和游戏”之困

多数软件企业都设立了开发与测试两个部门,且两个部门属于企业价值链中的两个有交互但又独立的节点。在企业中只要是个部门就大多存在绩效考核问题,似乎只有这样才能证明该部门存在的必要性。


软件测试部门的角色通常定位为“质量卫士”。自然地,他们所发现软件缺陷的数量和严重程度与其绩效潜移默化地有着紧密关联。于是乎,测试工程师为了体现其价值,希望尽可能在缺陷跟踪系统中新建缺陷记录。但开发工程师就不干了,因为缺陷数量同样可以作为考核指标以衡量其开发质量。进一步我们有了这样的工作场景:测试工程师发现问题后,首先与开发工程师进行沟通,在征得开发工程师的同意后再新建缺陷记录(这个过程有时变成了一种博弈,而非真正为了工作效率);开发工程师对于测试工程师所发现的问题不是持感激态度,反而认为他们是在“找麻烦”。由于“质量卫士”的存在,开发工程师心安理得、堂而皇之地认为保证软件质量是测试部门的事。


不难发现,这样的体制下其实创造了一个“零和游戏”。这个游戏给我们带来的困境是:测试部门的“赢”(发现了更多的缺陷)意味着开发部门的“输”(开发质量不佳);反之亦然。总而言之,两个部门很难达成共赢,有时甚至出现各自为政的极端状况。


软件质量的概念

估计没有人会质疑测试活动本身的价值,其背后的道理恐怕再简单不过了。但我们仍需先探讨一下什么是软件质量(后面简称为“质量”),不明晰这一概念会很难保证测试活动能有的放矢。


我在《专业嵌入式软件开发》一书中曾指出,质量是分级的,它包含用户和团队两个级别。简单说来,用户级的质量由软件缺陷去反映,而团队级的质量反映于开发团队能否按步就班地实施开发工作而非经常处于“救火”的“紧急状态”,团队级的质量是涵盖用户级的更高形式。我在该书中还指出,软件设计是质量之本,只有高质的软件设计才能保证团队级的质量,并最终长期给我们带来用户级的质量。这些主张很明确地表示,质量首先由软件开发工程师负责。


用户级的软件质量我们可以通过根据需求文档编写的测试用例来加以评估。但是团队级质量(即软件设计质量)则很难通过这些测试用例去评估,但软件缺陷数量却也能反映出一定的情况。如果某项目的软件缺陷数量在相当长的时间内出现幅度较大的波动,这大多意味着软件设计存在问题,也表明开发团队并没有从根源上解决问题,而是采取了“七修八补”的短期行为。另外,从开发团队是否时常处于“救火”状态也能很大程度地反映出软件的团队级质量水准。


我们需要测试工程师吗?

理想情况下,测试可以由开发工程师们去完成,因为“他们知道软件的所有实现细节”,但现实与理想总是存在差距。完全由开发工程师去完成测试工作存在以下可操作性问题:

1)对开发工程师的能力要求太高。这些家伙不仅要精通编程语言、熟悉业务,为了测试还得掌握测试理论、测试方法和实施测试所需的脚本语言。要求一旦太高,就容易出现资源稀缺的现象。另外,我们设想一下,工程师如何才能达到这么高的要求?学校里学?还是工作中学?如果在工作中学,那么在没有达到要求前他们在工作中承担的角色又是什么?

2)当开发时间很紧的情形下,要让开发工程师同时关注设计质量和测试质量几乎不大可能。现实中,能顾及前者就算是很出色的开发工程师了。此外,这种不可能不是单方面由开发工程师决定的,而是有太多的项目管理团队总有“压缩时间能促使开发团队不散漫”的错误认识,而没有意识这种认识驱使的行为所带来的副作用——影响了软件的设计质量。

3)开发工程师们通过采用软件模块化的方式实现协作,这种情形下一定需要有人从测试的角度去统领整个系统,靠开发工程师自己实在勉为其难。


面对这些可操作性问题,如果有人还一味地坚持测试工作应完全由开发工程师完成,那只能说他在否认社会分工的益处,也很可能是忘记了自己在成长为“全能选手”前所承担的角色。


综上所述,我们需要有测试工程师与开发工程师共同努力以实现质量目标,而这也意味着测试工程师是有价值的!


测试工程师贡献价值的方向

测试工程师要很好地贡献价值,首先要与开发工程师有共同的目标。也就是说,开发与测试团队先要把质量目标变成“我们的”,而不是“你的”或“我的”,否则很难打破“零和游戏”所带来的困境。就这一点,我完全认同@吴穹老师在他的《测试的双重目的性及理性质量观》一文中所倡导的“只有将开发和测试完全地混合在一起,不分彼此,才能够真正获得好的质量,不应试图去隔绝开发与测试团队”。换句话说,开发与测试团队在组织架构上的关系要做适当的修正以支撑这种主张,否则它是阻碍测试团队输出价值的第一个巨大障碍。


所制定的共同质量目标最好是团队级别的,因为从开发工程师的角度来看,只有这样才能保证开发工作按步就班,也意味着他们和公司能从中获得最大的收益。从这个角度说来,测试工程师可以考虑“我如何帮助改善软件的设计质量”。这个问题或许太大,对测试工程师的要求也太高(后面我们还会谈这方面的内容),但我们可以从“如何保证软件的可测试性”这种更具有指导性的问题入手。


退而求其次的是,测试团队与开发团队共享相同的用户级质量目标。在这个层面上,测试团队将发现巨大的发挥空间。比如,测试团队能否搭建或改善单元测试的平台,以帮助开发工程师更方便地实施单元测试;又或者能否帮助开发工程师构建持续集成的平台;等等。


请注意,我并非主张测试团队应对开发团队言听计从,而是主张测试团队应使用自己的测试专业知识帮助开发团队提高开发质量与效率,而非只充当检验员的角色。测试工程师一定需要建立团队的自信:测试是一个专业领域,在质量保证方面我们有自己独到的见解,能为开发工程师提供帮助。


总的说来,测试团队需要站在测试专业领域的高度为开发团队提供指导与帮助,也只有这样开发工程师才能感受到“我们拥有同一个质量目标”。这种观念我想也正是@段念-段文韬老师在《测试团队与咖啡店》一文中想强调的。另外,Google让测试团队隶属于Engineering Productivity这一FA(Focus Area)或许也正是出于这一考虑的吧!


现实的无奈

读者可以从网上搜索《Google是如何做测试的》这个系列翻译文章,其中谈到了Google是如何组织测试的,里面的内容很值得我们学习与思考。总体说来,我觉得Google对于测试工程师和测试开发工程师的要求相比国内我所见到的更高,且其中开发测试工程师的作用非常关键,他们review设计、审查代码的质量与风险、重构代码使之具备更好的可测试性、编写单元测试和自动化测试框架等。


回头看看国内,好象将测试当作比开发次要而非同级。对测试工程师的要求似乎也没有开发工程师高,这一点从招聘时碰到某位工程师不适合开发岗位时会考虑他是否适合做测试可以看出。以我的理解,测试工程师应当是开发工程师出身且水平更高,因为只有水平高了才能对软件质量有更深刻的认识,才有能力从质量层面贴心地指导和帮助开发工程师的日常工作。


测试团队对“核心价值”困惑的存在,很大程度上是由于国内对测试的重视不足,强行割裂开发与测试两个活动而导致的。其所带来的更大危害在于,测试人才缺乏一定的梯度。

测试质量体系搭建--测试团队目标 作为测试部门负责人,有很多要考虑的事情。不仅要做到是否已经做了该做的测试,并且还关心测试执行的质量是否过关,是否风险都已经暴露出来。因此测试部门把测试工作做好,只是做了基本工作;如何能让大家相信你做的测试是没有问题的,测试已经发现了产品中的所有问题,需要付出更多的努力才可以。 之前由于工作需要,我曾经面试过很多测试负责人,经常会问面试者一些相同的问题,如“如何做好测试工作?”,“如何能管理好测试工作?”,“如何能让老板相信你能管好测试部门”。在回答“如何做好测试工作?”的问题上,有90%是回答的很好的;在 阅读详情

相关推荐

软件测试技术管理(测试团队建设宝典new)

前提 测试技术管理_理念 测试技术管理_技术观点 测试技术管理_团队建设 测试技术管理_测试管理 测试技术管理_研发测试流程 测试技术管理_组织架构 测试技术管理_体会收获

软件测试团队核心价值”的思考

之前曾写过《软件质量管理的困境与对策思考》,在其中谈到开发部门与质量管理部门(QA)应形成一个有“交集的双环”而非“哑铃型”组织,也指出软件质量管理应重实践轻量化,其目标应是帮助工程师改善工作习惯和提升开发环境的效率。那时并没有认真地思考测试团队核心价值,直到读到@段念-段文韬老师的《测试团队与咖啡店》。通常,软件开发团队似乎几乎不谈论自己的“核心价值”,而针对测试团队总有对该问题的特有思考是...

weixin_34267123的博客 1237

由谁进行测试?开发部门还是测试部门?

应该由开发部门进行单元测试!由测试部门进行单元测试的问题代价高:反复的重新理解代码需要大量的时间,反复的沟通也需要大量的成本。人手不足:进行单元测试的人员需要具备编码能力,很多软件企业的测试部门都没有足够的人手。耽误了测试部门对其他测试的准备工作:编码阶段,测试部门要为集成测试、系统测试等做好准备,如果测试部门陷在单元测试的“泥潭”里,很可能影响这些准备工作。由开发部门进行单元测试的问题担心影响开

单元测试 3787

软件测试工程师的职业圈子是什么样的?

互联网企业,在研发技术部门(IT技术部门)一般就是分为这几个类别:1.产品部;2.开发部;3.测试部;4.运维部

tiantianquan51的博客 255

测试开发】阿里十年总结之软件测试价值

互联网时代的产品可能拼的是创新,对商业需求的洞察。但会不会有一天,互联网技术会像工业技术一样,质量也会成为某一家公司某一个行业可以用来突破的路线时,那时质量一定能够成为皇冠上的那颗明珠。

Code · Cloud · Think · Repeat 760

软件测试工程师在团队中的价值和担当

怎样才是一个优秀的测试工程师呢

Fly_feimingzi的博客 1998

测试人员在软件开发的未来的天堂里

对下面3篇文章的一点思考李云:对软件测试团队核心价值”的思考 - http://blog.csdn.net/hzliyun/article/details/9773917 吴穹:测试的双重目的性及理性质量观 - http://blog.csdn.net/adwu73/article/details/9632757 段念:测试团队与咖啡店 - http://www.infoq.com/c

独立匠艺程序员。本土匠艺、中西合璧;编程悟道,心无挂碍。 1536

Springcloud外卖订餐系统97503-计算机课程设计/毕业设计

主要研究内容有系统整体需求分析和功能规划,确定普通用户、员工、管理员三个角色的权限划分及业务流程,完成系统总体架构设计、功能模块详细设计、数据库逻辑结构和物理结构设计,实现用户注册登录、商品选购、在线订餐、购物车管理、地址管理、订单支付与配送跟踪等功能,实现员工端的分类管理、订餐管理、订单处理和配送管理功能,实现管理员端的用户管理、权限配置、订单列表管理、资讯和通知公告管理功能。

Biye_Design的博客 166

对软件测试核心价值”的思考

之前曾写过《软件质量管理的困境与对策思考》,在其中谈到开发部门与质量管理部门(QA)应形成一个有“交集的双环”而非“哑铃型”组织,也指出软件质量管理应重实践轻量化,其目标应是帮助工程师改善工作习惯和提升开发环境的效率。那时并没有认真地思考测试团队核心价值,直到读到@段念-段文韬老师的《测试团队与咖啡店》。 通常,软件开发团队似乎几乎不谈论自己的“核心价值”,而针对测试团队总有对该问题的特有思考是不是折射出了现实的一些状况?因为但凡探寻“核心价值”时,往往意味着价值不够清晰或者找不准重点。 ..

m0_37449634的博客 739

提升测试团队价值,让1+1>2

个人的力量有限,只有依靠团队,才能创造出更大的价值。所以,1+1=2的简单算数在团队协作中并不实用。团队齐心协力,创造出的价值是完全可能大于2的。反之,如果团队不融洽,存在内耗,那创造出的价值可能远小于2。作为一个测试团队管理者,怎么加强测试团队人员间的协作,怎么使测试团队创造出更大的价值,这是一个必须面对的问题。下面结合我自身管理测试团队的经验,给大家分享下提升团队战斗力的几点建议。规范测试工作流程标准。

213

软件测试核心价值是什么?

既然是“核心价值”,就应该能用一句话说清楚。关于软件测试核心价值是什么,各种观点争论了很久,似乎很难得出一个明确的结论。这里有个很重要的原因,就是我们都深陷在测试工作的细节里面,没办法看清自己的位置和价值。不识庐山真面目,只缘身在此山中。 要想搞清楚这个问题,我们必须走出围城来进行分析,如果把软件测试看成一种服务,那么从客户的视角来评判,最合适不过了。下面讲一件真实的事情。 有一次我回家跟老...

weixin_30764771的博客 497

测试团队价值_通过持久的团队释放价值

运营团队价值 重点 (Top highlight) 通过持久的团队释放价值 (Unlocking value with durable teams)By Anna Shipman 安娜·希普曼(Anna Shipman) Over the past six months, my group at the Financial Times has moved from project-based...

weixin_26752759的博客 923

测试团队价值是什么?

<br />今天看到段念的一篇微博,说是跟一个朋友聊天,这个朋友是一款游戏公司的cto,他取消了技术部门的测试团队,改由开发人员自己测试,而且质量明显比原来提高了。结果是反对声一片。我这是样理解的。<br />一,测试团队不专业,经过测试团队的项目上线后还是bug百出,所以cto认为测试存在的价值不大<br />      我觉得专业的测试团队是不会被解散掉的,如果让cto有了“有没有你们这些人都一样”的想法,甚至你们测试的还不如自测的质量呢,那不解散才奇怪呢,所以团队的提升和权威是要靠成绩来说话的,你出的

李秀龙 质量管理 4110

软件测试人员的价值

最近公司一直在提“软件测试人员的价值到是什么”,测试价值应该体现在哪里呢?    在网上看到一本书中的一句话“软件测试的真正价值并不体现在代码中找出了多少缺陷,而是发现设计和编程人员解决问题方法上的局限,思路中的狭隘和技能方面的不足”,个人觉得有写道理,分享一下。    下面是看到的一段话,也分享一下:   常常,在面试时我会问应聘者:“做测试工作,让你感到自豪的事是什么?”,大部分人回答

紫漪的博客 4974

软件测试公司的价值观,软件测试价值观-SMBT新理念

2、Most bug:最多Bug量变到质变是事物的变化规律,测试也如此,只有Bug的量上去了,产品的质量才能有所改观,如果Bug在数量上上不去,这对测试活动有信心谈何 容易,一旦遇到这种情况测试经理们就头痛起来了,因为这必定是一个危险的信号,我们的信心将会荡然无存,除非系统质量足够的好,测试手段足够的高超,否则 我们将会面临产品上市后的最大危机。3、Best bug:最有价值Bug之前谈到我们尽早...

weixin_39922151的博客 558

测试部门,如何更好的体现价值

一、测试比开发low,一定程度上我是认同的 之前面试的时候,有个小朋友问我:“有人说测试比开发low,你觉得呢?”(表情愤慨,可能是她的开发鄙视测试了) 我说:“在一定程度上,我是认同的。从测试整体行业看,肯定是不如开发的。但是从个体,甚至一个团体来看,则不一定” 一个项目,从创业到做大再到衰败,我们可以看到他们的人员情况一般是:开发(产品等其他人员这里不说)->扩招开发->招测试(一定程度后)->扩招开发+测试->逐步退出测试+开发->留一两个开发维护->结束 我们可以

Asaasa1的博客 878

测试新人如何体现自己的价值

测试新人如何体现自己的价值 在下不才,跳槽到新公司刚过600天,跟新公司一起经历了600天的起起落落,深有感触,有感而发,希望对各位看官能够有所启发和借鉴。   作为一个技术并不那么牛逼但是从业12+的测试人员,跳槽一个靠谱的公司确实很不容易,所以特别珍惜这个新的机会。 之前在光荣之路参加测试培训,听吴老强调得最多的就是,“要在测试岗位体现自己的价值”。但是作为一个从业很多年的老鸟,感觉仅...

lelemom的博客 628

2021-07-02

自用笔记软件测试请就N95口罩设计测试用例请结合自身对软件测试的理解,说一说作为一名测试人员,如何最大化的为团队创造价值 软件测试 请就N95口罩设计测试用例 首先,我们来普及一下 N95 口罩的一些常识: N95 型口罩,是 NIOSH(美国国家职业安全卫生研究所)认证的 9 种防颗粒物口罩中的一种。“N”的意思是不适合油性的颗粒(炒菜产生的油烟就是油性颗粒物,而人说话或咳嗽产生的飞沫不是油性的);“95”是指,在 NIOSH 标准规定的检测条件下,过滤效率达到 95%,这一数值不是平均值,而是最小值。N

weixin_41605688的博客 169
上一篇: [总结]虚拟主机独立IP与共享IP技术2
下一篇: 服务器将何去何从--云计算究竟会取代服务器吗?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值