软件测试是由于软件开发编程行业高度成熟后所形成的产物。
从整体行业背景看,在中国的很多软件企业存在着重开发、轻测试的现象,造成日后的软件产品的质量问题频出;
这时候软件测试的重要性尤为凸显,那么想要成为一名软件测试开发工程师都需要学习哪些内容呢?
开发能力:JAVA(集合,泛型,基础知识,调试,代码阅读),Javascript/CSS/HTML(基础知识,能结合知识实现项目),Python(基础知识);
框架:SpringBoot,SpringMVC;Vuejs;
开发成果:可以单独开发JAVAWEB后台系统,前端项目;管理系统;
兴趣爱好:机器学习(理解常用的机器学习知识与算法原理,以及简单机器学习实现);
计算机网络知识:TCP/IP协议(HTTP,DNS);
操作系统:LINUX服务器常用指令,服务器硬件指标分析,shell编程基础;
中间件:TOMCAT,NGINX(负载均衡,结合keepalive高可用架构),Mycat(分表分库),Redis,Zookeeper;
数据库:Oracle/MySQL,复杂查询;
测试工具:JMeter,Postman等;
版本管理:GIT,SVN;
调度工具:JENKINS(理解);
大数据:Hadoop(理解架构),Hive;
以上知识,都是工作中接触到的并且运用到的,当然测试工作中有些可能不需要精通掌握,只仅限于“使用”。
除了这些,软件测试工程师还需要掌握一些软技能。
一,系统思维能力
无论是出软件测试方案,还是用例设计,测试建模,场景化分析等都需要具备一定的系统思维,环环相扣,把遗漏风险降到最低。也是个人提升的必备
二,项目管理能力
测试人员最终的目标是评估质量风险与风险控制,但质量并非是靠测试测出来的,而是在产品未孵化前的规划就开始了,所以了解整个项目管理流程才可以实现对各个阶段的质量把控。
三,沟通表达能力
以上案例中已提到过,无论是日常工作与其他跨部门团队的沟通还是晋升的竞聘环节,以及面试过程中对自我的展示,都需要良好的沟通表达,再优秀的技术也需要靠表达去实现继承和运用。
四,领导管理技能
测试人员的发展方向除了专家路线就是管理方向,当然技术管理还是要以技术为本的,所以领导力会显得尤其重要,但无论专家还是管理路线,拥有一定经验后需要做出决策以及测试策略如何让别人信服就需要一定的领导力了,而领导力是可以有意培养的,如尊重法则,导航法则,影响力法则等,如何提出意见让其他团队乐意接受也是一门学问。
五,观察能力
一般,做过技术人员面试官的都会有些微表情,或面试心理学的知识储备,如何快速识别需要靠长期的细节观察能力来判断候选人。知己知彼百战百胜,不仅仅是面试官还有一些测试人员转为业务专家或顾问后会更有学习的必要。
六,导师能力
有一定经验的测试人员即使没做到管理层,也会被委任做某个方向的导师或培训人员,这时如何从自己学习到传播给他人知识会有个转变,也是工作的一部分,为测试组知识库与技术储备贡献力量。工作一定时间后,就需要有意识的培养这方面的能力了。