作者:熊节 《重构》译者
乔梁老师又发了一篇文章,叫《微软:测试右移,TIP》。TIP就是Test In Production的缩写,是指在生产环境上做测试的一种质量保障实践。所以这里说的“测试右移”,就是指测试人员搞生产环境。
陶文:赞,测试右移,好词
乔梁:这词还不是我提的呢……我书上写的是测试扁平化趋势~
乔梁:没有左移和右移更好记
群聊
那测试左移又是怎么个事呢?说白了,就是测试人员去搞需求。比如这篇《敏捷测试左移-需求实例化实践》说的就是“测试角色……参与需求的实例化过程”。虽然他讲的“需求实例化”和“实例化需求”(Specification by Example)不是一回事,但那个不重要,总之测试左移就是测试人员搞需求就对了。
于是这就有了一个很有趣的问题:为啥大家都在帮测试想法子,琢磨测试该往哪儿移?
原因很简单。因为自动化回归测试这个事,不管一开始再怎么抗拒,再怎么费劲,一旦有了以后,它总是比人肉回归测试要靠谱的。自动化回归测试取代人肉回归测试这个进程,各个团队快慢不同,但必定是一个不可逆转的进程。
说得再直白一点,人肉回归测试员的下岗是一个不可逆转的进程。
所以为什么有这么多文章一会儿左移一会儿右移,为什么有那么多大佛爷一会儿测试中台一会儿AI测试一会儿TestOps,搞出这么多花样来,无非就是想解决个下岗职工再就业安置的问题嘛。
可是啊,现在想起来出主意挺好,起初是谁造成了这些人肉回归测试员如今的状况呢?一开始岗位设置就只让人抓着鼠标无脑点点点,天天加班996,既不给人学习充电的时间,也不给人接触业务的机会。现在人肉回归测试的工作量可以自动化了,就跟人说你可以搞生产环境你可以搞需求你还可以写代码?我前几年有次校招宣讲,有个大四的小姑娘跟我说她老师告诉她女生不适合搞技术,所以她想应聘测试岗位。这个行业从上学时就给人灌输测试岗位不需要懂技术只需要无脑点点点的观念,然后过几年就跟人讲你可以搞生产环境你可以搞需求你还可以写代码?
就心若在梦就在只不过是从头再来呗?
我一向都说,现代商业软件开发是一个沟通翻译的社会工作,这里需要翻译的首先不是编程语言(和英语),而是这世上绝大部分人不会用逻辑严密的方式描述问题,需要有人来把他们那些零散的、模糊的、缺斤少两的、自相矛盾的想法,用一个严谨的、能被图灵机执行的模型给描述出来。只有这个建模的行为,是软件生产过程的本质复杂度(essential complexity),其他行为都是偶发复杂度(accidental complexity),顶多是给这个建模行为提供支持和帮助,很多时候索性就是在给建模行为添乱。随着软件开发技术的不断进步,处理偶发复杂度的行为都有可能被自动化、被机器取代;只有处理本质复杂度的建模行为,无法被机器取代。
那么看看软件开发的过程,谁在参与这个建模过程?一般来说,两个人。第一个是搞需求的,他听完客户的一句话需求,通过一系列的分析和确认,把客户的需求变成了一个明确的、完整的、无二义的、可被图灵机执行的模型。所以你看,需求分析的目标从来都不是把需求“搞清楚”。客户的需求很清楚:我就是要把货卖给客户把钱收回来,这没有什么不清楚的。需求分析的目标是建立一个明确完整无二义可被图灵机执行的模型。这才是需求分析这项工作的验收标准。
另一个参与建模过程的当然就是写代码的。他拿着这个明确完整无二义可被图灵机执行的模型,用代码把它描述出来,交给机器去执行,验证执行的结果和期望是一样的。 也就是说,编程的目标是建立与需求描述的模型一致的代码模型。所以写一堆代码不管对错丢给别人去测试这种行为,是编程的工作没有做完。
人肉回归测试员的位置在哪儿呢?不好意思,没有。
这就是现实。人肉回归测试员的存在,仅仅是因为有很多程序员没有做好自己的本职工作,在人力资源便宜的时代,硬拉人来擦屁股,这样一种逆时代潮流的职业。时代潮流的方向,一定是人力资源越来越贵,一定是自动化程度越来越高,所以人肉回归测试员的命运一定是被淘汰。
当然了,不管左移右移前移后移上移下移讲得再怎么漂亮,不是所有人肉回归测试员都能去搞需求的,第一是能力不到,第二就算能力到了也并没有那么多搞需求的岗位空着。同理也不是所有人肉回归测试员都能去搞运维的,也不是所有人肉回归测试员都能去搞开发的,当大佛爷搞测试中台那也是有门槛的。
大多数人肉回归测试员会下岗。就这么回事。
所以啊,要是你恰好是个人肉回归测试员啊,要是有人跟你说什么努力工作努力提升技能你就能左移右移前移后移上移下移这种鬼话,你千万别信——该努力还得努力,但是能不能移,已经不是你自己能决定的了。要做自己的主,从一开始就别去干人肉回归测试员这种逆时代潮流的工作。看见还在大规模搞人肉回归测试的公司,能跑就早点跑吧,也别信这些公司什么转型的鬼话,因为你就是那个转型的目标,你就是那个减员增效的对象。公司转型不成大家一起失业,转成了,你失业。