2019年,行走在测试职业边缘的我

原创: 高翔
… 序曲 …

最近一段时间有点空,看了前端大佬玉伯的成长史,看到了前端技术的发展历程、看到了前端价值的起起落落,看到了玉伯的努力奋斗、看到了玉伯的格局和毅力、看到了玉伯的成长和收获、看到了很多很多… 我抽了好几根烟…欲罢不能。

是的,自己也是加入阿里十年又半年了,难免会对标自己的各方面情况,想想自己的过去10年的点点滴滴,好好思考下自己是不是很多事情做错了,是不是很多事情没有坚持下来,是不是很多事情没有做出正确的选择,是不是自己掉进了重复的坑,怎么也不知道怎么爬起来,要不然怎么会是这样的结局,肯定是我的问题,我必须把我自己的问题拎出来晒晒太阳,让自己正视自己,同时也给其他人以警示和共鸣。

… 痛苦 …

是的,在阿里待了这么多年,怎么可能没有痛苦过呢,正常情况下,每隔2-3年都会有一个痛苦,但是我们都是会走出来的,走向一片新的天空,再次充满激情的战斗下去,直到新的痛苦的来临。但是这次我的痛苦,持续了很长时间,我一直找不到解决办法,我看不到那片我真正向往的天空,我一直在寻找,和各种测试大佬交流和思考,我还是未能找到心底的那种不一样的天空,那种我可以自豪且自信的去做的事情。

简单回顾下,我从09年加入淘宝的时候,就是对自己有一定的要求,要把自己的测试专业专研透了,成为一个真正的测试专家, 09-12年所以我把基础的测试技术(包括国内和国外)都专研的比较深,自己在测试方法、测试理论的创新上有很多的总结沉淀,很多东西都是开创性的,在业界分享都得到了非常大的认可;12-15年,无线开发和无线测试介入,包括业务端的深入,让自己在测试方法、测试理论的创新上丢失了太多,我很多东西没有坚持下来,虽然不知道坚持下来,会不会有不同的结果;13年至今,一直在带测试团队,有小有大,美其名曰测试管理经验、测试体系建设能力得到了非常大的成长,但是我的测试技术的专研几乎停滞了,很多测试技术和创新,我只了解测试平台表面和大体的技术思路,真的不知道如何去使用他,对它能提出非常多的建设性的意见和思考,这些都很少(而这些我在加入淘宝的前几年我做的比较多,因为我接触到的都是国内国外当时最前沿的测试方法和理论和创新),我自己也能明显的感受到我真的落伍了,落后太多了。

明朗一点吧,虽然我不承认我自己的定位是业务测试TL,这样让人感觉我这个人做测试管理的,对测试技术没怎么了解(更不用提开发技术的变革),更不用谈专家级别的深入思考了,能给团队每个成员带来的是什么呢,测试体系的思考,测试格局和工作上的指导,这些是不够的。

好吧,说到痛苦,大家应该想到这个吧,去年的晋升p8面试失败给我的反馈是技术深入度不高,是的,做业务测试,带团队打赢业务的同时,技术上没有突破,开发技术深入度不够,当然这个可能是我的个人理解,如果能明确的说明是测试技术的范畴,我们再可以讨论下。至于这个痛苦和思考,我在 《测试十二年-六道轮回后的初心能否找回》已经说的比较清楚了。今年的的晋升p8面试失败给我的反馈是技术视野不广,格局不高,技术深入度不高,是的,的确有几个问题没有回答好,整体评价来看,我问题更多了,成功的概率更低了,那个痛苦你很难想象,我对自己的定位、我对自己的能力、我对自己的测试热爱度、我对自己的自信、我对自己的未来发展、我对自己的前途 等等全面掉进了泥沼,怎么也没办法爬出来,怎么也没办法释怀,怎么也看不到烈日炎炎和春暖花开。

… 选择 …

之前在测试十年的时候,我说过的我的痛苦,做测试行业的痛苦,没看过的,可以移步 测试十年-我难以逾越的困惑和痛苦和思考,那个时候,是积累了2-3年后的一个总体上思考和发泄,同时也看到外面环境的变化,可以这么说,那个痛苦和思考是5分的,背景和驱动力不是特别强。但是这次,经过两次的晋升失败,经过我自己对自己的了解,经过测试大佬们对我的定位和标签,经过认识我和熟悉我的人对我的评价,我感觉我这次的痛苦和选择是我难以短时间磨平的。

