做测试还是测试开发,选职业要慎重!
【软件测试面试突击班】2024吃透软件测试面试最全八股文攻略教程,一周学完让你面试通过率提高90%!(自动化测试)
突然发现好像挺多人想投测开和测试的,很多人面试的时候也会被问到这几个职位的区别,然后有测试经历或者说有系统学习过测试的人蛮少的,楼主去年投这个岗位的时候也很迷茫,中间在网上请教过好几位大佬and前辈,这里做一个小小的总结。
主要内容来自于和大佬们的谈话以及《How Google Test Software》这本书,(如果有不准确的地方大家可以评论谈论),也希望和我当时一样迷茫的朋友们能有所收获。
首先明确一下简称吧,毕竟这几个名字太像了,中文容易搞混。软件开发工程师(SWE)、测试开发工程师(SWT)、测试工程师(TE)。
区别
SWE也需要做测试的工作,SWE需要编写测试驱动的设计、单元测试、参与构建各种大小规模的测试等(简单说开发其实需要对自己的代码负责,并不是很多人理解的代码写出来扔给SWT和TE去测)。
SWT也是一个开发者角色,只是工作重心在可测试性和通用测试基础框架上。(SWT也要会写代码,代码要求并不比开发低,他们写代码的聚焦点是测试,PS:以字节为例,大部分的测开是技术序列,代码要求和开发一致,薪资也一致(当时宣讲会听的))。
SWE和SWT不是敌人(不是一个生产BUG,一个挑刺的),更多是合作伙伴,SET写代码的目的是可以让SWE测试自己的功能。
TE把用户放在第一位来思考,组织整体质量的实践,分析解释测试运行结果,驱动测试执行,构建端到端的自动化测试。(SWT和TE工作有很多交织,SWT更多是要构建测试框架,编写测试工具。TE更多是脚本,测试用例,以及点点点…
以字节为例,TE对代码的要求会相对较低,但是也需要写代码(宣讲会听的))。
国内很多大厂的测开其实做的是测试的活,也要很多测开干的就是开发的活,这些都取决于你的组,不是一概而论的。
SWT和TE对于知识广度的要求会更高,SWE你也许只需要在一个角度仔细钻研就可以了,SWT和TE则需要你是“万能博士”,正如推荐的那本书的作者所说,招一个好的SWT和TE往往比SWE还难。
SWT的天花板也许相对SWE会低(毕竟国内的事实是SWT和TE做主程的很少),但是SWT越来越受重视是不争的事实,同时SWT的平均待遇不低。
特征
最后选择SWT还是TE引用推荐的那本书里的几个标准(节选)(这也是交流的几个大佬也反复的提到是否真的喜欢测试类的工作)。
你可能是一个SET,如果你有以下的特征:
1、你编程时,会内疚的想到还有很多单元测试用例没有完成。随后,你又会考虑各种生成测试代码和验证的方法,而不是手工 编写每个单元测试用例。
2、看到编译器警告时会焦虑不安。
3、当被要求测试一个产品时,你会打开源码,开始思考需要模拟的东西。
4、你心目中领导力是:建立一个伟大的底层单元测试框架,供所有人来使用,或者在测试服务器上每天数百万次的运行。
5、当被问到产品是否可以上线时,你可能会说:所有的测试都通过了。
你可能是一个TE,如果你有以下的特征:
1、你能在已有的代码段中快速找到错误,迅速理解软件失效的模式,但是并不关心从头编写代码或者做修改。
2、你更愿意到一些开源网站上去阅读别人的源码。
3、在现实世界里你很愿意和其他人交流。
4、你心中的领导力是:扶助其他工程师的创意,用更高数量级规模的应用场景来挑战他们的创意。
6、当被问到产品是否可以上线时,你可能会说:我觉得可以了。
总结
综上(大概率是这样的,大家别钻牛角尖,没有优劣之说):
-
代码能力要求:SWE=SWT>TE
-
知识广度要求:SWT/TE>SWE
-
沟通能力要求:TE>SWT>SWE
-
知识深度要求:SWE>SWT>TE
-
薪资待遇:SWE=SWT>TE(纯粹意义的开发、测开和测试,当然国内很多公司自己都搞不清这几个Title区别)
最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们 如果需要可以自行免费领取 【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
相关文章:

做测试还是测试开发,选职业要慎重!
【软件测试面试突击班】2024吃透软件测试面试最全八股文攻略教程,一周学完让你面试通过率提高90%!(自动化测试) 突然发现好像挺多人想投测开和测试的,很多人面试的时候也会被问到这几个职位的区别,然后有测…...

Java面试题总结200道(二)
26、简述Spring中Bean的生命周期? 在原生的java环境中,一个新的对象的产生是我们用new()的方式产生出来的。在Spring的IOC容器中,将这一部分的工作帮我们完成了(Bean对象的管理)。既然是对象,就存在生命周期,也就是作用…...

