月薪过万这个话题,在现在这个百花齐放的职场里是个很流行的命题。
月薪过万对于行业大佬来说,可能是个不屑一顾的追求,但对于职场新人而言通常是个很实际的人生目标。
我怎么样能达到月薪过万呢,其实严格来说,要找到一份满足你薪资期望的工作有三个要素:
个人提升
求职技巧
你所在的地域
做为一个闷骚IT技术宅,我最能回答的主要是第一点:怎么进行个人提升,毕竟功夫到家才是硬道理。
软件测试从业人员可能都有这样一种感受,就是干这一行你要会的东西太多了,说的通俗一点就是知识库庞杂。
在这个信息爆炸的时代,我们可以学习的东西太多了,看起来很多东西都能实现个人价值的提升。比如去学一本驾照,比如去学游泳,学健康养生。。。
测试工程师学什么?
我个人会把测试工程师的学习提升路线分为四条主线:
测试技术
行业知识
职场能力
管理技能
在不同的路线上去深化,会引领你走上不同的职业发展道路。
第一:先说测试技术,大致罗列一下,测试工程师需要学习的东西:
测试理论
测试方法论
测试思维
基于经验测试
静态测试
单元测试
工具技术
操作系统知识
服务器相关技术
数据库技术
基础测试工具
性能测试工具
接口测试工具
安全性测试工具
编程技术
脚本编程技术
白盒技术
自动化编程技术
测试开发技术
首先是测试的理论,有的人可能做了几年测试,积累了一些经验,就对这方面样的知识有些瞧不起了。其实我个人认为,理论始终是指导实践的最坚实基础。
做测试我们可以在工具、技能上面不断的雕琢,但其实测试的基础同样也是需要我们不断钻研的东西。
要学会从宏观的高度去看待测试工作:
测试的最终目的是交付高质量的产品;
产品的质量需求又是由项目性质决定;
测试工作不能脱离团队而存在;
测试如何服务于产品质量把控和风险缓解;
客户想要的究竟是怎样的产品特性和功能;
一个缺陷的背后,揭示的是怎么样的过程问题;
要学会从微观的角度去切入测试工作:
对于复杂的测试目标,有哪些方法论可以帮助我实现测试;
对于模糊的质量定义,我怎么挖掘其真实需求;
发现了问题,我怎么去对他进行分类和定位;
测试的数据怎么设计才能达到足够的覆盖;
测试用例怎么编排描述才能达到最好的效果;
如何进行反馈才能让发现的问题得到最有效的解决;
测试基础和理论就像一个侠客的内功,无论你的剑耍得有多六,最终决胜负还是要靠内力。
再说测试工具,做为IT从业人士,工具的使用可能是个人能力的最直接体现,是一种很外露的本事。
软件测试这个行业所涉及的领域非常广泛,从行业的角度来说,现在几乎所有行业都要上IT系统,连冰箱都要联网了。涉及行业的广泛,决定了我们在工作中可能用到的工具也种类繁多。
同时,软件产品质量的维度也非常的多,功能性、安全性、互操作性、负载、压力、易用性、兼容性、可维护性、可移植性等等等等。每一种质量的维度可能都有最适合去应用的一些工具。
还有一些操作系统级别和基础应用级别的工具,比如数据库,比如linux,比如JDK,中间件,我们也要去掌握。他们是我们开展测试工作必不可少的(你迟早会用到)工具。
在一定程度上,学会了一种工具,就意味着你测试工作的领域就被拓宽了一点,很自然的这会是你升职加薪的有效砝码。
不过在工具的学习上,还是有一些策略可以去应用的。不要被所谓工具的‘高大上’和‘酷炫感’这样的特性吸引,盲目去学习那些看起来很厉害,实际应用价值和范围却不大的工具。
不管是从升职加薪的角度而言,还是自我提升的角度而言,我们应该优先去学习市场应用面广的,最有用有实际价值的工具。人的精力和时间都是有限的,从最有用的学起,切忌好高骛远。先把基础的常用的工具学好,慢慢再去学习高阶工具是一个最优策略。
而且工具这个东西,其实是触类旁通的,等你学好了一部分工具,另外看起来高阶的那些说不定对你来说就已经很容易了,无非是去体验他的实际应用场景而已。
最后呢,学习工具不要只停留在应用级别,即不要只会用,要知其然知其所以然。工具的操作流程,不如他实现的原理对你来说更有价值。
接下来是编程技术,其实很多理论里把测试编程技术也归为工具的使用,不过我们把他单拿出来说。
也许有一些测试工程师其实是因为不爱写代码才做了测试这行,但是要在测试技术领域深化下去,编程技能又是不可或缺的。
是不是很纠结。
测试工程师的编程能力到底有什么用处呢?总结一下主要在以下方面:自动化测试、脚本编程,白盒/单元测试以及测试开发。
自动化测试是现在比较火的一个领域,不必多说。学些自动化测试编程,我们的目标应该不单单是应用,更应该深化到框架的编写。
脚本编程是脚本语言的应用,比如shell脚本和windows批处理这类工作控制语言,许多IT项目会很依赖这类脚本去做工作自动化控制,比如CI环境部署。