从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!

经常会有小伙伴询问:“测试工程师有哪些必须要掌握的技能?”这是一个非常大的课题,因为每个人从事的行业不同、岗位不同,需要掌握的技能自然也不一样。

从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!_第1张图片

今天小编就从不同岗位、不同行业两个大方面,来讲讲软件测试工程师需要掌握的技能列表,最后也会列出哪个技能对于现在的你比较重要。快来对着技能树查漏补缺,有的放矢学习技能吧~

这里要提一下:这篇文章里说的测试工程师,是主攻软件领域的测试工程师。

首先我们来看一下不同阶段的测试工程师需要掌握的技能体系:

从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!_第2张图片

(来源@测试猿)

根据以上技能体系,小编给大家做了如下细分:

一、通用技能

1业务相关

站在客户角度思考业务;掌握业务需求的知识内容、业务管理流程、行业现状和发展方向;

2管理相关

1)时间管理(四象限法则)

从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!_第3张图片

2)目标管理(SMART法则)

从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!_第4张图片

3)知识管理

工具:xmind、有道云笔记、印象笔记、Blog、GitHub、CSDN等

4)团队管理

team leader:

认真完成任务分工;及时汇报工作情况;建设员工技术成长体系;关注员工身心健康发展;

team worker:

认清任务职责边界;工作中敢于担当;对自己负责,对团队负责,对公司负责;与同事之间彼此包容、和谐相处;

3思考、沟通和持续学习能力

思考

今天完成了什么内容、明天需要做什么、自己哪些方面做得好,哪些做得不够好,下次需要改进;近期工作计划、学习计划、职业规划、人生规划。

沟通

敢于沟通:主动了解和听取对方的想法,敢于表达自己的观点,表达观点时说话语气很重要,要平和;

勤于沟通:多和别人交流与工作相关的意见和想法;

善于沟通:提升沟通技巧和效率,善于提问;沟通过程对事不对人,以解决问题为根本。

持续学习能力

持续学习精神:测试技术更新快速,测试工程师需要保持持续学习的态度,跟随行业发展,时刻关注测试行业最新技术和趋势,不断提升自己的专业能力,以保持竞争力;

二、功能测试需要的技能

1、客户端功能测试的技能

1)熟练掌握web测试与app测试关注点的不同,比如,界面、兼容性、app安装/卸载/升级、app弱网、app操作方式(横/竖屏、手势)、app交叉事件等测试;

2)熟练掌握几种常见的缺陷管理工具(Jira等)和代码管理工具(SVN等),熟悉缺陷的定义标准和系统化测试计划编写等;

3))至少会一门编程语言:java、python、C#等,可以不精通,但要写过简单的代码;

4)掌握用例设计工具(latin)和web测试工具(xenu等)的使用;

需要掌握的工具:

1)缺陷管理工具

Jira、禅道、bugfree、自研工具等;

2)文档协作管理工具

wiki;

Docs--在线协作;

Xmind;

3)用例编写工具

Latin;

4)用例执行工具

Xenu(web)、adb(app);

5)代码编写工具

Pycharm等

6)弱网测试工具

Charles

7)安全测试工具

AWVS--网站及服务器漏洞扫描软件

sqlmap--检测与利用SQL注入漏洞的免费开源工具

Nmap--网络扫描和嗅探工具

2、服务端功能测试

1)熟练使用postman或jmeter做接口测试;

2)深度了解HTTP/HTTPS协议的原理和作用;

3)掌握Linux命令查看服务器信息;

4)会使用jmeter做简单的性能测试;

5)使用python+requests+unittest/pytest+htmlrunner框架写过简单的接口自动化脚本;

6)熟练操作数据库:增、删、改和多表查询,可以写存储过程,独立完成测试数据的制造;

需要掌握的工具:

1)抓包工具

Fiddler、Charleswireshark;

2)接口测试工具

Postman、HttpRequester、jmeter等;

3)性能工具

Jmeter等;

4)数据工具

Navicat、redisdesktopmanager;

5)车载特有工具

canoe、cantest、Qnet、busmaster、gt

3、共通技能:

1)软件测试知识:对软件测试的基本概念、方法和流程有深入的了解,熟悉各种测试技术和工具;

2)测试方法论:熟悉测试方法论和流程,例如黑盒测试、白盒测试;熟练掌握黑盒测试方法(等价类、边界值等)和白盒测试方法(基本路径等),熟练使用这些方法论制定测试计划和测试策略,设计有效的测试用例;

三、自动化测试需要的技能

1、客户端自动化的技能

1)对于Web应用程序的自动化测试,掌握HTML、CSS和JavaScript很有帮助的。

2)熟练掌握UI自动化测试框架的环境搭建,比如,python+selenium+unittest+htmlrunner;

3)熟练掌握APP移动自动化测试的完整流程和测试方法;

需要掌握的工具:

1)Android自动化测试

