职业经验 测试开发都这么厉害了?为啥不直接转业务开发?

狂师 · 2024年03月28日 · 最后由 Gikagou 回复于 2024年04月03日 · 7600 次阅读

大家好,我是狂师!

前段时间,在后台收到一则留言:"请问一下,你觉得开发技术好,还是测试技术好,如果测试技术好,为什么不直接开发,干嘛做测试?"

这是一则很有意思且大多数技术新人普遍存在的困惑,今天就以此问题,给大家统一解答,分享一下笔者的观点。

1、首先,从技术本身来讲,

开发技术和测试技术都是软件工程中不可或缺的技术能力,它们各自具有独特的价值和重要性。无法简单地说哪个技术更好,因为它们的优劣取决于具体情境和需求。

开发技术专注于实现软件的功能和特性,它涉及到编程语言、算法、数据结构、设计模式等多个方面。优秀的开发技术能够确保软件具有高效、稳定、安全的性能,满足用户需求。

测试技术则专注于确保软件的质量和可靠性,它涉及到测试用例设计、自动化测试、性能测试、安全测试等多个方面。优秀的测试技术能够及时发现软件中的缺陷和错误,为软件开发提供质量保障。

2、从岗位职责来讲,就软件工程来说,

开发工程师则是一个更广泛的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。他们的主要工作是进行软件的开发和生产,技术要求较为全面,包括但不限于编程语言、数据库技术、平台技术等多个方面。

而测试工程师,随着近些年行业发展趋势,大体又分为两类:业务测试工程师、测试开发工程师。

  • 业务测试工程师,主要负责开发和执行软件测试,以确保软件产品的质量和可靠性。他们需要设计、编写和执行测试计划和测试用例,识别和报告软件缺陷和错误,参与软件开发生命周期,并与开发团队密切合作。测试工程师需要掌握软件测试理论、方法和工具,同时还需要具备分析问题、识别潜在风险和提出解决方案的能力。

  • 而测试开发工程师,是一种特殊的角色,他们既是开发人员,又负责软件测试。他们关注软件产品的可测性、稳健性和性能,并在软件设计初期就参与审阅和推动改进。测试开发工程师需要编写测试工具和自动化测试代码,同时也需要执行一些基础的功能测试或白盒测试。他们需要掌握多种编程语言、测试技术、开发技术,同时还需具备测试工程师的敏锐思维,能够从用户体验、产品业务角度解决问题。

总的来说,测试开发工程师、开发工程师和业务测试工程师在职责和技能要求上各有侧重,但他们共同的目标都是确保软件产品能符合客户、用户需求,同时满足质量和可靠性要求。测试开发工程师更侧重于开发和自动化测试,开发工程师更侧重于软件的开发和生产,而测试工程师则更专注于测试计划和测试用例的设计和执行。三者之间的协作对于软件项目的成功至关重要。

这也符合 Google 测试之道一直强调的每个工程师都应注重质量,质量是内建的,而非仅仅是测试人员的责任。

3、再者,我的观点

在我之前出版的《自动化测试实战宝典》一书中,提到的 “一名优秀的测试开发工程师应该比开发更懂开发,比产品更懂业务,不然你如何发现开发和业务更深层次的问题呢?”

虽然这一观点,现实工作中,能达到的人并不多,但实际上它更多是对测试开发工程师角色的一个高度期望和要求。这种表述并不是字面上的绝对比较,而是强调测试开发工程师需要具备跨越开发和产品领域的综合能力和视角。

  • 首先,测试开发工程师比开发更懂开发,并不是指测试开发工程师在开发技术层面一定比专业的开发工程师更精通,而是指测试开发工程师需要深入了解开发的过程、技术栈、常见的错误模式以及开发的思维方式。这样,他们才能设计出更有效的测试用例,更精准地定位问题,更快速地与开发团队沟通协作。测试开发工程师需要站在开发的角度思考问题,预见并防范可能出现的问题,从而确保软件的质量。

  • 其次,测试开发工程师比产品更懂业务,也不是说测试开发工程师一定比产品经理更了解业务需求,而是强调测试开发工程师需要对业务逻辑有深入的理解,了解业务背后的目标和需求,以便更好地设计测试用例和发现潜在的业务问题。测试开发工程师需要站在用户的角度思考问题,确保软件的功能符合业务需求和用户期望。

这种跨领域的综合能力使得测试开发工程师在发现开发和业务问题方面具有独特的优势。他们可以通过深入了解开发过程和技术栈,发现开发人员可能忽略的潜在问题;同时,通过深入理解业务逻辑和需求,发现产品可能存在的功能缺陷或不符合用户期望的地方。

需要注意的是,这一观点并不是要求测试开发工程师在所有方面都要超过开发或产品人员,而是强调他们需要具备一种综合的视角和能力,以便更好地履行测试和开发工程师的职责,确保软件的质量和可靠性。

