月薪过万的话题,在现在百花齐放的职场,是一个非常热门的命题。
月薪过万对行业大佬来说可能是不屑一顾的追求,但对职场新人来说通常是非常实际的人生目标。

怎样才能做到月薪过万?其实严格来说,找到一份符合你薪资预期的工作有三个要素:
个人提升求职技巧作为一个man show里的IT技术宅,我最好的回答就是第一点:如何进行个人提升,毕竟努力才是硬道理。
软件测试从业者可能都有这样的感受,就是干这行需要知道的东西太多了。说白了就是知识库复杂。
在这个信息爆炸的时代,我们能学到的东西太多了。似乎很多东西都可以提升我们的个人价值。比如,学驾照,学游泳,学健康养生...
那么测试工程师要学什么呢?
我个人会把测试工程师的学习提升路线分为四条主线:
科技行业的测试知识、职场能力、管理技能,会在不同的路线中加深,引领你走向不同的职业发展道路。
第一:测试技术
大致列出测试工程师需要学习的东西:
理论、测试基础、测试方法论、测试思维、基于经验的测试、静态测试、单元测试工具技术、操作系统知识服务器相关技术、数据库技术、基础测试工具性能测试工具接口测试工具安全测试工具编程技术、脚本编程技术、白盒技术、自动编程技术、测试开发技术为第一测试理论。有些人可能看不起这种经过多年考验,积累了一些经验的知识。
其实我个人认为理论永远是指导实践最坚实的基础。
要测试,我们可以不断打磨工具和技巧,但其实测试的基础也是需要我们不断研究的东西。
学会从宏观角度看待测试工作;
测试的最终目的是交付高质量的产品;
产品的质量要求是由项目的性质决定的;
测试离不开团队;
测试如何服务于产品质量控制和风险缓解?
客户想要什么样的产品特性和功能;
一个缺陷背后揭示了什么样的过程问题;
学会从微观角度切入测试工作;
对于复杂的测试目标,什么方法论可以帮助我实现测试;
对于品质的模糊定义,我该如何挖掘它的真实需求?
我发现了问题,该如何分类定位;
如何设计测试数据以达到足够的覆盖率;
如何安排测试用例的描述以达到最佳效果;
如何反馈,使发现的问题得到最有效的解决;
考验和理论就像侠客的内功。不管你的剑有多巧,最后的胜负都取决于内功。
先说测试工具。作为一个IT从业者,工具的使用可能是一个人能力最直接的体现,是一个非常暴露的技能。
软件测试行业涉及的领域非常广泛。从行业来看,现在几乎所有行业都需要IT系统,连冰箱都是联网的。所涉及的行业范围很广,这就决定了我们在工作中可以使用的工具有很多种。
同时,软件产品质量有很多维度,比如功能性、安全性、互操作性、负载、压力、易用性、兼容性、可维护性、可移植性……质量的每个维度都可能有一些最适合应用的工具。
还有一些操作系统层面和基础应用层面的工具,比如数据库,比如linux,比如JDK,中间件,我们都要掌握。它们是我们测试工作不可或缺的工具。
在一定程度上,学会一个工具,意味着你的测试工作领域拓宽了一点,自然会成为你升职加薪的有效砝码。
然而,仍然有一些策略可以在工具学习中应用。不要被工具所谓的‘高大上’、‘酷炫’的特性所吸引,盲目学习那些看起来很棒但实际应用价值和范围不大的工具。
无论是从升职加薪的角度,还是从自我提升的角度,都应该优先学习最有用、最实用、市场应用广泛的工具。人的精力和时间都是有限的,不要从最有用的学习上定太高的目标。先学好基础常用工具,再慢慢学习高级工具,是一个最优策略。
此外,工具实际上是一个类比。当你学好了一些工具,似乎高阶的对你来说可能很容易,只是为了体验他的实际应用场景。
最后,学习工具不能只停留在应用层面,也就是不仅要会用,还要知道为什么用。工具的操作过程对你来说不如它实现的原理有价值。
接下来是编程技术。其实在很多理论中,测试编程技术也被归类为工具的使用,但我们还是把它单列出来吧。
也许有些测试工程师其实做测试是因为不喜欢写代码,但是编程技巧对于深化测试技术领域是不可或缺的。

