首页 > 其他分享 >测试开发都这么厉害了?为啥不直接转业务开发?

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

时间:2024-03-28 09:22:25浏览次数:22  
标签:工程师 为啥 技术 业务 开发 质量 测试

大家好,我是狂师!

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

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

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

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

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

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

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

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

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

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

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

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

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

3、再者,我的观点

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

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

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

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

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

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

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

4、最后

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

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

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

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

标签:工程师,为啥,技术,业务,开发,质量,测试
From: https://www.cnblogs.com/jinjiangongzuoshi/p/18100761

相关文章

  • Happus:给准备离职成为独立开发者的你 5 点建议
    名字:Happus开发者/团队:ReginaDan平台:iOS,visionOS请简要介绍下这款产品Happus是你追寻幸福健康关系、甚至提高婚姻生活品质的贴心助手。无论是关系维系、情侣问答、聊天话题、趣味事实、生活窍门、休闲游戏,还是约会灵感,App中的一切都希望让你们成为更加幸福的一对。不......
  • 预约功能与后台管理开发
     项目介绍:   这是专门为前端应用做的后台维护界面,前端负责业务展示与操作,后台处理业务逻辑控制,还对接了其他三方平台如钉钉、客如云、用友、金蝶等产品,业务闭环后自动生成三方平台单据。产品支持微信支付主扫和二维码扫码支付,也添加了权限管理和日志记录功能!  难点:  ......
  • 基于HarmonyOS的阅读笔记助手的APP开发第一天
    1.设计原型书籍界面原型书籍阅读界面原型笔记界面原型笔记记录界面原型软件设置界面原型......
  • 模块化软件开发
    目录模块化软件开发是一种将软件系统划分为独立命名且可独立访问的模块的开发方法。每个模块都具有特定的功能或职责,并且可以独立地开发、测试,最后组装成完整的软件。这种方法的主要目的是降低软件系统的复杂性,提高开发效率,以及增强软件的可维护性。在模块化软件开发中,每个模......
  • RestFul风格的开发
    1、REST风格根据REST风格对资源进行访问称为restful描述模块通常使用复数表示某类资源每个控制器方法前都有这两个注解:@RequestMapping(value="/users/{id}/{name}",method=RequestMethod.DELETE);@ResponseBody;重复性太高解决:将@RequestMapping放在类上,定义所有方法......
  • (2-3-4)位置控制算法:无人机运动控制系统——基于非线性动力学和积分滑模控制的仿真测试
    2.3.6 基于非线性动力学和积分滑模控制的仿真测试文件test/fault_ISMC.py实现了一个基于非线性动力学模型的无人机控制系统仿真环境,其中包括飞行器模型、故障注入、和控制器。旨在帮助开发者理解和评估基于积分滑模控制的无人机控制系统在执行器故障条件下的行为。classEn......
  • 测试优先的开发
    测试优先的思想确定规约Specification编写测试用例JUnit编写代码Coding程序测试Testing(如果需要的话)修改代码并重新测试,直到通过全部测试用例为止Revisingandtestingagain设计测试用例等价类划分概述:将被测函数的输入域划分为等价类,从等价类中导出测试用例。假......
  • 鸿蒙开发 TypeScript 基础语法
    文章的最下面有官网链接可以进行练习!变量声明TypeScript在JavaScript的基础上加入了静态类型检查功能,因此每一个变量都有固定的数据类型let:声明变量的关键字,const则代表常量示例代码://string:字符串,可以用单引号或双引号letmsg:string='helloworld'//number:数......
  • 大数据开发之CDH使用搭建大数据平台
    大数据开发之CDH使用搭建大数据平台1、CDH介绍它是Cloudera公司提供的一种大数据平台解决方案。CDH的全称是Cloudera’sDistributionincludingApacheHadoop,它是一个开放源代码的大数据平台,基于ApacheHadoop和其他相关的开源技术构建,包括HDFS、MapReduce、HBase、ZooKee......
  • 【Postman如何进行接口测试简单详细操作实例】
    1、下载Postmanpostman下载地址:DownloadPostman|GetStartedforFree2、安装Postman(1)双击下载好的postman-setup.exe文件,进行安装postman工具(2)安装完成后,在桌面找到并打开postman软件,输入邮箱和密码进行登录,没有就新建注册一个账号,登录进入到postman首页。3、大......