软件测试第三代之思

最近一直在思考关于测试未来的问题。三年的抗疫结束了,就业市场会恢复到什么程度暂未可知,因为经济恢复不等于市场恢复。投资的谨慎让大伙意识到两点:首先是互联网已经过于拥挤,好的赛道上不是有大鳄就是有独角兽;其次是大手笔烧钱,先抢用户再打磨产品的套路基本行不通了。

这些也都在预期之内,原始粗放的发展方式终归会有走到头的时候,接下来要拼的就是服务价值,产品能力更有优势的一方,才有机会蚕食他人的市场份额。所以在后面的“存量战争”中,产品角色会比开发、测试角色更受青睐,这是必然。由此看来,测试的市场环境恐怕会继续“冷”下去。

软件测试第三代之思

当然,并不是所有测试同行都在坐以待毙,总会有一些具备前瞻意识的团队、个人在寻求新的突破点。作者所在的企业也一样,每年都有新的测试方法论被提出,因为测试职业的发展史本身就是冲云破雾。我们不妨先一起回顾下过往,再从历史规律中找到测试的未来。

首先软件工程脱胎于工业工程,因此最早的很多概念、流程都是搬自于工业领域,包括测试也一样。早期的“测试”只能算是一道工序,从这两个字也可以看出来,它是一个“环节”,而不是一个“领域”这里面的问题是,测试对产品质量的把控能力很低,只能被动接受一个成品,用制定好的标准去检验产品是否过关,对产品质量的影响力几乎为零,这是对测试的第一代定义。

在这个过程中,测试先驱者们感觉到这不是一件好事。因为“检测”行为本身并不具备多少技术含量,以致测试岗位的价值也很低。于是有人开始尝试是否能够去影响产品质量,便有了“测试左移、右移”等一系列方法论。这是非常重要的进步,但是这个时期的测试还不能算作第二代,至多是一半代。为什么?因为它只是将测试动作做了提前(和延长),并没有解决产品质量的根源问题:“质量设计”。

再后来,在左移、右移遇到一系列“挫折”之后,又有人开始思考一件事:我们能不能不跟在质量问题后面打游击,而是直捣敌人的老巢,从根源上去解决质量。于是诸如故障防治、高可用设计等新的方法论被提出,从此测试正式宣告走上体系化的道路。我们可以认为这是测试的第二代定义,严谨一点说,这个阶段的“测试”应该叫“质量”,事实上很多团队也开始改称“质量团队”。

这一切看起来已经很好,然而我们可不能就此失去危机感。对于测试而言,有一个致命问题到现在都没有被解决,那就是:测试依然被认为是一个成本部门,产出价值难以被衡量。现实也很明确地证实这一点:初创团队需要招聘产品、研发,但很少招聘测试;碰到裁员时,测试也是优先考虑的对象。因此我相信如果测试有第三代定义,它解决的一定是成本和价值关系的问题。

这几年的大环境让我无意中看到第三代测试的机会点。前面提到了,往后大多是“存量战争”,打的是产品能力。少数产品能力是有很高的壁垒的,比如云计算、网络存储,一般小公司玩不起;大多数产品能力抄起来很容易,今天 A 搞个新功能,明天 B 就能抄出来,唯一可以做差异化的地方,就在产品的深度体验上。而产品体验,就是测试最好的机会点。

为什么说这是好机会?因为测试本身是天然具备体验属性的。我们在做质量的时候,通常站在三方视角上,因而能够识别到很多的体验点。我相信很多同行在工作中,一定有过这方面的经历,只是我们在传统习惯上认为这是产品角色的领域,没有进一步去深挖。我也同样相信,测试由于对产品的细节思考更加全面,多数情况下,测试角色其实比产品角色更加熟悉产品。由此可见,测试想要渗透到体验层面,是很轻松自然的事情。

也许会有读者认为体验是产品角色的职责,测试角色没有必要去越界。但同理思考,我们在做测试左移、右移的时候,难道不是在进入开发、运维的领域?分工不会是一成不变的事情,关键是看如何分工更合理。我们千万不要被现有的角色身份所束缚,否则的话,测试开发、运维开发这些名词又是哪里来的呢?从近期的行业发展来看,角色的相互融合本就不可避免,我们更早接受变化,就更能掌握主动权。

综上讨论,这里我给出我对第三代测试的定义:品质。质量和品质的区别在于:质量是定量分析,体现的是对固有特性的满足度;品质是定性分析,体现的是对主观感受的满足度。用软件工程的话来讲,质量就是需求文档实现的好不好,品质是用户体验满足的好不好。从第一代测试,到第二代质量,再到第三代品质,每一代的价值体现都在往外延伸,测试终将完成由成本部门到产出部门的蜕变。

对于第三代测试的思考,我也并不是单纯的空想。首先作者所在的企业,其实已经有这方面的实践,并取得了一定的成果,因此不论是可行性还是价值点,都是确定的;其次我们可以看到的是,近来各大企业都在转变观念,强调的不再是规模而是价值。因而不论从哪个方面看,品质都必将是未来产品的重心,就看我们能不能抓得住机遇。

源自公众号  测试开发修炼之道



留言