从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!
经常会有小伙伴询问:“测试工程师有哪些必须要掌握的技能?”这是一个非常大的课题,因为每个人从事的行业不同、岗位不同,需要掌握的技能自然也不一样。
今天小编就从不同岗位、不同行业两个大方面,来讲讲软件测试工程师需要掌握的技能列表,最后也会列出哪个技能对于现在的你比较重要。快来对着技能树查漏补缺,有的放矢学习技能吧~
这里要提一下:这篇文章里说的测试工程师,是主攻软件领域的测试工程师。
首先我们来看一下不同阶段的测试工程师需要掌握的技能体系:
(来源@测试猿)
根据以上技能体系,小编给大家做了如下细分:
一、通用技能
1业务相关
站在客户角度思考业务;掌握业务需求的知识内容、业务管理流程、行业现状和发展方向;
2管理相关
1)时间管理(四象限法则)
2)目标管理(SMART法则)
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
六、不同行业需要测试工程师的星级
写在最后
这是小编总结的”过度”全面的测试技能合集,你有没有不同意见,把你的不同意见分享出来,大家一起讨论,谢谢!
如果你想学习交流,看下方:
↓↓
可以到我的个人葳:atstudy-js,就可以邀请你进群一起探讨学习交流。
相关文章:
从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!
经常会有小伙伴询问:“测试工程师有哪些必须要掌握的技能?”这是一个非常大的课题,因为每个人从事的行业不同、岗位不同,需要掌握的技能自然也不一样。 今天小编就从不同岗位、不同行业两个大方面,来讲讲软件测试工程师…...
【nerfStudio】5-nerfStudio导出3D Mesh模型
几何图形的导出 在这里我们将介绍如何从nerfstudio中导出点云和网格。您将使用的主要命令是ns-export。我们将点云导出为.ply文件,纹理网格导出为.obj文件。 导出网格 1. TSDF融合 TSDF(截断有符号距离函数)融合是一种使用深度图像提取表面网格的算法。此方法适用于所有…...
重要公告|投票委托已经上线,应该如何选择社区代表?
社区代表是Token持有者委托投票权的个人或团体,可以代表Token持有者在Moonbeam治理中投票。委托是可选的,允许代表在治理过程中代表更大比例的Token和Token持有者。相比社区代表,不愿投票的Token持有者可以将投票权委托给社区代表,…...
【操作系统】聊聊进程、线程、协程
进程内部有那些数据 为什么创建进程的成本高 进程和线程 进程是资源分配的基本单位,而线程是程序执行的基本单位,一个是从资源分配的角度看,另一个是执行角度。 那么进程和程序的区别是什么? 程序,一段代码ÿ…...
springboot 下 activiti 7会签配置与实现
流程图配置 会签实现须在 userTask 节点下的 multi instance 中配置 collection 及 completion condition; collection 会签人员列表;element variable 当前会签变量名称,类似循环中的 item;completion condition: 完成条件。 ${taskExecutionServiceIm…...
RK3399平台开发系列讲解(内核调试篇)spidev_test工具使用
🚀返回专栏总目录 文章目录 一、环境二、执行测试三、回环测试四、字节发送测试五、32位数据发送测试沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 在 Linux 系统上,“spidev_test” 是一个用于测试和配置 SPI(Serial Peripheral Interface)设备的命令行工具。…...
点云从入门到精通技术详解100篇-自适应点云局部邻域特征的特征提取与配准(续)
目录 3.4 深度相机误差建模 3.5 实验结果及分析 3.5.1 TOF 相机平面畸变校正 3.5.2 TOF 相机深度误差校正...
VBA技术资料MF52:VBA_在Excel中突出显示前 10 个值
【分享成果,随喜正能量】一言之善,重于千金。善良不分大小,有时候你以为的一句话,小小的举手之劳,也可能就是别人的救赎!不要吝啬你的善良,因为你永远不知道那小小的善良能给多少人带来光明。。…...
leetcode做题笔记134. 加油站
在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost &…...
Allegro166版本如何在颜色管理器中实时显示层面操作指导
Allegro166版本如何在颜色管理器中实时显示层面操作指导 在用Allegro166进行PCB设计的时候,需要在颜色管理器中频繁的开关层面。但是166不像172一样在颜色管理器中可以实时的开关层面,如下图 需要打开Board Geometry/Soldermask_top层,首先需要勾选这个层面,再点击Apply即…...
纷享销客入选中国信通院《高质量数字化转型产品及服务全景图》
近期,在中国信息通信研究院主办的“2023数字生态发展大会”暨中国信通院“铸基计划”年中上,重磅发布了《高质量数字化转型产品及服务全景图(2023)》,纷享销客凭借先进的技术能力和十余年客户业务场景应用理解…...
C高级 DAY4
一、分支语句 case ...in语句 shell中的switch语句 case $变量名 in常量1)语句;; ------->类似于C中break的作用,;;除了最后一条分之外,都不能省略常量2)语句;; 常量n)语句;;*) ------->类似于C中default,但…...
C高级day4
作业 实现一个对数组求和的函数,数组通过实参传递给函数 写一个函数,输出当前用户的uid和gid,并使用变量接收结果 思维导图...
Java8-17 --- idea2022
目录 一、idea官网 二、使用idea编写hello world 三、查看工程中的JDK配置信息 四、详细设置 4.1、显示工具栏 4.2、默认启动项目配置 4.3、取消自动更新 4.4、选择整体主体与背景图 4.5、设置编辑器主题样式 4.5.1、编辑器主题 4.5.2、字体大小 4.5.3、修改注…...
Mybatis---增删改查
目录 一、添加用户 (1)持久层接口方法 (2)映射文件 (3)测试方法 二、修改用户 (1)持久层接口方法 (2)映射文件 (3)测试方法 …...
开机性能-如何抓取开机systrace
一、理论 1.背景 抓取开机 trace 需要使用 userdebug 版本,而我们测试开机性能问题时都要求使用 user 版本,否则会有性能损耗问题。因此想要在抓取开机性能trace 时,需要在 user 版本上打开 atrace 功能之后才能抓取 trace,默认 …...
VBA技术资料MF54:VBA_EXCEL实时获取鼠标位置
【分享成果,随喜正能量】若人散乱心,乃至以一花,供养于画像,渐见无数佛。所以发一幅释迦牟尼佛像,与同修善友一起每日在微博上供养,只要有供养之心,便可积累功德。以此回向,愿求者如…...
模电课程设计
主要内容跟本科实验关系很大,可以用来借鉴。 包含文件有:实验报告、Multisim仿真文件,资料很全,有问题可以私信 目录 1、模电课设:用Multisim简单了解二极管 2、模电课设:用Multisim简析三极管与场效应…...
【2023研电赛】兆易创新命题三等奖: 低成本单母线电流永磁同步无感驱动器
本文为2023年第十八届中国研究生电子设计竞赛兆易创新企业命题三等奖以及决赛最佳论文奖分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有…...
原生Js 提取视频中的音频
Js提取视频中的音频 将视频中的音频轨道分离出来,生成 wav 文件播放或下载( Vue3 setup ) 代码实现 template <button><label for"file" id"filename">选择视频文件</label><input type"fi…...
设计模式-备忘录模式(Memento Pattern)
文章目录 前言一、备忘录模式的概念二、备忘录模式的实现三、备忘录优缺点优点:缺点:总结 前言 备忘录模式(Memento Pattern)是一种行为型设计模式,它用于捕获和存储对象的内部状态,以便在以后可以恢复到先…...
PHP对接阿里云虚拟号的实现(号码隐私保护)
fastadmin 封装框架 实现功能:AXN隐私号绑定、解绑; 场景:为店铺手机号开通虚拟号,用户联系店铺展示虚拟号码; 官方开放文档地址:https://help.aliyun.com/document_detail/59655.html?spma2c4g.111742…...
刷新单年发射纪录:SpaceX成功发射62次猎鹰9号火箭
SpaceX一直都致力于推进航天领域的发展。近日,该公司的猎鹰9号火箭再次刷新了单年发射纪录,目前已经成功发射了62次。除此之外,今年SpaceX还发射了一枚猎鹰火箭和一枚巨型火箭。马斯克表示,他的目标是实现每月10次猎鹰飞行&#x…...
项目打包docker镜像 | 上传nexus | jenkins一键构建
文章目录 前言准备实操1、打开docker的远程访问2、编写dockerfile文件3、指定nexus环境4、配置jenkins5、使用jenkins构建 总结 前言 Docker部署项目是指使用Docker容器化技术将应用程序及其依赖项打包成一个独立的、可移植的运行环境,并在各种操作系统和平台上进行…...
ios 运行ipa包 日志查看方式
方法一: 使用ideviceinstaller工具 # 安装ipa命令 brew install ideviceinstaller ideviceinstaller -i xxx.ipa# 查看运行日志 idevicesyslog# idevicesyslog 查找命令 idevicesyslog | grep test -A 3 -B 2 # 输出关键字所在行后3行,前2行) idevic…...
AUTOSARCAN-Tp协议
目录 一.单帧、首帧、连续帧、流控帧 单帧传输 SF单帧: 多帧传输 FF(首帧): CF(连续帧): FC(流控帧): 一.单帧、首帧、连续帧、流控帧 CAN诊断由发送端…...
【设计模式】组合模式实现部门树实践
1.前言 几乎在每一个系统的开发过程中,都会遇到一些树状结构的开发需求,例如:组织机构树,部门树,菜单树等。只要是需要开发这种树状结构的需求,我们都可以使用组合模式来完成。 本篇将结合组合模式与Mysq…...
恒林家居引入纷享销客CRM系统,领跑家居行业营销数字化进程
近日,恒林家居股份有限公司((股票代码:603661以下简称为“恒林家居”)携手纷享销客在湖州召开了CRM项目启动会。双方领导及核心项目人员齐聚一堂,展开了深度交流并达成了重要共识。 作为家居行业的领军企业…...
多线程-锁的种类
1 作用 Java中的锁主要用于保障多并发线程情况下数据的一致性。在多线程编程中为了保障数据的一致性,我们通常需要在使用对象或者方法之前加锁,这时如果有其他线程也需要使用该对象或者该方法,则首先要获得锁,如果某个线程发现锁正在被其他线程使用,就会…...
Hive 和 HDFS、MySQL 之间的关系
文章目录 HiveHDFSMySQL三者的关系 Hive、MySQL 和 HDFS 是三个不同的数据存储和处理系统,它们在大数据生态系统中扮演不同的角色,但可以协同工作以支持数据管理和分析任务。 Hive Hive 是一个基于 Hadoop 生态系统的数据仓库工具,用于管理和…...
湖北省市政工程建设网站/外包接单平台
算法中常常会推断两条单链表是否相交,尽管算法简单,但也值得说一下。代码中有详尽凝视。 Show you the code ! #undef UNICODE#include <iostream> #include <Windows.h> #include <cstring>using namespace std;typedef struct _SING…...
wordpress商业用途/全搜网
首先,我开始遇到的时候,认为是高分辨屏幕的问题,所以修改了屏幕的分辨率,结果并没有改变。 然后,认为是对话窗口的显示,修改字体大小,也没有显示完整。 最后,是修改了ArcGIS的注册表…...
个人备案网站做商业/营销策略都有哪些
最近在工作中遇到一个非常奇怪的问题,在两台主主同步的mysql数据库中,经常出现修改表结构后,两个库中结构不一致的情况,查看同步状态,木有任何报错,数据可正常同步,我自己在操作数据库进行索引创…...
装修公司网站开发/中国营销网
C操作符的优先级 C操作符的优先级 操作符及其结合性 功能 用法 L L L:: :: ::全局作用域 类作用域 名字空间作用域::name class::name namespace::nameL L L L L. -> [] () ()成员选择 成员选择 下标 函数调用 类型构造object.member pointer->member variable[exp…...
网站建设递进发展趋势/百度2022最新版本
蜘蛛和蜜蜂订婚,蜘蛛感到很不满意,于是就问他的妈妈:"为什么要让我娶蜜蜂?"蜘蛛的妈妈说:"蜜蜂是吵了一点,但人 家好歹也是个空姐。"蜜蜂也感到很不满意,于是就问她的妈妈:…...
北京住房和城乡建设委员会网站自住房/业务推广平台
前言: 之前,我们已经通过经历了类和对象(上)和类和对象(中)的学习,使我们对类和对象这一概念打下了坚实的基础,今天我们要做的便是对类和对象进行收尾工作,本篇之后关于…...