在实际操作中,测试开发工程师可以通过与开发团队和产品团队紧密合作,积极参与项目讨论和需求评审,不断提升自己的业务和技术能力,从而更好地发现和解决开发和业务问题。同时,他们也需要保持开放和学习的态度,不断吸收新的知识和技术,以适应不断变化的项目需求和技术环境。

4、最后

质量不是被测试出来的,质量也不等于测试,同时质量并非仅仅依赖于测试阶段,而是需要在整个软件开发过程中进行预防和确保。测试只是其中的一环,而不是质量的唯一保障。

同时测试工程师是一个把质量意识输出到整个团队的人,是一个流程推动者,是一个需求挖掘者,是一个质量把关者,一方面我们确实通过自己的经验和技术手段去挖掘更多的 Bug,另外一方面,通过传播质量意识尽可能的去从产品上游去避免 Bug。

开发测试比本身没有实际任何意义,只是人员数量上的比率,如果在你的职位头衔上有测试的字样,你的任务就是怎么使得那些头衔上没有测试的人可以更好地去做测试。

希望这些观点,能给你带来新的启发,共勉!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 22 条回复 时间 点赞

好理解

发挥独特价值👏

我的理解很简单:

  1. 编码是一种技能,是最底层的能力;
  2. 业务开发和测试开发各自需要不同的领域知识和技能。举例:假设 Android 开发要熟练使用 Android 各种库,能迅速实现 Android UI 页面。临时叫一个后端或者前端开发来做,也不一定合适。

故,由于领域知识和技能熟练度的区别,会产生的工作效率和工作质量的问题。一个测试开发去做业务开发,一定程度上会大量浪费自身的质量知识沉淀,同时又要花大量时间去熟悉领域开发知识和技能。相当于放弃优势拿短板和别人比较。

不是 XXX 干不起,而是 XXX 更有性价比的问题。

都什么年代了还纠结岗位性质和技术是否匹配,现在都是看业务,业务赚钱你的技术才能等效换成钱。一个盈利上升期业务的功能测试 在工资上可以超过 一个下坡路行业的测开,并且未来也是无限拉开,对照近期比较火的 shein 就知道了,以前随便进 现在测开挤破头去面里面的功能

测试新人 回复

PDD 的例子可能更加合适点,shein 赚不赚钱不好说,但对技术,是不舍得给钱。

测试新人 回复

小伙儿总是一阵见血,不过你这样让布道师怎么混?😂

花菜 回复

我认识的在 shein 的去年涨了一波薪,比例还是挺大的。还有 shein 目前是真的在盈利,广州这边的供应链很强大,未来的超级巨头

质量不是被测试出来的,质量也不等于测试,同时质量并非仅仅依赖于测试阶段,而是需要在整个软件开发过程中进行预防和确保。测试只是其中的一环,而不是质量的唯一保障。
这句话我觉得很好,之前有面试,面试的时候说希望找个测试进来,以后的产品再没有 bug,听到这样的我就头疼

测试新人 回复

确实是看公司业务,之前同事在 anker 因为去的早,公司业务一直起飞,然后工资福利也是吃满

感觉好少看到测开岗招聘

测试只是其中的一环,而不是质量的唯一保障。
这句话 我感觉好多小公司的开发 产品岗都不能理解

测试新人 回复

很早之前拿到 offer,没去。

工资现在不知道,当时就是抠抠搜搜的。

公积金和社保基数底,比例低。

学了几天颠勺、看了几个宫廷菜的短视频;以为自己就算没到米其林、五星级起码也是星级饭店的大厨了~
[狗头][狗头][狗头]
支持 4 楼!

花菜 回复

可惜了,现在时尚服装类的境外电商,shein 是第一了。拼多多还在它那边挖人做 temu 抢市场

测试新人 回复

说实话他们当时应该大部分也是从不在潮头慢慢走到潮头,我们大部分人都不能让自己出生就在潮头,只能自己多努力让自己站在潮头之上的可能性更高或者更加靠近

狂师 #17 · 2024年04月01日 Author
测试新人 回复

站在风口,猪都会飞,核心还是要有与时俱进,持续学习的能力

狂师 回复

都在风口了,核心是站对团队,哪来什么持续学习能力😁 ,只要有正反馈,都会持续学习

因为 CRUD 的业务开发巨无聊,还要听 PD 摆布,纯开发的测开过的不要太爽。薪资方面两者也差不多,转业务开发那得多想不开

测开不也是业务开发么,只是业务最边缘,不会被大佬 review 代码,SLA 要求比较低,挂了没啥影响,性价比极高。

测试新人 回复

哈哈,一针见血,文章说的也没毛病,不过可能是国外的测试

测试开发也是业务开发吧,服务于测试团队的开发

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册