是不是很纠结?
测试工程师的编程能力有什么用?总结主要在以下几个方面:自动化测试、脚本编程、白盒/单元测试和测试开发。
自动化测试是现在的热门领域,不用多说。学习自动化测试编程,我们的目标应该不仅仅是应用,还有框架的编译。
脚本是脚本语言的应用,如shell脚本和windows批处理。许多IT项目将依赖这样的脚本来进行工作自动化控制,例如CI环境部署。
掌握编程知识也会帮助我们完成白盒/单元测试等任务。如果从两个方向发展我们的编程能力和测试能力,测试开发是一个很好的发展方向。
一个前提条件是测试工程师的编程技能门槛比较低。当我们学习编写代码以将其应用于测试时,我们一开始并不需要深入。
比如作为一名测试工程师学习自动化编程,在入门级的时候,我们只需要学习现有自动化工具和类库的使用。其实学习难度并没有想象中那么高。
随着学习的深入,当你有了更高的追求,在编程领域继续深造是一个不错的选择。比如上面提到的写框架,改进框架,领导一个组织的自动化测试。
如果我们学好了这些技能,无论是综合发展还是专项学习,我们的职业发展路线都会更深入技术。比如成为自动化测试工程师、性能测试工程师、白盒测试工程师或者安全测试专家。与基础测试岗位相比,这些岗位的薪酬水平大幅提高。
第二,是行业知识。
归根结底属于第三产业。什么是第三产业?总的来说就是服务业。IT行业服务于其他基础行业。最终,我们要完成的是使传统的交易处理IT化、自动化和网络化。
这就涉及到一个问题。无论我们做什么样的项目、系统或软件,其最终的应用都会在另一个与计算机系统无关的领域,比如金融,比如零售,比如医疗,等等。
作为IT从业者,除了我们银行的计算机应用技术,这些行业的知识成为了我们需要学习和掌握的第二个科目。
对行业的透彻理解是IT人员的另一个必要技能树,尤其是对于软件测试。因为作为项目的测试和质量控制,只有对软件应用领域非常了解,才能更好的帮助我们检查项目的质量;软件测试倾向的用户立场也要求我们能够从专业的角度来衡量我们的产品在专有领域的适用性。
比如金融领域,如果你真的想做好这个领域,金融知识和基金核算技能有时候可能比你的测试技能更重要。毕竟,如果你不精通这个领域,你可能连系统的用户/市场需求如何实现都不知道,更别说如何把好产品质量关了。其他领域对行业知识也有不同的要求。
当然,有时候一个测试工程师可能会有这样的经历。他就像一个雇佣兵,在几个项目之间来回奔波,完全不固定在某个行业领域。客户想要什么系统,我们就测试什么系统,在几个不同的领域徘徊和品鉴,没有时间让我在某个领域沉淀。
这是现实。这种情况下,你在某个行业的积累还是可以帮到你的,但是你很难成为这个领域的专家。
但是,如果你有机会在某个测试领域安家,我会推荐你深入这样一个领域,双向发展测试技术和行业知识。
当测试工程师在某个行业领域有足够深入的专业知识和技能,那么我们的发展方向可以是‘领域测试专家’和‘领域测试咨询’。这样的人才在业内肯定很吃香,高薪肯定不是问题。
第三:是职场能力。
职场能力可以说是一种个人素质和综合能力。
无论我们在测试技术和行业知识方面有多优秀,我们都需要强大的职场技能来辅助我们,这样才能充分发挥我们的专业技能。不然拿了高薪还能不能保住工作就不好说了。
有哪些职场能力?我总结了一下:
沟通能力、自律能力、学习能力、思考能力、抗压能力、计划能力、时间观念、团队精神、思考能力、担当、沟通能力:不用说,测试工程师可能是一个it团队中最重要的沟通任务,也是最需要沟通能力的。我们的测试工作强烈依赖于其他工作团队的输出,所以我们不仅要交流,还要沟通;其次,我们的测试工程还起到项目质量反馈和过程改进的作用,这就需要我们很好地沟通测试结果和结论。测试人员不得不重视沟通,沟通技巧的差异是关系到我们团队状态和个人评价的一个非常重要的因素。
自律,时间观念,勇于承担责任,都是一个人责任感的体现。我们不提倡放弃应有的生活和娱乐,全心全意投入工作,在检测岗位上做劳模。但是,在你的工作时间里,我们要做好自己的工作,全心全意做好自己该做的事情。我们应该勇敢并愿意贡献我们的责任。用自己的目标鞭策自己,无论是为了养家糊口,还是为了实现自己。再者,要主动发现工作中的乐趣,做自己做的事,爱自己做的事,避免眼高手低。
学习思维能力:要求我们有良好的学习思维意识,以及良好的方法论。IT行业的不断发展,新兴领域的不断涌入冲击着我们的行业,这就要求我们要有学习的意愿和能力,在学习和工作中勤于独立思考,善于发现问题,总结问题,提出解决方案。创新是学习和思维能力的高级体现。
计划能力:测试的基础工作是由一些复杂的事情组成的。即使你的职位沿着测试路线越走越远,你仍然无法摆脱一些杂事。所以要求我们有系统的规划能力。新测试人员刚入行的时候,可能会觉得细心可能是测试这种‘找问题’类型工作最重要的品质。其实系统的规划能力是我们做事的必备技能。即使是天生不够细心的人,也可以通过有效的系统规划,避免因粗心而出错,可以帮助我们打理复杂的工作项目和对象,把握主线,帮助我们更轻松高效地完成工作。
抗压能力:做IT测试的时候,工作上难免会有压力,无论是工作时间还是工作成果。学会抗压,遇到挫折不要轻易气馁,完成成绩要戒骄戒躁。还要学会判断压力是否合理,加班的压力是否合理?领导的质疑合理吗?学会科学判断,科学应对。其实相比较而言,考位的压力其实处于中等水平。不要被工作压得喘不过气来,否则升职加薪无从谈起。
第四,是管理能力。
对于测试工程师来说,随着经验的积累和这个行业的深入,可能是我们每一个人转行到管理岗位都会思考的一个方向。
当然,当领导有很多好处,比如地位的上升,比如薪资的上升——尤其是在薪资上限上。做管理和纯做技能还是有显著区别的。
要做测试管理,除了相应的机会,当然也要做好管理能力的准备。
我把考试管理能力分为三个维度,即:
测试组织能力,测试技术能力,团队管理能力,测试组织能力,让我们学习如何组织、计划、实施、监控和报告一个测试项目。让我们把测试项目做好,让他去做风险控制、质量反馈、流程改进的职能。
测试能力允许我们,作为测试经理,了解技术在测试活动中的应用场景和机会,并使我们能够控制技术在测试项目中的引入和使用。还要求我们具备相应的技术能力来指导具体技术在项目中的运用。其实第一点还是需要努力的:测试技术。
团队管理能力是与人打交道、与人沟通、管理人、建设和提高团队、管理团队内部各种人才使之为你所用的能力。这也是专科。
学习管理能力后,遇到合适的机会,可以向测试主管、测试经理、测试主管方向发展。
当然,一旦你到了管理岗位,后续的可能性会增加很多,高管的机会之门也会向你敞开。看个人的把握,其实最后成为CTO、部门经理、VP都是有可能的。当然,他不属于考位直接晋级。

上面提到的四个方向,大部分都不是独立存在的,更多的是在实际应用场景中交织在一起,形成一个测试人员的能力体系。其中,可以有所侧重,对这些能力的侧重引导着我们的职业方向。
比如加大测试技术的投入,我们的方向可能是测试技术专家和技术专门领域;
测试和管理技能,那么可能的方向可以是考架构师,考领导;;
测试和行业知识双修,那么你就可以成为领域测试专家。
学无止境,分享!


