突然发现好像挺多人想投测开和测试的,很多人面试的时候也会被问到这几个职位的区别,然后有测试经历或者说有系统学习过测试的人蛮少的,楼主去年投这个岗位的时候也很迷茫,中间在牛客网请教过好几位大佬and前辈,这里做一个小小的总结(主要内容来自于和大佬们的谈话以及《How Google Test Software》这本书,如果有不准确的地方大家可以评论谈论),也希望和我当时一样迷茫的朋友们能有所收获。

首先明确一下简称吧,毕竟这几个名字太像了,中文容易搞混。软件开发工程师(SWE),测试开发工程师(SWT),测试工程师(TE)

1、SWE也需要做测试的工作,SWE需要编写测试驱动的设计、单元测试、参与构建各种大小规模的测试等(简单说开发其实需要对自己的代码负责,并不是很多人理解的代码写出来扔给SWT和TE去测)

2、SWT也是一个开发者角色,只是工作重心在可测试性和通用测试基础框架上。(SWT也要会写代码,代码要求并不比开发低,他们写代码的聚焦点是测试,PS:以字节为例,大部分的测开是技术序列,代码要求和开发一致,薪资也一致(当时宣讲会听的))

3、SWE和SWT不是敌人(不是一个生产BUG,一个挑刺的),更多是合作伙伴,SWT写代码的目的是可以让SWE测试自己的功能。

4、TE把用户放在第一位来思考,组织整体质量的实践,分析解释测试运行结果,驱动测试执行,构建端到端的自动化测试。(SWT和TE工作有很多交织,SWT更多是要构建测试框架,编写测试工具。TE更多是脚本,测试用例,以及点点点........,以字节为例,TE对代码的要求会相对较低,但是也需要写代码(宣讲会听的))

5、国内很多大厂的测开其实做的是测试的活,也要很多测开干的就是开发的活,这些都取决于你的组,不是一概而论的。

6、SWT和TE对于知识广度的要求会更高,SWE你也许只需要在一个角度仔细钻研就可以了,SWT和TE则需要你是“万能博士”,正如推荐的那本书的作者所说,招一个好的SWT和TE往往比SWE还难

7、SWT的天花板也许相对SWE会低(毕竟国内的事实是SWT和TE做主程的很少),但是SWT越来越受重视是不争的事实,同时SWT的平均待遇不低

最后选择SWT还是TE引用推荐的那本书里的几个标准(节选)(这也是交流的几个大佬也反复的提到是否真的喜欢测试类的工作):

你可能是一个SWT,如果你有以下的特征:

a.你编程时,会内疚的想到还有很多单元测试用例没有完成。随后,你又会考虑各种生成测试代码和验证的方法,而不是手工 编写每个单元测试用例

b.看到编译器警告时会焦虑不安

c.当贝要求测试一个产品时,你会打开源码,开始思考需要模拟的东西

d.你心目中领导力是:建立一个伟大的底层单元测试框架,供所有人来使用,或者在测试服务器上每天数百万次的运行

e.当被问道产品是否可以上线时,你可能会说:所有的测试都通过了

你可能是一个TE,如果你有以下的特征:

a.你能在已有的代码段中快速找到错误,迅速理解软件失效的模式,但是并不关心从头编写代码或者做修改

b.你更愿意到一些开源网站上去阅读别人的源码

c.在现实世界里你很愿意和其他人交流

d.你心中的领导力是:扶助其他工程师的创意,用更高数量级规模的应用场景来挑战他们的创意

e.当被问道产品是否可以上线时,你可能会说:我觉得可以了

综上(大概率是这样的,大家别钻牛角尖,没有优劣之说):

代码能力要求:SWE=SWT>TE

知识广度要求:SWT,TE>SWE

沟通能力要求:TE>SWT>SWE

知识深度要求:SWE>SWT>TE

薪资待遇:SWE=SWT>TE(纯粹意义的开发,测开和测试,当然国内很多公司自己都搞不清这几个Title区别)

大家有时间想详细了解或者想从事这个行业的还是希望大家深入阅读一下《How Google Test Software》,同时借贴再次感谢曾经回答我问题的几位大佬和前辈!

同时附自己去年字节测试开发的面经,大家可以参考一下测试开发的面试难度和流程:

https://www.nowcoder.com/discuss/205655?source_id=profile_create&channel=666

