更新时间:2022-12-28 来源:黑马程序员 浏览量:
软件测试一般学什么技能?该如何规划职业方向?有些朋友对软件测试这个行业可能还比较陌生,这么说吧,有人把功能开发比喻成盖一座房子,那么软件测试技术人员就是对盖房子所用的材料、外观样式、工程图纸、抗震性和线路铺设这些综合因素进行验证,最后得出一份“质检报告”。
随着信息技术的快速发展,软件测试的工作也越来越重要。如今,软件测试已经是软件开发过程中必不可少的一项工作。在职业规划上,软件测试人员可以细分为以下几种。
一款优秀的产品要综合考虑功能和质量两个方面。功能直接和产品的竞争力挂钩。一般用户决定某买一款产品,主要因素就是考虑产品的功能是否满足他的心理,功能实际上可以理解为产品总体的功用或用途。而产品质量指的是产品质量是指产品满足规定需要和潜在需要的特征和特性的总和。
一个优秀的性能测试工程师需要对企业业务和产品的基本功能有比较深刻的认知,还要熟悉产品的研发环境。也就是说在系统部署方面,性能测试工程师要熟悉中间件如Nginx、Tomcat,服务器硬件如CPU、Network、IO、CPU,数据库MySQL、Oracle以及操作系统等知识。
功能测试的重点就是要熟悉如何去设计测试用例。想要把测试用例设计到位,测试工程师需要对产品需求有较为深刻的了解。而测试工程师对业务越了解,越能Get到产品需求的每个点,这些是相辅相成的。互联网中的功能测试人员往往也会遇到瓶颈期,在接手不同的项目后其实是一个反复学习业务的过程,这其中其实是业务上的差别更多一些。所以说测试工程师要懂得测试管理,调整测试的策略且要会运用不同的策略,职业发展方向一般是管理岗位。
为了让测试工程师更加高效、快捷地进行工作,测试开发岗位曾几何时诞生出来。顾名思义,这个岗位需要测试人员具备一定的开发能力。在平日的工作中,测试开发工程师经常会写一些自动化的工具或者脚本给项目组人员进行使用,直接大幅提升了测试效率,与此同时也缩短了测试的周期,在把产品交付给客户后,客户会连连称赞完成的又快又好。
不想当将军的士兵不是好士兵,不会自动化测试的工程师也不是一个出色的工程师。重复性比较高的工作几乎是每个测试工程师在日常中都会遇到的,像这个领域里的人都熟知的冒烟测试、回归测试等;单从字面意思理解,进行自动化测试的目的可以说是为了解放双手,脱离呆板重复的循环任务,比方说编写一个selenium测试脚本进行Web自动化测试,只要一次写好,就可以在需求没有大改的情况下反复地去利用。
笔者结合自己的经验,把软件测试常用的技能进行了以下简单的罗列。
1.测试工具:Selenium可以用来录制脚本,Jmeter用于测试动态和静态资源,是Apache组织开发的基于Java的压力测试工具。MaxQ、WebInject、Watir属于开源功能 自动化测试工具,TPTEST、OpenSTA、DBMonster属于开源性能自动化测试工具。还有用PHP+MySQL独立编写的Bug管理系统Bugfree,用于测试过程管理的Testlink,轻量级的缺陷跟踪系统Mantis等。
2.操作系统:Linux常用的操作指令起码要会一些,懂一些Shell编程基础。
3.中间件:像上文提到的Tomcat、用于分表分库的Mycat,Nginx负载均衡,Zookeeper、Redis。
4.数据库:Oracle、MySQL。
5.版本管理:SVN、Git。
6.开发能力:Python自动化编程测试、Java、JavaScript前后端技术。
7.常用框架:Vue.js、SpringBoot、SpringMVC。
8.调度工具:Azkaban、Airflow、Jenkins(限于理解)。
9.大数据:Hive、Hadoop等(限于理解)。
10.计算机网络知识:OSI与TCP/IP。
以上笔者总结的技能和知识点,是当今软件测试职场中会碰到的,有一部分并不需要精通,理解概念会使用即可。