开始之前说点题外话。AI 卷起了一股新的浪潮,叠加经济环境的因素,测试确实是越来越难了。智能化已经成为各厂降本增效的重要手段,测试智能化技术也在紧密发展。可以预见的是,不久之后质量保障的形态又将会有新的变化。
之前有人问,为什么测试要去“越位”做更多的事情,这不是在“卷”吗?是的,我们同样可以认为测试左移和右移也是越位,左边卷开发,右边卷运维,那不妨也去抵制它们。时代的车轮滚滚而过,不因你我的喜欢或厌恶而有片刻停留,未来何去何从,各自选择,各自安好。
回到正题,公布微信号以来,收到不少职业成长方面的问题,也想着能有时间做个整理。然而毕竟已经过了许久,估计写得也不全,只是凭着记忆做个回顾,希望对大家能有一些帮助。
Q:测试有没有发展前景?
A:职业本身没有错,主要看个人选择和对待岗位的方式。企业最需要的是解决问题的人,只要能够创造价值,不会在意这个人是产品、开发还是测试。技术类岗位发展到后期,想要实现层级跃迁,都得往业务上靠。这方面开发和测试没有很本质的区别,不能把测试看成一种“原罪”。
实际上测试只是拥有共同目标的组织里的一个分工角色而已。比如说一个足球队,不能说因为我是守门员进不了球,就感觉球队的胜利与否和我没关系。测试当然也是如此,我们自己先要相信能够比开发做的更好,如果内心天然认为“测试不如开发”,那么坦白说确实没什么前景。
以实际例子来讲,我经历过的几个业务部门的负责人,基本是既干过测试,又干过开发,现在正在干产品,甚至随着架构调整,还会在几种角色里反复切换。所以我认为关键是要拥有这种能够“横跳”的能力,不管哪个角色都一样,态度决定未来。(参考:聊聊测试的成长)
Q:测试最需要的能力是什么?
A:这个问题有点见仁见智。如果一定要排个序,我认为是:业务 > 沟通 = 技术 > 文档。技术能力还可以进一步细分为: 通用基础 > 质量理论 > 架构 > 工具(通用基础技术指的是操作系统、数据库、编程、网络等)。仅为个人见解,供大家做个参考。
排序的理由:上面有说到层级跃迁靠的是业务能力,任何角色的最终价值体现都是业务价值,所以它最重要;测试角色因为所处的位置靠后,通常还有流程改进的职责,需要大量的协同工作,沟通能力必不可少;而技术能力一方面会影响测试的深度,另一方面也会影响沟通的有效性(得和别人聊得来),所以和沟通能力算是并列;文档能力是前述能力的呈现,自然是排在最后。
技术细分领域:通用基础技术处于第一位,因为测试或许在某些单项上的技术深度不如开发,但广度一定需要具备,毕竟前端、后端、移动端、桌面端都有可能涉及;紧接的是质量理论,它必须基于通用技术之上,否则没法理解到位;而质量稳定性建设,需要充分理解架构,因而排在第三;工具只是达成目标的手段,前面的东西具备了,工具肯定不是问题,所以排在最后。
Q:测试学习哪种编程语言比较好?
A:这个问题有点唯工具论了,各种语言有很多相通的地方,不好说哪个是“最”好的。比如内置类型大多是数字、字符串、数组、类等,再比如字符串一般会有 split、trim、index 操作,顶多名称和写法上有些变化。熟练掌握一门语言之后,再延展到其他语言并不困难。
当然我个人也有一些偏好,当下环境我比较推荐 Java + Python 的组合。选 Java 的理由是大公司用的比较普遍,掌握 Java 对求职有优势;选 Python 的理由有两个,一个是写测试脚本和工具比较高效,另一个是未来的 AI 方向 Python 用的也比较多。这个组合若能熟练运用,足够应对绝大部分场景了。
Q:想学自动化,但工作中没有机会?
A:一般情况下主管不会限制我们绝对不能去接触某种技术,有这个问题的小伙伴大多还是因为分工的关系。比如团队分成自动化小组和业务小组,我被分配到业务小组的话,是不是就没机会接触自动化?
这个也不尽然,分工是必然存在的情况,但我们可以自己去破除这个边界。拿自动化来说,即便我们不是自动化小组的成员,那在职责范围内的业务自己使用行不行?很多同学反馈说有在学习,但不用就忘了。这是必然的,要想办法把书本知识落地,而公司的实际业务场景就是现成可以练手的地方。
我刚入行的时候也有类似的情况。从开发那里借了几本书,一个人试着做了一套测试平台,看着不满意推翻重做了四五次,才敢说有了一小点代码能力。而后团队里来了一个自动化工程师,又向他学习 QTP,模仿其写了一个框架,再研究如何提高稳定性和可维护性。而这些都是没有主管要求的自发行为,一年多之后我就转到了测试开发小组,所以说还是事在人为。
Q:测试不受重视怎么办?
A:很正常,在所有老板的眼里,支持性岗位都不受重视。那什么岗位才受重视?生产性岗位。销售卖产品,是生产;产品写需求,是生产;开发写代码,是生产。测试怎么描述自己的产出?总不能是提缺陷吧。千万别用专业的角度去证明自己很重要,事实上老板根本听不懂,我们得用他能够明白的语言去讲。
有读者给我留言,说 TA 跟老板汇报的方式是发现多少个缺陷,我就知道八成要完,老板的关注点永远是“那为什么线上还有缺陷”,这是个根本无解的问题。可能有人会觉得委屈,认为老板不懂测试,确实是,但工资是人家付的,纠结这个没意义。如果说测试是一款产品,我们得努力推销自己,而不是责怪客户不懂得欣赏。
所以我们要证明的点其实是:“测试为什么是一个产出性的岗位”,尽量把自己的工作和某个业务指标做关联。举个例子,做私有化交付的自动化测试,我们的表述不能是“我写了一千个自动化用例”,而是“我让交付时长平均缩短两天”,老板听了就能理解:公司早两天可以收到款。你看内容其实是一样的,只不过是换个思维方式。不过纯测试领域的确很难找这样的方向,因此我一直建议“别太把测试当测试”,可以插手做些产品、开发的工作,不管成不成都对个人有好处。
Q:技术路线和管理路线哪个好?
A:普通人的技术快速沉淀黄金时期在毕业后的头五年,这段时间建议不要过早进入管理岗位,先专心学习技术,把基本盘打好。管理岗积累的方向和执行岗不太一样,从技术细节转向整体工程能力,如果底子不够扎实的话,反而对己有害而无利,因此可以在五年之后根据自身的实际情况再考虑,
我们的国情对技术路线不是太友好,尽管我也比较反感这种氛围,但不得不承认纯技术岗在年龄大了之后很容易遇到瓶颈,因此技术积累到一定程度之后,有机会还是尽量往管理路线走。同样的,纯管理岗的风险也比较大,所以对多数人适用的发展路线是先在技术路线打磨 5~8 年,之后再转管理路线。
Q:进大厂需要达到什么要求?
A:挺现实的问题。先说硬性条件,头部厂会卡学历、年龄。比如 985 本/211 硕;P6 30 岁以下/P7 35 岁以下等。也有例外,比如某方面特别优秀,或有一些特殊贡献。
如果硬性条件达不到又想进大厂,可以考虑在开源领域做一些事情,或通过其他方式在行业内打造出一定知名度,实在不行只能等诸如急招扩招的特殊时机。
面试方面不确定性比较高,大厂的部门很多,面试官也形形色色。一般而言代码和算法肯定需要,常见的自动化、性能领域也会问,其他问题比如业务质量怎么保障、某个场景的测试方法等。自己最好能有一个领域做得特别深入,经得住面试官的深挖。大厂有时候比较讲究“潜力”和“思考”之类(我是真不喜欢这种调子),可以在这方面做些准备。
再说几个提醒的点。大厂通常会有面试系统,记录历次的面试结果甚至是评价。因此尽量不要在没有准备的情况下参加面试,万一留下比较负面的反馈记录会对后续简历筛选或面试通过有影响。挺不合理,但规则如此。还有一种情况是面试感觉不错但就是没下文,也不一定是面试评价不好,有可能是团队调整或主观因素。不用太在意这类“失败经历”,可以多尝试不同部门,总能匹配到合适的岗位。
Q:当前公司不如意,要不要跳槽?
A:老实说 99% 的人会感到现有环境不够舒适,我们如果有类似的想法也很正常,不需要刻意压制或自我怀疑,把它当成一种正常心理活动看待。以我的过往经验来看,这种感觉主要来自这些因素:直属主管,硬性条件,发展空间,挨个说说吧。
直属主管确实是最重要的因素,用理论解释就是“组织需要和个人期望的匹配错位”。事实上要做到“主管让我做的”和“我想要做的”能够一致极其困难,即便是当前感觉不错,环境也有可能随时发生变化。所以这方面的判断一定要谨慎,不要因为一时情绪选择离职,还是要基于自己的成长来考虑。
我们不妨用这三个问题判断主管靠不靠谱:1)看品格:TA 给我提的那些要求,TA 自己是否能够做到?2)看能力:如果我照 TA 说的做,对个人提升是否有帮助?3)看担当:对外是否担当过错,对内是否争取利益?如果这三条都没有,是可以考虑离开。
硬性条件包括薪资、福利,甚至是通勤距离等,这里只说薪资,毕竟它最受关注。影响薪资的点有很多,我们要抓的是能够让薪资成倍放大的主要杠杆。比如大厂年薪百万的测试的产出不见得就比小厂年薪五十万的测试多一倍,很可能只是别人机遇把握的好。所以建议不要过多纠结两、三千的短期薪资差异,跳槽也有成本和风险。
机遇怎么来?一是平时注意个人经营,树立靠谱、积极的形象,行业圈子就这么大,自己在同事中的口碑对未来工作机会的影响极其巨大。二是定向看一些好的机会,比如我想去 XX 公司,它需要的业务经验和技术栈是什么,针对性地刻意练习,成功率会高很多。总之机遇是给有准备的人,这真的不是一句空话。
再看下发展空间。首先要给自己建立一个意识,先证明我能够做,再寻求晋升机会,心态要比职位先上去。如果是抱着“如果我晋升,肯定能干好”的想法,希望基本上很渺茫。关键岗位的任命是有风险的,公司不会轻易提拔存在未知性的人选,这也就是为什么很多管理位置宁愿采用空降而不从内部提拔的原因。
有时候的确需要有一些“越位”意识,尝试做突破自己当前职责的事情,同时也可以借此判断进一步的发展空间是否存在。如果团队环境对这种主动“越位”比较排斥,不鼓励创新和改变,那么也能侧面证明团队氛围并不良好,这种情况我是比较赞成尽快找一个更好的机会。
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。