再来谈谈这7年的一些不足之处——前事不忘后事之师嘛。谈不上后悔,也没啥好后悔的,我总认为,有些过程,有些门道,自己踏实走过,摸过了,总不会白费,只是早晚。
之前也说过,这7年自己最多也就可以得6.5分。可以说,总体上也就是对这几年的最终结果不是很满意。这主要也体现在以下几点:
木桶原理的误解
木桶原理字面意思是说,决定木桶装多少水是木桶最短的那块板。于是,很多人对木桶原理的理解是:并不是你的优势决定了你的成就,而是你的短板决定了你的成就。
所以我们都开始疯狂的去补自己的各项短板,丰富自己的技能点,也包括我自己。学完Python,学各种测试框架,又开始Shell、Java、接着是性能测试、持续集成Jenkins、Vue、Docker、K8s、各种中间件的使用和原理。现实是,我们刚好处在一个技术迭代十分迅速的时期,各种新技术新概念层出不穷,刚明白CI、CD,又提出Devops、DDD。刚知道了什么是全链路压力测试,又出现混沌测试。于是,我们感叹“卷”不动了,学不动了。回过头看我们的成长轨迹,一直在不停的学习,追求技术的进步,好像什么都懂,却最后什么都不精。
这就是我们都误解了木桶原理的本质。实际上木桶原理真正揭示的问题是:你的成功取决于你能否突破关键限制因素。“关键限制因素”是指限制你进一步向前完成目标的关键因素。如果这些因素不解除,那么在其他方面的任何努力都是徒劳无功。说无功可能过于严重,但是至少取得效果不怎么显著。
上面的技术学习路线,大体就是我个人发展真实的血淋淋的“教训”。我总感叹自己技术能力不足,还不能放松,还得抓紧时间,缺乏完整性,总以为学完这一项,然后再攻克另一项,却发现技术层出不穷,而个人放入精力是有限的,加上有一些技术在工作中用不到,时间久了还容易忘记了,这反而也给自己造成不好的心理影响。
曾经请教一个Oracle十年的测试专家一些测试发展问题,他是这样说的:
你看自动化搞了这么多年,有几个公司真把RF用明白了,用好了?前端的东西,这么多年还不是绕不开Appium、Selenium。这几年框架层出不穷,编程语言也有新发展,我们要明白的是框架解决的是什么场景下的问题,每一门编程语言他的语言特性是什么?技术的积累本身没有坏处,但工具框架都是辅助,我们很多时候要静下心去了解一些更基础的东西,比如计算机网络、操作系统、软件工程、架构设计。
大佬就是大佬,说出来的内容,我有点跟不上节奏。我自己的理解就是,我们不能一味的追求了解这,了解那,凡是自己不清楚的都过于追逐,这也就是我开头说的,不停补短板,与其各个工具、框架都了解一点,不如把一个工具一个框架用好,用到极致。
反观我们周围有的公司,很多人就是靠专注地把一件事做好而取得的成功。有人专注业务测试,成为了TSE,有人专注性能测试,成为了性能测试专家。但是他们在其它方面,比如代码能力、自动化能力却基本没有。这一些人反而在公司在市场很受欢迎。也有一些测试开发人员,一直专注一门编程语言,达到开发水准,也成为了自动化测试专家,职级和收入都高出大部分人很多。
之前听别人提到T型人才,用在我们测试的职业规划上,我觉得很合适。“—”表示有广博的知识面,“|”表示知识的深度。两者的结合,就是传说中的一专多能。这种人才结构不仅在横向上具备比较广泛的一般性知识修养,而且在纵向的专业知识上具有较深的理解能力和独到见解,较强的创新能力。其实我觉得这个也比较适合我们大多数公司用人要求。首先,我们将自己的某一项技能练习到极致,到精通,然后再横向扩展自己的边界,而不是胡子眉毛一起抓,什么都想学,什么都掌握,追求所谓的木桶的“短板”。于公司,我们经常说要有拳头产品,于个人,我们要提拳头技能,核心竞争力,一个在团队明显的优势点。只有这样,我想,我们应该可以有一个好的发展和定位。
技术与业务如何选?
大概是在2018年的时候,跟OPPO的一位测试交流,当时我两有一个共识就是——业务是公司的,通用的技术是自己的。离开了公司,业务知识就没啥用了,因为下一份工作不一定从事与之相关的行业,尤其是对于测试更是如此。所以后来的工作中,我更偏向于技术型的,所以基本都是从事专职自动化测试和测试开发的工作。主要做一些技术攻坚和技术推广偏多一些,业务测试也就参与的比较少了。诚然在那几年,我的技术功底和技术能力以及推动总结能力得到了很大的提升,但是现在突然也明显感觉到了自身的局限性。
在我转行进入测试这个行业,涉及到的行业有:人工智能、互联网金融、网络安全。可以说这些行业基本没有任何关系,也正是如此,业务缺乏也成了我的一个不足。我周围有的同事,一直从事金融相关的或者电商的测试工作,找工作也往这方面靠,长期下来在某一个领域积累了丰富的经验,如果有一些技术的加持,就很容易出一些成果。相反倒是我,因为缺乏行业的背书,很多东西都很难展开,缺乏对业务的了解,所以也不善于发现业务中的痛点,在工程效能方面也很迟钝。
所以,现在有人跟我咨询一些经验,我最希望说的就是,先选择好一个行业(业务),然后基于这个业务深入下去,然后在此过程中扩展自己的技术栈。总的来说一句话——技术因业务方显价值。我们只有熟悉某一个业务,才能将自己掌握的技术更好的落地,更好的产生技术该有的价值。当然,我这里不是说业务比技术更重要。
谈谈对测试行业的看法
最后,我想结合自己浅薄的体会,再谈一点对测试行业看法。
1、近几年整个IT行业的技术有了较大的发展,各种新概念、新框架层出不穷,对测试的要求也越来越高了。就在前几天一个测试交流群看到的JD,我不禁感叹——感觉要找不到工作了。要求不可谓之不高,测试开发要懂移动端开发,自动化、性能测试、容器和K8s、云产品测试都要懂。我当然也知道这是Copy的一个JD,但也确实,近些年对测试的要求已经不是前几年懂流程,会测试设计、懂点数据库就能找份工作的时候了(当然我说的是一些较为优质的job)。编程语言和自动化已成为测试人员的必备技能,所以这里还是提醒在这个行业的同行,技术不能丢,尤其是编码能力。千万不要觉得我只要精通业务了,就什么都不担心了。市场需要点工,但只会点点点找不到点工的工作,市场会证明一切。代码能力将成为互联网入行的基础,具备了基础能力再去选择互联网行业方向。
2、行情不好,技术一直在变革,经常听到和看到各种小道消息,公司裁员,首当其冲就是测试,大公司都在去QA化,去测试化,测试的门槛也越来越高,现在越来越卷等等。其中不乏有的是在贩卖焦虑,然后好让大家付费,但不可否认,这也不是空穴来风。不过,我个人倒认为这是个好事,门槛高了,要求高了,才能体现这个行业、这个岗位存在的意义和价值,潮水退去之后才能知道谁在裸泳。现在已经不再是随便个什么专业报个培训班学两个月就能进入的时代了,市场已经变得更加理性。这对于我们这些从业者来说是值得庆幸的。说测试门槛高,开发门槛就低吗?所以,我们还是要坚定对找个职业的信念,想想自己当初为什么选择这个行业?仅仅是为了一份工作吗?如果是这种我想被淘汰也是迟早的事情。
3、我很少去关注外界的杂音,当初就是因为看到圈内几个所谓的测试前辈在贩卖焦虑,所以才想着写自己的公众号,给测试后来人一些指引。这里也希望测试同行,既选之则安之。既然决定干这一行,就不用再患得患失,踏实,坚定的去做,撸起袖子加油干,就对了。
最后,用一句我最喜欢的语录结尾,共勉:
你现在的生活,也许不是你想要的,但绝对是你自找的。