面试数据库篇(mysql)- 03MYSQL支持的存储引擎有哪些, 有什么区别
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。 MySQL体系结构 连接层服务层引擎层存储层 存储引擎特点 InnoDB MYSQL支持的存储引擎有哪些, 有什么区别 ? my…...
MySQL深入——25
Join语句如何优化? Join语句的两种算法,分别为Index Nested-Loop Join和Block Nested-Loop Join NLJ在大表Join当中还不错,但BNL在大表join时性能就差很多,很耗CPU资源。 如何优化这两个算法 创建t1,t2算法,在t1中…...
Docker运行时安全之道: 保障容器环境的安全性
引言 Docker作为容器化技术的领军者,为应用部署提供了灵活性和便捷性。然而,在享受这些优势的同时,必须重视Docker运行时的安全性。本文将深入研究一些关键的Docker运行时安全策略,以确保你的容器环境在生产中得到有效的保护。 1. 使用最小特权原则 保持容器以最小权限运…...

前后端分离项目Docker部署指南(上)
目录 前言 一.搭建局域网 1.搭建net-ry局域网,用于部署若依项目 2.注意点 二.安装redis 创建目录 将容器进行挂载 编辑 测试是否安装成功 编辑 三. 安装MySQL 创建文件夹 上传配置文件并且修改 .启动MySQL容器服务 充许远程连接 四.部署后端 使用…...
ARM 架构下国密算法库
目录 前言GmSSL编译环境准备下载 GmSSL 源码编译 GmSSL 源码SM4 对称加密算法SM2 非对称加密算法小结前言 在当前的国际形式下,国替势不可挡。操作系统上,银河麒麟、统信 UOS、鸿蒙 OS 等国产系统开始发力,而 CPU 市场,也是百花齐放,有 龙芯(LoongArch架构)、兆芯(X86…...

源码的角度分析Vue2数据双向绑定原理
什么是双向绑定 我们先从单向绑定切入,其实单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新。那么双向绑定就可以从此联想到,即在单向绑定的基础上,用户更新…...

动态规划(算法竞赛、蓝桥杯)--树形DP树形背包
1、B站视频链接:E18 树形DP 树形背包_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; const int N110; int n,V,p,root; int v[N],w[N]; int h[N],to[N],ne[N],tot; //邻接表 int f[N][N];void add(int a,int b){to[tot]b;ne[tot]h[a];h[a…...

electron打包前端项目
1.npm run build 打包项目文件到disk文件夹 2.安装electron:npm install electron 打开后进到/dist里面 然后把这个项目的地址配置环境变量 配置环境变量:在系统变量的path中添加进去 配置成功后,electron -v看看版本。 3.创建主程序的入口文件main.…...
2.1基本算法之枚举7647:余数相同问题
已知三个正整数 a,b,c。 现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。 请问满足上述条件的x的最小值是多少? 数据保证x有解 #include<bits/stdc.h>//万能头 using…...
求最短路径之迪杰斯特拉算法
对fill用法的介绍 1.用邻接矩阵实现 const int maxn100; const int INF100000000;//无穷大,用来初始化边 int G[maxn][maxn];//用邻接矩阵存储图的信息 int isin[maxn]{false};//记录是否已被访问 int minDis[maxn];//记录到顶点的最小距离void Dijkstra(int s,in…...
python大学社团管理系统开发文档
项目介绍 一直想做一款大学社团管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套管理系统。 在线体验 代码下载:https://github.com/geeeeeeeek/python_team演示地址:http://team.gitapp.cn/ &…...
leetcode 1328.破坏回文串
题目链接LeetCode1328 1.题目 给你一个由小写英文字母组成的回文字符串 palindrome ,请你将其中 一个 字符用任意小写英文字母替换,使得结果字符串的 字典序最小 ,且 不是 回文串。 请你返回结果字符串。如果无法做到,则返回一个…...

重学SpringBoot3-自动配置机制
重学SpringBoot3-自动配置机制 引言Spring Boot 自动配置原理示例:Spring Boot Web 自动配置深入理解总结相关阅读 引言 Spring Boot 的自动配置是其最强大的特性之一,它允许开发者通过最少的配置实现应用程序的快速开发和部署。这一切都得益于 Spring …...

sql基本语法+实验实践
sql语法 注释: 单行 --注释内容# 注释内容多行 /* 注释内容 */数据定义语言DDL 查询所有数据库 show databases;注意是databases而不是database。 查询当前数据库 select database();创建数据库 create database [if not exists] 数据库名 [default charset 字符…...

Node.js中的并发和多线程处理
在Node.js中,处理并发和多线程是一个非常重要的话题。由于Node.js是单线程的,这意味着它在任何给定时间内只能执行一个任务。然而,Node.js的事件驱动和非阻塞I/O模型使得处理并发和多线程变得更加高效和简单。在本文中,我们将探讨…...
node.js 封装分页查询
node.js封装sql分页查询 方法: /*** 生成分页查询sql* param {string} table 表名* param {number} pageNum 分页页数 * param {number} pageSize 分页条数 * param {object} query 查询对象 例:{id:1,name:小明}* returns sql语句*/ const limit (ta…...
iptables 基本使用
iptables 主要用到两个表:filter 和 nat,其中 filter 表可以用来过滤数据包;nat 可以用来修改数据包的源地址和目的地址。 chain chain 是 table 中对数据包进行匹配的规则,对于 filter 来说 chain 有 INPUT & OUTPUT & …...
食品笔记()
吃东西有时不注意,就容易不舒服,记录下。 辣椒 辣椒真是个让人又爱又恨的东西。 看着想吃,吃着过瘾,吃完容易肚子疼。 主要是这东西本身就会刺激身体,即使是能吃辣的人,也容易造成肠胃发炎。 适量吃些即…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...

leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...