我不断的想,自己年龄大了,随着阿里测试技术的智能化方向、包括对人员的要求的变化,我是不是没办法发挥自己的能力,是不是必须进入到自己的恐慌区,跳出自己的舒适区。我是个天秤座的,特别怕做选择,特别犹豫,特别喜欢分析利弊得失;知道自己必须要改变了,之前文章就说过了,我们只有三个选择,改变业务、改变测试、改变工作;每一种选择都有自己的利弊得失,我思考了很多,发现我越想越乱了,越想越不知道如何做选择,没办法做抉择了,很多时候感觉自己行尸走肉一样,完全没有那种激情去学习、去思考、去总结、去布局自己感兴趣的,自己需要的东西。

由于形势的严峻性,相比较之前的选择思考,这次我更多的了解了PMO、敏捷教练、解决方案架构师,这几个职业的具体事情、未来前景等,当然了,了解的肯定是比较片面的,只能说有了一点点的体感,不算什么特别有惊喜,对它的价值和未来是有一定的心里预期的。PMO和敏捷教练方面,总体上来说是比较小众的,有时候比测试的存在感还低,价值的体感和技术体现更难讲清楚的,但是很多人可能在这方面做得很好,思考总结抽象能力比做测试来说可能要求更高;现在2B行业的蓬勃发展,不计较是阿里云的高速发展,2B的市场和需求越来越多了,要求也越来越高了,个人看法,中国在整个互联网的冲击下,大家在2C上的质量和体验都做的非常好,但是在2B上,我感觉我们是落后的比较多的(部分大牌企业除外,比如华为等),大家对2B的整体重视度不够,对于2B的稳定性和产品体验都关注的不够,从最近几年相关的开发技术和测试技术的成长和发展、分享和结果就能看得出。为什么呢,2B的行业属性要求特别高,对行业和解决方案的整体了解,才能做得好,我感觉解决方案架构师是未来2B企业最核心的关键力量,这块的成长和发展 从大盘来看,还是有比较多的机会的;当然了,做2B的业务,有2B业务的痛苦,尤其是需要面对那么多传统行业和传统企业,我们很多时候很难沉淀一下技术含量比较强的东西,而是规范和标准和落地实施,很多时候无法去从无到有的创造。

… 抉择 …

好了,那我是不是要放弃了积累十几年的测试技术和测试经验,我为什么一定要放弃呢?自从我06年毕业从事测试工程师以来,我一直认为自己是适合干测试的,我喜欢这个测试行业的一些发展,对于测试人员的各种不能能力的思考和要求,特别是在我接触到探索式测试之后,我对于测试人员的在做测试的时候的思考和心里活动、测试思维、如何揣摩开发的设计和实现、如何更快发现bug、如何借力发现更多bug上等有了更多的了解,我感觉我沉浸在其中非常爽,这就是我想要的测试工作。

是的,测试工作不仅限于此,还有很多高精尖的测试技术来支撑更好更快更狠的测试,这些测试技术需要很多智能化技术的基础和积累,虽然你不一定要创造这些智能化技术,但是你必须很清楚的了解他们,知道他有哪些核心能力,哪些可以利用到你的智能化测试方案里面;如果你不知道他们,你的想象力不一定会下降很多,但是你的实现方案会想不清楚,会越来越不敢去设想那些不可能,不敢去挑战哪些比较复杂的方案,对于未来更牛逼的智能化技术方案,肯定是基于机器学习、大数据算法等智能化技术去解决人在测试过程中的思考和分析能力,虽然很难,但是路肯定是这个方向。那么在这么一个明显的大路上,我该怎么走呢,我也有一些选择:

如果我还想继续在测试领域深耕的话,要想留下自己做的一些事情的话,我必须提前去布局这个方向,我必须好好了解这些智能化技术,同时还必须持续不断的了解开发技术的发展和更新,包括区块链、云化、分布式、微服务、容器化、hotpatch、React、前后端分离、小程序等等。可想而知,我对这些技术的掌握速度肯定是不高的,不管从体力和脑力的角度上来看,能跟上就很勉强了,也应该是没办法走到前面的;但是很难走到前面,我就放弃而不去走了吗,这是不是给自己的懒惰找理由呢,很多时候我都无法避免面对这些问题,因为这个是测试领域里面未来测试技术发展的大势所趋,你很难选择另外一条路去走,每次面对一次,我都要怀疑下自己一次。

为什么说这是大势所趋呢,因为当智能化技术把测试设计方法、测试结果分析和用例推荐的探索思维给解决的很好的时候,测试工程师的经验就不再是令人牛逼的地方了,这绝对是降维打击,虽然很难(测试环境、测试数据、业务复杂度、业务变动程度等等都是极大的干扰因素),但是这条路肯定是大道,你不得不在这条路上向前狂奔,争取自己的那一块试验田。那么在现阶段,我是不是也要开始慢慢走上这条大道呢,测试方法层面是不是就很难去创新和重组了,是的,目前来说,不管从氛围、方向、目标、体感、业绩、技术、认可等各个角度来看,几乎不可能的了,你难道非要走 众人独醉我独醒 这条偏僻小道?也不是完全不可以走的,总有那么一小拨人,云梦缭绕,那是极少数的,而且前途未卜。

在测试十年的时候,我就承认了我的痛苦(见识过太多从测试坑跳出到开发、业务领域的,前途更加宽广,迷惘会更少),很难继续走在测试领域里面,不超过5年,我本人对技术咨询、解决方案是有一定的兴趣的,但是可能也停留在表面理解上,毕竟怎么大的人了,不能随便做决定,要想清楚,很多人都说不能那么容易放弃自己十几年的积累,不能放弃自己的优势点,应该加强和发挥自己的优势,而不是不断的补自己的短板,这个平衡其实还是蛮难做到的,就看我们自己到底要什么了,公司希望你做什么了,你自己又能改变多少了。

… 梦想 …

做测试这么多年了,每年都要做总结和规划,对测试我也有一个梦想,但是这个梦想包含几个层次。

第一层,百花齐放、百家争鸣。相信了解互联网测试的发展史都应该清楚,互联网公司的测试技术的发展非常迅速,不仅仅是受到开发技术的发展的影响,互联网测试工程师们的全情投入也有巨大的关系,一方面测试人员的开发能力的提升(同时招聘了很多具有开发能力的测试人员入职),可以使得那些有想法的测试人员能快速的做测试工具去提效,进而发展成测试平台。每个测试平台从出生开始都有自己的使命和要解决的问题,到发展阶段和维护阶段,很多事情和初心都有可能变了,有些是主动变的,有些是被动变的,不管怎么说,这个状态是极好的,对于业务测试来说,利大于弊;在阿里,几千人的测试工程师的规模,几百个测试平台的规模,很多人成长了,能力提升了,但是对于测试这个行业来说,到底有什么价值,大家有没有真正的思考过,你的产出和思考到底有多少传承价值,你的技术的结果有多少革命性的创造。是的,我们肯定是解决了很多技术难点,利用开发技术解决测试技术的问题,本身就是一个很好的思路,但是我们是不是有可能本末倒置呢。我梦想中的百花齐放百家争鸣不是大家画地为牢,不是大家坐井观天,不是大家KPI推动、不是大家证明自己技术能力、不是低级重复建设;我梦想中的百花齐放百家争鸣是真正用心的交流和切磋,是互相有明确的重心和准则的共享的,是体系化合到在一起的勇气和信念。当然了,这个话题比较大,不适合在这里面说太多,抽时间独立一个文章来说说看。