开发、测试开发和测试的区别相关推荐

  1. python调试和测试有什么区别和联系_软件测试和测试开发到底有什么区别跟联系?...

    对于没有进入IT领域的同学而言,软件测试并不陌生,但如果听到测试开发,他们一定会感到十分困惑,这究竟是测试还是开发呢? 按照字面意思理解,大家或许会觉得测试开发是指既能开发产品又能测试产品的" ...

  2. 测试开发面试题目(三)——测试用例、安卓苹果系统区别、小程序与app的区别

    测试用例: 测试用例是指对一项特定的软件产品进行测试任务的描述.体现测试方案.方法.技术和策略.其内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,最终形成文档,简单的认为,测试用 ...

  3. 初级、中级、高级测试/开发程序员的区别在哪里?传说中的码农......

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  4. 开发环境、测试环境、生产环境 -- 区别

    开发环境.测试环境.生产环境 – 区别 开发环境(development):开发环境时程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境. ...

  5. 自动化测试和测试开发的区别?培训学哪个更好?

    自动化测试和测试开发是目前测试两个比较热门的方向,但刚入门的同学却不知道它们都是干嘛的,到底该学习哪个方向.今天小千就来给大家介绍一下. 自动化测试 自动化测试是把以人为驱动的测试行为转化为机器执行的 ...

  6. 开发转测试没人要_入行或转行软件测试(测试开发)要怎么学

    在2008年刚刚进入这个行业时,我对于要学什么东西,是迷茫的.记得我在08年的时候,入职的公司给我们这批新人做了培训.培训中介绍了很多概念,告诉我们质量很重要,软件测试前景很好,还教了我们很多软件测试 ...

  7. 2021.3.1 百度测试开发实习面试–百度地图一面

    2021.3.1 百度测试开发实习面试–百度地图一面 自我介绍你能实习多长时间呢?因为你所投的是测试开发岗位,那说说你对测试的理解?你最熟悉的语言的是什么语言?Java的死锁是因为什么?内存泄露与内存 ...

  8. 用群体测试开发成功的应用程序

    为什么80%的码农都做不了架构师?>>>    ‍ Jan Wolter是testhub公司的CEO和共同创始人.他负责财务,战略和业务发展.2011年他从伦敦政治经济学院以优异的成 ...

  9. 白盒测试有哪些方法_QA测试开发常考的面试题+答案汇总(持续更新)

    最近很多朋友都在说今年的互联网行情不好,面试很难,不知道怎么复习,我最近总结了一份在测试开发面试中比较常见的面试题合集,希望对大家有帮助. 本文共 4800 字,预计阅读时间 13 分钟,建议点赞+收 ...

最新文章

  1. 安卓版文字扫描识别软件
  2. 矩阵连乘问题(动态规划算法)
  3. stringbuffer的最大长度_Java中的String、StringBuffer和StringBuilder
  4. 【前端帮帮忙】第7期 关于节流(throttle)和防抖(debounce)的理解
  5. distributed representations的意义
  6. python学习笔记之——range()函数
  7. C++二维数组作为函数参数
  8. 剑指Offer - 面试题57 - II. 和为s的连续正数序列(滑动窗口)
  9. 具体解释Android中AsyncTask的使用
  10. python之helloworld
  11. CSS - Iconfont
  12. unittest框架怎么生成测试报告?
  13. Java拦截器和过滤器
  14. 全国哀悼日,让网站全站变成灰色的CSS代码
  15. 原生 android 平板,前沿体验 原生Android 4.0系统平板推荐
  16. 语法练习——动名词专项训练
  17. Window Live Writer Test
  18. ThreadPoolExecutor(五)——线程池关闭相关操作
  19. Compression-Expansion Coding Improvements in MLC/TLC NVM论文解读
  20. 这几个方法让你实现EXCEL文件翻译成中文

热门文章

  1. mysql如何做直播_一个新手如何做直播
  2. 关于我年久失修的C++的康复记录3
  3. SpringBoot2.x 集成 SpringDataJpa 基于Kotlin
  4. 基于javaweb的水果蔬菜商城系统(java+ssm+jsp+mysql)
  5. Silvaco学习笔记(二)毕设相关
  6. sql server 跨服务器操作
  7. Observability:使用 Elastic Agent 来进行 Uptime 监控
  8. nvidia显示设置不可用,当前未使用连接到nvidia GPU的显示器
  9. 【笔试与面试】顶点软件群体面试
  10. 华为平板2鸿蒙,华为 MatePad Pro 2 平板电脑入网:首款预装鸿蒙 OS