UIAutomator

appium(基于webdriver框架)

uiautomator2(仅支持Android)

AirTest

2)iOS自动化测试

WebDriverAgent

appium(基于WebDriverAgent框架)

AirTest

3)Web自动化测试

Selenium

4)微信小程序自动化测试

ChromeDriver

5)客户端自动化测试

Pyautoit

2、服务端自动化的技能

1)熟练搭建工具自动化的搭建:postman/jmeter+newman/ant+jenkins;

2)能够独立完成Python+requests+unittest/pytest+htmlrunner的测试框架的开发;

3)能够独立完成自动化接口脚本的编写和维护;

需要掌握的工具:

Python+requests+unittest/pytest+htmlrunner;

Java+rest-assured;

Robot Framework;

HttpRunner;

Postman+Newman+jenkins;

Jmeter+Ant+jenkins;

Vue+Flask&Django;

3、共通技能

1)编程技能:至少掌握一门编程语言(Python、Java、C++等),没有编程基础的建议选择Python,因为简单易学,对新手比较友好,而且在测试领域的应用极为广泛,以编写自动化测试脚本和工具;

2)测试工具和框架:熟悉常用的自动化测试工具和框架,例如Selenium WebDriver、Appium、unittest/pytest/JUnit、htmlrunner(测试报告工具)等,提高自动化测试的效率和准确性;

3)基础知识:了解软件开发生命周期和软件测试基础知识,包括需求分析、设计、编码、调试和发布等阶段;理解软件开发流程和相关概念更好地与开发团队协作;

4)调试和故障排除:具备良好的问题分析和故障排除能力,能够快速定位测试脚本和自动化测试框架的问题,并提供解决方案;

四、性能测试需要的技能

1、客户端(app)性能测试的技能

1)性能测试工具:熟练掌握性能测试工具,如solopi等,对客户端进行性能测试。

2)客户端技术知识:了解客户端开发的基本原理和技术,熟悉常见的移动应用开发框架(如iOS、Android),了解Web前端技术(如HTML、CSS、JS等);

3)性能测试指标:明确客户端性能测试指标(冷热启动时间、耗电量、流量、CPU、内存、GPU、帧率、页面切换时间和稳定性测试)及预期结果;

需要掌握的工具:

1)PerfDog、solopi

2)adb

3)ffmpeg(音视频)

4)dumpsys batterystatus

5)Battery-Historian

6)Monkey、MonkeyRunner等

2、后端服务器性能测试的技能

1)熟悉性能测试过程,能够独立分析性能需求;

2)深度掌握Jmeter或Loadrunner的拓展用法,能独立完成性能测试;

3)操作系统和网络知识:了解操作系统的原理和常见问题,熟悉网络通信协议和架构,有助于深入理解系统的性能特点和影响因素;

4)脚本开发:熟悉至少一种编程语言(如Python、Js等),能够编写自动化脚本支持性能测试工作,并进行数据处理和结果分析;

5)数据库知识:了解数据库的基本原理和性能优化策略,熟悉常见数据库管理系统(如MySQL等)和性能调优方法;

6)系统架构与设计:能够理解系统各个模块之间的交互关系,为性能测试提供有效的支持和指导;

7)压力测试和容量规划:具备压力测试和容量规划的知识和经验,能够根据系统需求和预期负载,评估系统的容量,并制定相应的扩展和优化方案;

需要掌握的工具:

1)性能测试工具:Jmeter、Gatling、LoadRunner;

2)资源监控工具:性能监视器、nmon等;

3)数据库监控工具:monitor等;

3、共通技能

1)操作系统知识:熟悉操作系统的基本原理和常用命令,了解操作系统对性能的影响。

2)问题解决能力:善于分析和解决技术问题,具备良好的故障排除能力,能够处理性能测试过程中遇到的各种技术难题。

3)性能测试方法与策略:了解性能测试的基本原理和方法,熟悉负载模型和性能指标,能够选择合适的性能测试策略,并设计相应的测试方案。

4)性能问题分析与调优:能够对性能测试结果进行分析和解读,定位系统资源瓶颈和性能问题,并提出有效的优化措施。

五、其它需要掌握的工具

1)H5性能测试

(1)Chrome Devtool

(2)W3C Performance API

2)环境部署工具

(1)Docker--应用容器引擎

(2)K8S--基于容器的集群管理平台

3)辅助开发工具

(1)Vue.js

(2)Nodejs

六、不同行业需要测试工程师的星级

从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!_第5张图片

写在最后

这是小编总结的”过度”全面的测试技能合集,你有没有不同意见,把你的不同意见分享出来,大家一起讨论,谢谢!

如果你想学习交流,看下方:

↓↓

可以到我的个人葳:atstudy-js,就可以邀请你进群一起探讨学习交流。

你可能感兴趣的:(软件测试,测试工程师,测试开发,程序员,互联网,功能测试,运维)