第二层,分久必合、合久必分。某位大佬曾经说过非常在理的话,那就是如果我们要创新,那就分,如果我们要效率,那就合。这也是非常现实的衡量准则,也是目前我们能够说服大家的思考路径。最近,测试中台的话题比较流行,得益于业务中台和数据中台的发展和利好,为什么说测试中台的话题比较流行呢,因为大家都看见了,都看见了目前的现状,也看见了不远的将来。大家都觉得测试中台是分久必合后的重要产物,也是从长远来看,我们那么多测试平台和测试想法都必须要重构的未来情景,前段时间做了简单的不完整的测试平台分析调研,相似的测试平台,在每种关键能力上起码有3-7个都在做,具体细节不方便透露太多,有一些是场景存在的必要性,但是在底层能力上、测试能力共性上、测试方法创新上、测试难点解决上,我们的确可以合力更多,只有合道了,我们的未来才坚不可摧,我们的测试创新才会更加丰富。当然了,这个难度也是相当大的,有那么几个大的方面的不怎么好解决的,有屁股、有意识、有利益、有测试领域架构、有测试能力抽象,有系统架构抽象、有组织结构抽象等,但只要有决心,我们还是能一步步来实现的,一个个去解决的,前提是只要我们有共同的目标共识。测试中台化的设计,最近也有一些不成熟的思考,回头抽时间独立一个文章来说说看。

第三层,完美测试、测试完美。不管未来智能化怎么发展,测试带来的价值和本质的定位我们不能忘记,也就是说我们不能忘记我们的初心,那就是怎么把测试工作做得更快、更准、更狠。这里面的完美测试也是有几个维度的,第一阶段,半自动化的优势能充分发挥,不管是新项目,还是老项目,不管是采用什么研发模型,测试活动的核心工作半自动化程度较高,测试设计覆盖率50%以上通过自动化生成,测试环境和测试数据50%以上通过自动化准备(不仅仅是单点测试数据,而是全链路测试数据),bug的发现有50%以上是通过自动化执行去发现的;三个都是做到(这里我不提定位bug和解决bug的指标,说真的,这个还不是测试领域最需要关注的),真的是非常难,当然某些传统成熟的行业除外,如果互联网行业能做到,那就是非常牛逼了,个人判断,这个起码要5-10年时间,在这个阶段,测试工程师的测试思维经验还是有非常大的价值的。第二阶段,刚刚提到的三个核心点能从50%能提升到80%,这个阶段的核心挑战是机器学习和算法的应用深度以及他们在工程领域的应用效果了,部分行业可能达到的更快,但是要从整个测试行业角度来看,起码要有15-20年,到了这个阶段,测试工程师的经验价值就可能比较难了,所以测试工程师数量也是大幅度减少的,预计接近30:1的开发测试比例,但是测试架构师的经验价值(核心发挥的不是开发技术能力、算法技术能力,而是测试领域和业务领域结合后的建模能力、架构设计能力、质量保障能力,而且那个时候很有可能不叫’测试架构师’了)会放大,而且人数会非常少,非常集中化。第三阶段,从80%提升到90+%,这个难度可想而知了,高度智能化的手段了,而且这块和开发技术也有关联关系,如果真是做到了这个程度,那么产品的代码的编写很有可能也是智能化编写出来的,很大一部分的框架代码自动实现了部分功能,同样的这块代码的测试和质量保障也可以做得智能化程度,人工干预程度较低,到了这个时候,测试工程师还有自己的用武之地了吗?这个还真不好说的,了解探索式测试体系的同学应该比较清楚,如何做好测试,如何做好探索式测试就应该清楚,批判性思维和探索性思维的重要性了,如果机器在这个软技能层面还留有余地,那么测试能力强的测试工程师还有那么一点点用处,但是这个要求和现在可能完全不一样了,对于测试技术和开发技术的要求程度也完全不一样了,我们到底应该选择什么样的方向和突破,感觉有点远,我就不乱说了,因为我大概率肯定不在测试领域里面了,问题由真正的面对者来解决。

… 蛰伏…

前面话题说的比较开,回到自己,看看自己的本心,在目前这个阶段,自己最应该做什么,最应该去准备什么,去布局什么,去解决什么问题,有没有毅力坚持下去。很多时候,不仅仅考虑的是自己,我有一个坏毛病,就是喜欢把事情想的太复杂,各种权衡利弊,我需要傍边有个人帮我,推我一把,驱动我痛快的做决定,我感觉这也是一种潜意识的不自信的表现。

