优品软件培育计划【第四期】④ —— 追求高投入产出比的测试左移与测试右移(数据度量)
2020/11/28


优品软件培育计划百场前沿技术系列讲座直播的第四场为大家请到的是字节跳动网络架构质量保障负责人赵悦,他同时还承担质量保障团队的测试平台搭建和测试方案设计等工作,在业务测试、测试平台设计、测试流程管理等方面拥有丰富经验。直播结束后,不少朋友都在点赞其深厚的专业积淀和给大家带来的精彩内容,也在期待视频的回放,现在就将整场讲座的内容整理如下,供大家继续学习使用。



-正文-

我们都知道最近“测试左移”跟“测试右移”这两个概念被炒的比较火,今天我们也来探讨一下“追求高投入产出比的测试左移与测试右移”这个话题。首先我们先来思考三个问题:“凭借测试动作可以保障质量吗?”、“测试左移和测试右移指的是什么?”、“左移和右移过程中需要掌握什么概念、工具以及思想?”


今天的讲座会从【软件工程生命周期】、【测试左移】、【测试右移】、【数据度量】这四个部分去展开。


04

数据度量


前面提到了测试的投入产出比,既然叫投入产出比,那必然是一个可以衡量的、可以量化的。我们对这些东西进行量化之后,实际上是对我们的一个指导。
 
投入:
·测试阶段耗时
人工
自动化
·测试团队人力
 
首先投入的部分主要是两部分,一部分是耗时,一部分是团队的人力。


这里要解释的一点是,人工的测试和自动化的测试都属于耗时,比如说你觉得手工点得很累,想去做自动化,那你就去做自动化,如果减少了时间,那就是节省了时间。如果说你为了做自动化而浪费了时间,那也是你的耗时。测试阶段本身耗了多少时间是不在乎形式的。
 
接下来来看产出。首先产出本身是等于我们先假定测试过程没有拦截这些产品缺陷,把它漏到了线上,漏到线上之后,可能会跟已经逃逸的问题产生等效的影响。在这种情况下,就需要线上逃逸的事故和线下拦截的缺陷是对齐的,如果不对齐,就无法去衡量如果拦截的这些缺陷逃逸到线上会产生什么样的影响。


图片

这两个量化指标一致后,我们就可以看到:


图片

这个公式也可以叫做加权拦截率。需要额外解释的是,灰度期遇到的问题是一个额外的阶段,灰度期本身应该算作一个测试阶段,不应该算作一个线上阶段,也应该算你的测试拦截产出。
 
要点和误区
 
多角色对齐。所谓的对齐指的是你也认可这个数据度量标准,我也认可这个数据度量标准,不能等到最后去扯皮。
 
完全可以量化。也就是说必须精确到数字,一个比较简单的精确到数字的方法就是加权,线上的问题可以评一个优先级,线下的问题也可以评一个优先级,这个优先级对齐之后,我可以把P0的优先级的加权权重设置为10,P1可能是5,P2可能是2之类,以加权来量化。所有的东西做了量化之后,前面的投入跟产出就都可以来衡量了。
 
指导测试过程。由投入产出比去指导测试过程就比较简单了,比如说,我阶段的投入产出比比较高,也就是说我现在拦截的问题比较多,我用的时间又很少,这种情况应该怎么办呢,这就说明我现在的测试方法是对的,所以这种情况下,要加强测试团队的投入,重视测试运营。


还有一种情况是,我现在拦截的问题不多,但是我需要的时间很长,而且越来越长,那就说明你的测试的本身是无效的,没有拦截住合理的问题,还消耗了太多的时间。那就要去考虑从什么角度去改善,测试的过程是否需要左移或者右移?是否需要改进测试团队本身的质量,或者说,研发的质量本身已经很高了,我们就可以减少测试了。所以我们最终指导测试的结果就是两个,一个就是加强测试,另一个就是减少测试。
 
我现在以一个质量负责人的角度去说减少测试可能有点奇怪,但是,减少测试这件事情在我们公司也是比较常见的一种情况。比如说一个团队做得比较稳定了,那么测试的资源就可以撤出来去做别的事情,减少测试也是一个比较合理的手法。
 
误区1:发现了多少缺陷,写了多少用例,测了多少需求上线,为什么不作为数据度量?

这些都不能度量测试本身的能力,这些都是一些伪指标
 
误区2:自动化能力是提高投入产出比的核心,一定要自动化


有时候自动化是投入产出比非常低的,举个例子,比如说你的产品形态是在早期,产品经理本身并没有想得很清楚,研发的版本也只是一个初版,并不是一个再版,在这种情况下,如果业务逻辑一直变,那自动化测试的用例维护起来是非常痛苦的,需要跟着它一直变,维护成本很高。在这种情况下投入产出比就会变得很低。


再就是,如果整个的测试过程需要人工来校验,比如说,我做了一个app,它可能是有很炫酷的一个界面,或者说像游戏,它会有非常炫酷的3D界面,里面可能还会有各种动画,这种东西如果去写一个自动化的脚本去校验这些东西,是几乎不可能的。在这种情况下,人工体验是收益最高的。所以说盲目追求自动化这件事情,并不一定能够提升投入产出比的。
 
误区3:缺陷拦截率是衡量测试能力的金标准,没有拦截到问题就说明做的不行。


这句话听起来特别像有些人指责测试的。首先,测试拦截率确实是一个金标准,并不是说缺陷拦截率这个标准不对,不好,它本身是一个非常好的标准。但是有的时候需要去从整体分析,比如说,我新上线了一个版本,测试了一下,发现拦截了很多问题,但是后续的拦截率肯定会回落啊,因为很多缺陷都已经处理了。


不能说每次上线研发都写一堆bug等着测试去把它发现,所以后续的缺陷拦截率可能会降低,分析的时候就需要去分析缺陷拦截率降低究竟是由于什么原因导致的。也有可能是刚才提到的这个产品线已经做得很好了,不再需要持续投入了,QA也就可以转移了。比如说QA把缺陷拦截率从非常高的一个情况,到最后不能拦截了,逃逸出去的都是太难发现的bug,研发在整个过程中自测意识也很强,提测之后,漏掉的bug就是很少,而这种情况,测试拦截率低反而是一件好事。本质上来说,这件事情是需要多方来看的。
 

 主讲人心得 


“面对新时代的挑战,QA需要有新时代的视角与心胸”


在现在这个时代,不断有很多的东西来挑战传统质量保障的做法、认知和行业本身的技术,QA需要有一个比较高的视角去看待问题。比如我们前面提到的,QA脱离质量保障来看效能这件事情。或者我们整篇提到的,左移跟右移之后看到的,质量保障需要站在一个新的视角去提升整体的投入产出比来为团队做贡献,而不是只是强调自己的质量本身。只有不断提高自己的视角、不断的提升自己的心胸,才能不断地提升自己,来适应新时代的变化和挑战。



图片

下期介绍


下期直播将于12月8日(周二)20:00,由上海市软件评测中心高级测试工程师曹骏为大家带来《性能测试测试策略制定》,欢迎大家继续关注。