软件测试人员怎么让自己牛逼起来?大概要多久才能很牛逼?

首先,请定义「牛X」。是对整体系统行为和用户反应的完整把握?还是对单一功能一切代码细节的了解?又或者,是对一个项目进度的控制和把握能力?如果提问者很清楚自己要什么,那么以下的内容都不用看了;

而如果提问者自己暂时说不清楚,那么就不妨读下去。我要谈的是,成为一个工程师。如果您的目标是成为一个管理者,那么请咨询管理学家。首先请搞清楚一件事,世界上不存在「测试行业」,只有「软件行业」。

在软件开发这个行当里,「软件测试」是一个岗位,而不是专业;测试技术是软件开发技术中不可或缺的一部分,但也仅仅是一部分。

所以,所有自称有志于在这个行业里走工程路线的从业者,虽然入行情况各不相同,但最终都必须成为一个合格(尽管不一定必须优秀)的软件开发者。(学习群,1140267353)

传统上,软件开发这个行业对从业者的能力评估模式,一直都有唯一确定的标尺:用软件解决问题。或者自己写出软件直接解决问题,或者用手边现有的软件间接解决问题。虽然如今许多大公司里分工越发细致,但这一条从来都没有变过:一个工程师,或者有能力写出代码解决别人都解决不了的问题,又或者,你总能比别人更快地拼凑出足敷使用的系统:前者的终极结果是资深软件开发工程师,后者则是资深架构师。

无论哪一种,最终的目的都一样:当一个问题摆在我面前时,我必须能够系统化地分析所有的条件和资源,给出一个可行的开发计划,再正确地评估这个计划能在多大程度上解决问题,最后执行它。但无论哪个公司,都不存在所谓「资深测试师」。即便是时下许多人口中津津乐道的那些保留专职测试的公司,也不例外。

考虑到自己也在其中,在此不便指名。所以,与其费脑筋去思考「软件测试人员怎么让自己牛逼起来」,不如好好想想,作为一个软件开发工程师,怎么让自己牛逼起来。说白了,很简单:要了解自己手上的软件,要会编码,要会制定测试计划,没有一项可以缺少。但是,我反对抽象地谈论所谓「更好地设计测试用例」,(免费领取自动化测试学习资料,工具,加qq群,1140267353,)因为它并无多少意义:如果不能知道系统是如何运行的,那么所谓的测试,也就只能是跟着某些固定的规范来定义。但是好的从业者,应该是需要从「跟随规范」向着「理解规范」甚至「制定规范」进步的。没有足够的编码能力,我无法想象如何完成第二步。我看到有朋友说,很多公司只需要测试做不了解细节的黑盒,这个我完全同意。

但问题是,特定公司对职员的要求,这个行业对从业者的要求,以及一个人对自己职业发展的要求,是三个完全不同的目标。求职总是要先满足第一个要求;能决定行业整体趋势的,是第二个要求;但决定一个人能在这个行业里走多远的,则是第三个要求。正如老友 @冯东 习惯用军队作比(尽管我个人并不十分赞同这个类比),一支部队里必须有炊事班,但并不意味着一个炊事兵应该止步于做一手好饭:他总应该在军事技能方面提升自己,或者体力,或者枪法。因为在军队里,衡量一个士兵的能力的最主要标杆,始终是基础军事技能。

在软件行业里,编码能力就相当于基础军事技能。当然,术业有专攻。炊事兵的枪法拿不到全连第一,大多数人也许不会苛责;但如果炊事兵因为自己在炊事班就心安理得地不参加军事训练,那即便是外行,也可以立即肯定这是个糟糕的士兵。基于相同的理由,如果有人对我说「我供职的公司不要求阅读代码」进而推理出「我作为测试为主业的 IT 从业者,不去学习代码是合情合理的」,这种逻辑恕我无法接受。我又看见有朋友说,许多公司的测试岗位无权看代码。是的,我也完全同意。但反驳起来实在是毫不费力。

Github/Bitbucket 上有那么多成熟项目我们都可以看,为什么你还没有开始,就要把「读代码」严格限制在「只读跟自己工作直接相关的代码」上?再退一步,您的项目中果然 100% 不使用外部代码么?在如今这个开源软件大行其道的年代,除了少数项目,我想大多数人都很难再遇到这种工作了吧。所以所谓的「忙」,「没权限」,乃至「没经验」。一言以蔽之,借口而已。如果一位朋友说自己忙于家事而无法投入时间自我提高,我会为您担心但充分理解;如果转而说自己现在入行做测试就可以理直气壮地拒绝学习,也罢,您随意。只不过如今这年头,没有人会在某个公司里呆一辈子。就算您抱定了呆一辈子的打算,别忘了,连队会改编,公司也会改组或倒闭。

一个只掂勺的炊事兵,迟早会碰到一个连队对他说,或者加入作战部队,或者滚蛋;同样的,一个只会测试的从业者,迟早会遇到一个招聘经理对他说,或者去写代码,或者滚蛋。当然有人可以继续争辩,炊事兵可以转行,去做一个真正的大厨。但那就不是这篇回答要说的问题了。

所以,不要让公司对自己的低要求,成为个人职业发展上不思进取的挡箭牌。

posted @ 2020-08-14 17:09  敲代码的老大爷  阅读(245)  评论(0编辑  收藏  举报