鉴于可能存在的一些变化,一些不确定的因素,我目前需要静下心来,坚持做两件事情,一个就是把之前一直想要看的书看完,把之前要关注的某些技术了解更加深入一点,不能老是在拖延了;第二个就是持续不断的维护我心中的那个测试,包括测试团队组织策略和管理、测试或质量体系大图、测试中台化的内容(其中有部分内容已经有3年没有更新了,有一些也是零零散散的更新维护,但是不系统),这些内容需要不断的迭代更新,每个三个月就要更新一次,当然了,更新的基础,我也是必须要去获取更多有用有价值的信息并且经过自己思考和消化的内容。

很多时候,我们很难跳出来去面对那些需要长期投入、长期成长的事情。对于每个有激情的人来说,都愿意做新的、有奔头的业务,然后业务的确一直在发展,各角色团队规模都在扩大,从0-1大家都有干劲,个人成长速度和业务发展速度成正比的,个人不需要有太多想法的;但是业务总有遇到1-N的时候了,这个时候业务变动和组织变化就非常频繁了,这个时候很多人都会很难受,很迷惘,这是目前很常见的一个困局。另外一个困局呢,我们有越来越多的1-N的老业务,同时也会有0-1的新业务,这些新业务对质量和测试都有不同的诉求,但是随着开发测试比例的提升,我们测试人员一个人cover3-4个业务是很正常的,大部分人都在奔波在业务测试和业务回归上,这个时候提效的工具和体系在老业务上会有50%左右的提升,但是新业务上我们很多时候还是很难做到高效测试,尤其是在阿里这么多前台小业务不断发展变化的大环境下,这块议题应该有很多人进来看的,但是目前来看效果不是很好,主要和业务的不确定性有比较大的关系,另外一个层面就是如何降低测试的成本,同时提升开发自测的意识和效能也是没有特别好的办法,我个人还是比较推崇TDD的,但是感觉整体流程不太适合互联网那么多的小的多变的前台业务,虽然不能完全照搬,但是开发人员的可测试性和异常逻辑处理意识我觉得是可以多加强的,剩下的就是端上的体验了,更不需要专业测试的专业眼光了。

在不同的环境下,对自己的要求肯定会有变化,自己计划好的,心无旁贷的去沉淀的,可能和组织对你的要求不一样的,我如果不能在这个大浪潮里面起到一定的作用和价值,我感觉对不起自己干了这么多年的测试工作和思考。这是一个严重的问题,结合了不同的业务属性,带领不同的团队重新去建立业务质量体系和拿到业务结果,但是我从中抽象的东西,骨子里的东西到底有多少,有哪些可以在未来测试的道路上起到核心的作用,能够让更多人记得我的贡献。说起来,我必须要蛰伏,但是我自己也是没有多少信心的,这个对于内心的坚定和内驱力要求太高了,尤其是在我现在这个尴尬位置上,我很怕我会随波逐流,虽然不一定是错误的,但是总觉得对比自己的未来想要的,还是差一点那个意思的。

… 强撑…

在测试行业打拼了十几年了,我必须要正确的认识自己,敏锐的感知到组织的需要、行业的需要、团队的需要、未来的需要等,感知到差距和差异,对自己的状态给出一个评估和目标规划,这个应该是我每年需要坚持做的,但是我的确好几年没有认真的这样做了,我对自己的“以合之道、出奇制胜”没有正确的评估和推动。

再次回到玉伯大佬提到的核心关键词《全情投入、守正出奇、愿等花开》,对比我回顾这几年,我自己有没有全情投入在测试领域里面,同时我自己在测试领域里面长期守的《正》变成什么样了呢,每年根据业务质量体系和上下文出的《奇》又有哪些长期效果的呢。我细细的评估下来的确有点尴尬,对于测试领域的思考很多停留在思考层面(探索式测试四象限、六道网测试体系、测试中台思考),具体在业务质量体系里面探索落地的并不多,何况这几年思考也很少,深入度也非常少,自己是没有做到全情投入的,没有在这几个层面上做更深入的思考和探索,虽然过程中受业务变化、组织变化、个人成长变化、个人绩效变化等等的干扰下,但是我自己个人从内心出发,自己内心深处最想要的东西还是不够强烈,或者我自己最近几年的自律不够,否则也不会断层这么严重,导致目前几乎没有能拿得出手的。

