软件测试该学些什么技能?职业选择方向又有哪些?

测试,是动词、名词。测试行为,一般发生于为检测特定的目标是否符合标准而采用专用的工具或者方法进行验证,并最终得出特定的结果。多么生动的描述啊!

如果说开发的任务是建造一座房子,那么测试的任务就是对房子的材料,设计图纸(文档),外观,抗震性,舒适性等等进行综合验证,并得出一份“质检报告”。

测试职位具体划分

功能测试工程师

功能测试重心就是测试用例的设计。而测试用例的设计,取决于测试人员对产品需求的理解;对产品需求的理解取决于测试人员对业务的“接受”程度。这也是功能测试发展往往会遇到“瓶颈”的原因,过多的项目只不过是在反复地学习不同的业务;因此功能测试工程师往往要具备一定的测试管理能力,掌握一定的测试策略,发展通道一般是管理方向。

性能测试工程师

产品,实际上是指产品的功能和质量两个方面。功能是构成竞争力的首要要素。用户购买某个产品,首先是购买它的功能,也就是实现其所需要的某种行为的能力。质量是指产品能实现其功能的程度和在使用期内功能的保持性,质量可以定义为“实现功能的程度和持久性的度量”。

性能测试往往要求测试工程师不但具备对产品基本的功能以及业务知识,还要对产品所“在”(部署)的环境有必须的了解。这就要求性能测试工程师必须掌握一定的系统知识,如服务器硬件知识(CPU、MEM、NETWORK、IO),数据库(ORACLE,MYSQL),中间件(TOMCAT,NGINX),操作系统等知识。

自动化测试工程师

反复的手工测试势必会让测试人员开始思考人生。工作中几乎每个测试人员都会遇到过一些重复性比较高,而且必须要做的工作,如回归测试,冒烟测试等;顾名思义,自动化测试就是为了把测试人员从一些重复性高,而且需求变化不大的工作中解放出来;比如web自动化测试,可以通过selenium编写测试脚本,一次写完,就可以反复用到需求变动不大的任务中。

测试开发工程师

测试开发岗位,工作的目的就是为了更高效,更快捷地让测试工程师进行测试工作;测试开发岗位一般要求一定的开发能力,解决问题的能力尤为重要。比如我们项目组的测试开发小伙伴就经常开发一些脚本自动生成工具给我们使用,这也直接提高了我们的测试效率,间接地缩短了测试周期,可以更好更快地交付产品给客户使用。

测试需要掌握哪些技能

把自己工作中接触到的和非接触的到的知识罗列一下。

开发能力:JAVA(集合,泛型,基础知识,调试,代码阅读),JavaScript/CSS/HTML(基础知识,能结合知识实现项目),Python(基础知识);

框架:Spring Boot,Spring MVC;Vuejs;

开发成果:可以单独开发JAVAWEB后台系统,前端项目;管理系统;

兴趣爱好:机器学习(理解常用的机器学习知识与算法原理,以及简单机器学习实现);

计算机网络知识:TCP/IP协议(HTTP,DNS);

操作系统:LINUX服务器常用指令,服务器硬件指标分析,shell编程基础;

中间件:TOMCAT,NGINX(负载均衡,结合keepalive高可用架构),Mycat(分表分库),Redis,Zookeeper;

数据库:Oracle/MySQL,复杂查询;

测试工具:JMeter,Postman等;

版本管理:GIT,SVN;

调度工具:JENKINS(理解);

大数据:Hadoop(理解架构),Hive;

以上知识,都是工作中接触到的并且运用到的,当然测试工作中有些可能不需要精通掌握,只仅限于“使用”。

你可能感兴趣的:(Linux,PS,网络,测试用例,单元测试,压力测试)