干货必读: 测试开发既然都这么厉害了!为啥不直接转业务开发?

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

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

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

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

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

图片

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

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

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

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

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

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

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

图片

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

3、再者,我的观点

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

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

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

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

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

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

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

4、最后

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

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

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

好了,今天就先聊到这里,希望这些观点,能给你带来新的启发,共勉!

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/510058.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kubernetes-dashboard 安装配置

k8s 1.23以上的版本 https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 执行命令: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 安装完成后&#x…

[问题记录] oracle问题汇总记录

plsql问题 1、oracle-initialization error could not locate OCI.dll 下载plsql客户端后,登录显示如图所示的错误 解决方法,点击下方链接,下载64位客户端 Instant Client for Microsoft Windows (x64) 64-bit (oracle.com) 2、显示中文乱…

百度语音识别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、建号—获取试用KEY二、测试代码三、运行四、运行结果五、验证五、总结 一、建号—获取试用KEY https://console.bce.baidu.com/ai/#/ai/speech/overview/index…

【Spring】SpringBoot整合MybatisPlus的基本应用

📝个人主页:哈__ 期待您的关注 一、MybatisPlus简介 先来看一下官方的简介吧。 MyBatis-Plus (简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。Myb…

Adaboost集成学习 | Matlab实现基于GRU-Adaboost门控循环单元结合Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Adaboost集成学习 | Matlab实现基于GRU-Adaboost门控循环单元结合Adaboost集成学习时间序列预测(股票价格预测) 模型设计 股票价格预测是一个具有挑战性的时间序列预测问题,可以使用深度学习模型如门控循环…

基于LSB(最低有效位)的图像水印算法,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

学习使用echats因xAxis值过多,可以滚动的柱状图解决方案

学习使用echats因xAxis值过多,可以滚动的柱状图解决方案 效果图柱状图代码关键代码 效果图 柱状图代码 function echarts() {// 基于准备好的dom,初始化echarts实例var myChart echarts.init(document.getElementById(echart4));let xaxisData [1, 2,…

数据库 06-01 事务

01.定义 02.性质 03.简单事务模型 例子:

数据采集工具如何使用呢?那么设置数据采集的方法又是什么呢?

数据采集工具将能够非常有效地解决面临的各种问题。这款工具被设计成一种自动化数据采集工具,特别适用于对日志文件数据的采集。一旦完成设置,该工具将在后台实时进行数据采集,并自动对收集到的数据进行清洗,以确保最终保存到的数…

zIO: Accelerating IO-Intensive Applications with Transparent Zero-Copy IO——论文泛读

OSDI 2022 Paper 论文阅读笔记整理 问题 零拷贝IO一直是一个长期的性能目标。复制会引入内存和CPU开销,限制IO密集型应用程序的性能。IO数据复制在IO堆栈内、通过其应用程序编程接口(API)和应用程序内执行。现有工作的重点是开发零拷贝IO A…

紫光展锐P7885核心板详细参数介绍_5G安卓智能模块开发方案

紫光展锐P7885核心板采用了先进的6nm EUV制程工艺,集成了高性能的应用处理器和金融级安全解决方案,为用户带来了全新的性能体验。 P7885核心板搭载了先进的6nm制程工艺SoC P7885,其中包含四核A76和四核A55,主频可达2.7Ghz&#xf…

MySQL-linux安装-万能RPM法

一、MySQL的Linux版安装 1、 CentOS7下检查MySQL依赖 1. 检查/tmp临时目录权限(必不可少) 由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执行 : chmod -R 777 /tmp2. …

spring boot3登录开发-3(2短信验证登录/注册逻辑实现)

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 上文衔接 内容简介 功能分析 短信验证登录实现 1.创建交互对象 用户短信登录/注册DTO 创建用户登录VO…

Linux利用Jenkins部署SpringBoot项目保姆级教程

在当今快速发展的软件开发领域,持续集成和持续部署(CI/CD)已经成为提升开发效率、缩短产品上市时间的关键实践。Linux系统以其稳定性和开源友好性,成为众多开发者和企业的首选平台。而Spring Boot,作为一个轻量级的Jav…

【论文笔记】Text2QR

论文:Text2QR: Harmonizing Aesthetic Customization and Scanning Robustness for Text-Guided QR Code Generation Abstract 二维码通常包含很多信息但看起来并不美观。stable diffusion的出现让平衡扫描鲁棒性和美观变为可能。 为了保证美观二维码的稳定生成&a…

STM32FATFS(未完待续)

注意,本博客适合像我一样的小白,会的不多,但是想快速做些东西,不适合会写驱动的大佬。另外,示例代码中的注释有误(从多个项目中移植过来的,未做更改),请不要被误导&#…

ICLR 2024 | 鸡生蛋蛋生鸡?再论生成数据能否帮助模型训练

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 发布在https://it.weoknow.com 更多资源欢迎关注 随着生成模型(如 ChatGPT、扩散模型)飞速发展&#x…

【详细讲解语言模型的原理、实战与评估】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

《2023网络安全行业薪资发展趋势报告》.pdf

《2023网络安全行业薪资发展趋势报告》.pdf 前段时间看到了一份网络安全的最新数据,反映了2023年截至目前的网络安全行业,以及网络安全人才的发展情况。 前段时间忙着赶项目一直没时间,今天终于有空和你唠嗑了。 很多网工小白对安全的向往…

基于DCT(离散余弦变换)的图像水印算法,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…