之前我也说到了,作为一线业务测试工程师,一线业务测试TL,要面对最大的矛盾就是业务需求对质量诉求的工作量远远大于测试工程师现有人力能提供的工作量。不管这几年我们在自动化上、智能化上有多少进步,但是我看到的这个矛盾还是没有很明显的改善(这个也许和业务特性、开发测试团队磨合度等有些不一样)。总体上,我们有很多的管理手段和技术手段(不同的比例可能带来不一样的结果)去解决和缓和这个矛盾,但是在这个不确定性的业务、不确定性的组织下,我们会填完一个坑,跳进另外一个坑,然后自循环的解决,最后还是不断的解决这个矛盾过程中。很多时候,我真的很烦,每年都在解决和缓和这个矛盾,我没办法静下心来去思考和测试初心和本心要解决的问题,真的不想在测试领域里面做了,因为在国内这样的环境下,10-20年内这个矛盾就会一直存在,你唯一能做的就是找解决和缓和这个矛盾的方法,这个是很让人伤感的,很让人迷惘的,很多时候我都感觉自己没办法坚持下去了。当然了,还有一个比较大的矛盾就是测试工程师对于业务的重要性和价值的体现相对于开发和PD来说比较小。这个其实也有一些解法,测试工程师积极主动的去贡献价值,包括业务熟悉度、业务敏感度、测试驱动业务提效和创新、质量和产品强绑定。前面两个方式其实在目前来说,因为开发测试比和测试工作职责的调整,测试对于业务的熟悉度相比5年前下降非常多了,第三种方式呢,要看运气,业务特性和发展阶段到底怎么样的,测试工程师能不能抓住机会,这个真的比较难的,可以看看我 测试十二年-六道轮回后的初心能否找回 的一部分内容,最后一个方式呢,就是我们任何事情,都要贴着业务角度去思考,很多小的,琐碎的事情都需要做,很多业务相关的讨论会你都要去参加,当然了,久而久之,业务对测试质量的价值体感会越来越好的,但是这块在技术成长上就没有了,换个业务也就没有了。

上面两个矛盾,也是我最近5年来一直解决和缓和的,很多时候真的要打败我了,驱动我离开测试领域了,但是我为什么还死皮赖脸的还在呢,我到底是靠什么强撑着坚持下来的呢。我有两个比较大的原因,由于一些难得的机会,我自己了解到国内测试行业的测试同仁们在思考什么,在困惑什么,在难受什么,我是真的想给他们一些建议,从我一个过来人的角度给出更好的方向性的指导,我希望我能帮助他们,看到他们成长了,看到更大的世界了,我内心是满足的;另外一个就是测试初心我还在探索过程中,没有找到一个非常完善的集测试方法、测试中台、测试理论、测试流程、测试组织的质量保障方案或者大图,能够比较大的缓和我上面提到的最主要矛盾。我不甘心就这样放弃之前的思考和积累,我觉得我自己没有全情投入,还有很多地方都需要进一步挖掘,就算最后找不到,我也要找到足够的理由来说服自己放弃它。

… 完结…

以上所有分享,都是我个人的心路历程,思考逻辑,很多思考的不全面,甚至有点钻牛角尖;但是我相信有很多人和我一样思考和困惑,只是他们有些找到了解决办法,有些没有分享出来。不管怎么样,多年后,我再来回顾下自己的思考,也有一些给自己带来不同的启发的,这个是记录自己的测试生涯的,毕竟是自己的第一份工作,同时也希望自己能够坚持下去,真正的做到 人心独坐向光明,出言便作狮子鸣。

再说一次,由于这篇文章是断断续续的写,跨度1周多,所以比较啰嗦,很抱歉。希望能对你有所帮助,任何想法疑问,欢迎提问交流。

最后bs我自己一下,有一篇文章,测试策略之“战斗机”还是“轰炸机”,是关于测新和测旧的,也是非常大的矛盾,也是没有很好的解决办法的,这个文章,写了一半,停了…

转载自:https://mp.weixin.qq.com/s/bcMnjLw2Bu6oONNl1vcncw

你可能感兴趣的:(测试技术)