Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >测试开发:是测试还是开发?

测试开发:是测试还是开发?

作者头像
DevOps持续交付
发布于 2023-12-06 10:35:18
发布于 2023-12-06 10:35:18
1.1K0
举报
文章被收录于专栏:DevOps持续交付DevOps持续交付

软件工程中,测试和开发是两个核心的环节。这两个环节相互依赖,相互影响,构成了软件产品的整个生命周期。然而,在近年来,随着敏捷开发持续集成、持续交付等先进开发模式的普及,一个新的角色——测试开发工程师,逐渐进入了我们的视野。他们的工作似乎同时涉及到了测试和开发两个领域,那么,测试开发是测试还是开发呢?

一、从历史背景看测试开发的起源

在传统的软件开发过程中,开发和测试往往是分开的。开发人员负责编写代码,完成功能实现,而测试人员则负责对开发人员提交的代码进行测试,确保其质量和稳定性。这种模式虽然可以保证软件产品的质量,但测试环节和开发环节的割裂往往会导致效率低下,且可能出现沟通不畅、反馈不及时等问题。

为了解决这个问题,一些公司开始尝试将测试环节和开发环节结合起来。测试人员不再是单纯地对开发人员提交的代码进行测试,而是参与到整个开发过程中,与开发人员一起协作,共同保证软件产品的质量。这个过程中,测试人员不仅要进行传统的测试工作,还要进行一些开发工作,如编写测试脚本、搭建测试环境等。这就是测试开发的起源。

二、从工作内容看测试开发的性质

从上述描述中,我们可以看到,测试开发的工作内容既包括测试,也包括开发。具体来说,测试开发工程师的工作包括:

1. 编写测试计划和测试用例:这是测试环节的核心工作。测试开发工程师需要根据产品需求和用户故事,编写详细的测试计划和测试用例,确保软件产品的功能和性能符合预期。

2. 执行测试用例:在编写完测试用例后,测试开发工程师需要执行这些用例,对软件产品进行实际的测试。在这个过程中,他们需要使用各种工具和技术,如自动化测试工具性能测试工具等。

3. 调试和修复问题:当测试过程中发现问题和错误时,测试开发工程师需要与开发人员一起协作,调试和修复这些问题。这个过程中,他们可能需要查看日志、分析代码、修改代码等。

4. 编写和维护测试代码:为了提高测试效率和质量,测试开发工程师需要编写和维护测试代码。这些代码可以是自动化测试脚本、性能测试脚本等。

5. 搭建和维护测试环境:为了确保测试的准确性和可靠性,测试开发工程师需要搭建和维护一个稳定的、可靠的测试环境。这个环境需要包括各种硬件、软件和网络设备。

三、从技能要求看测试开发的定位

从工作内容可以看出,测试开发工程师需要具备多种技能。他们既需要了解软件测试的理论和实践,也需要掌握一定的软件开发技能。具体来说,一个优秀的测试开发工程师应该具备以下技能:

1. 软件测试理论和实践:这是最基本的技能。他们需要了解各种软件测试的方法和技术,如黑盒测试白盒测试、灰盒测试等。同时,他们也需要掌握各种测试工具的使用方法,如Junit、Selenium等。

2. 软件开发技能:虽然测试开发工程师的主要工作是测试,但他们的很多工作都需要涉及到软件开发。因此,他们需要具备一定的软件开发技能,如Java编程、Python编程等。

3. 系统架构和设计:为了更好地进行测试,测试开发工程师需要了解系统架构和设计。他们需要了解系统的各个模块、组件之间的关系和交互方式。

4. 数据库操作和维护:在很多情况下,软件产品的数据存储和管理都需要依赖于数据库。因此,测试开发工程师需要了解数据库的基本操作和维护方法。

四、从发展趋势看测试开发的前景

随着软件工程的发展和技术的不断进步,测试开发的前景也日益广阔。以下是一些可能的发展趋势:

1. 测试开发工程师的角色将更加重要:随着敏捷开发、持续集成、持续交付等先进开发模式的普及,测试开发工程师的角色将变得更加重要。他们将需要与开发人员更加紧密地协作,确保软件产品的质量和稳定性。

2. 自动化测试将更加普及:随着技术的发展,自动化测试将成为主流。测试开发工程师需要编写各种测试脚本和工具,以自动化地执行测试用例,提高测试效率和质量。

3. 测试工具将更加智能化:未来的测试工具将更加智能化,能够自动识别和修复问题。这将使测试开发工程师的工作更加高效和准确。

4. 测试与开发将更加融合:未来的软件开发过程中,测试和开发将更加融合。测试开发工程师将需要参与到整个开发过程中,与开发人员一起协作,共同保证软件产品的质量。

总之,测试开发是一种融合了测试和开发的全新角色。它既涉及到传统的测试工作,也涉及到一些开发工作。随着软件工程的发展和技术的不断进步,测试开发的前景也日益广阔。未来,测试开发工程师的角色将更加重要,自动化测试将更加普及,测试工具将更加智能化,测试与开发将更加融合。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps持续交付 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
揭开Spark Streaming神秘面纱③ - 动态生成 job
JobScheduler有两个重要成员,一是上文介绍的 ReceiverTracker,负责分发 receivers 及源源不断地接收数据;二是本文将要介绍的 JobGenerator,负责定时的生成 jobs 并 checkpoint。
codingforfun
2018/08/24
3750
揭开Spark Streaming神秘面纱③ - 动态生成 job
为啥spark 的broadcast要用单例模式
很多用Spark Streaming 的朋友应该使用过broadcast,大多数情况下广播变量都是以单例模式声明的有没有粉丝想过为什么?浪尖在这里帮大家分析一下,有以下几个原因:
Spark学习技巧
2019/06/18
1.1K0
为啥spark 的broadcast要用单例模式
Spark Streaming 数据清理机制
为啥要了解机制呢?这就好比JVM的垃圾回收,虽然JVM的垃圾回收已经巨牛了,但是依然会遇到很多和它相关的case导致系统运行不正常。
用户2936994
2018/08/27
1.2K0
Spark源码系列(八)Spark Streaming实例分析
这一章要讲Spark Streaming,讲之前首先回顾下它的用法,具体用法请参照《Spark Streaming编程指南》。 Example代码分析 val ssc = new StreamingContext(sparkConf, Seconds(1)); // 获得一个DStream负责连接 监听端口:地址 val lines = ssc.socketTextStream(serverIP, serverPort); // 对每一行数据执行Split操作 val words = lines.flatM
岑玉海
2018/02/28
8500
Spark Streaming性能优化: 如何在生产环境下动态应对流数据峰值
默认情况下,Spark Streaming通过Receiver以生产者生产数据的速率接收数据,计算过程中会出现batch processing time > batch interval的情况,其中batch processing time 为实际计算一个批次花费时间, batch interval为Streaming应用设置的批处理间隔。这意味着Spark Streaming的数据接收速率高于Spark从队列中移除数据的速率,也就是数据处理能力低,在设置间隔内不能完全处理当前接收速率接收的数据。如果这种情况持续过长的时间,会造成数据在内存中堆积,导致Receiver所在Executor内存溢出等问题(如果设置StorageLevel包含disk, 则内存存放不下的数据会溢写至disk, 加大延迟)。Spark 1.5以前版本,用户如果要限制Receiver的数据接收速率,可以通过设置静态配制参数“spark.streaming.receiver.maxRate ”的值来实现,此举虽然可以通过限制接收速率,来适配当前的处理能力,防止内存溢出,但也会引入其它问题。比如:producer数据生产高于maxRate,当前集群处理能力也高于maxRate,这就会造成资源利用率下降等问题。为了更好的协调数据接收速率与资源处理能力,Spark Streaming 从v1.5开始引入反压机制(back-pressure),通过动态控制数据接收速率来适配集群数据处理能力。
王知无-import_bigdata
2020/11/24
8540
Spark Streaming性能优化: 如何在生产环境下动态应对流数据峰值
【容错篇】WAL在Spark Streaming中的应用【容错篇】WAL在Spark Streaming中的应用
WAL 即 write ahead log(预写日志),是在 1.2 版本中就添加的特性。作用就是,将数据通过日志的方式写到可靠的存储,比如 HDFS、s3,在 driver 或 worker failure 时可以从在可靠存储上的日志文件恢复数据。WAL 在 driver 端和 executor 端都有应用。我们分别来介绍。
codingforfun
2018/08/24
1.3K0
【容错篇】WAL在Spark Streaming中的应用【容错篇】WAL在Spark Streaming中的应用
spark-streaming的checkpoint机制源码分析
转发请注明原创地址 http://www.cnblogs.com/dongxiao-yang/p/7994357.html
sanmutongzi
2020/03/04
8040
Spark Streaming 误用.transform(func)函数导致的问题解析
特定情况你会发现UI 的Storage标签上有很多新的Cache RDD,然后你以为是Cache RDD 不被释放,但是通过Spark Streaming 数据清理机制分析我们可以排除这个问题。
用户2936994
2018/08/27
4670
[spark streaming] ReceiverTracker 数据产生与存储
在Spark Streaming里,总体负责任务的动态调度是JobScheduler,而JobScheduler有两个很重要的成员:JobGenerator 和 ReceiverTracker。JobGenerator 负责将每个 batch 生成具体的 RDD DAG ,而ReceiverTracker负责数据的来源。
UFO
2018/08/29
6510
Spark源码解析:DStream
0x00 前言 本篇是Spark源码解析的第二篇,主要通过源码分析Spark Streaming设计中最重要的一个概念——DStream。 本篇主要来分析Spark Streaming中的Dstream,重要性不必多讲,明白了Spark这个几个数据结构,容易对Spark有一个整体的把握。 和RDD那篇文章类似,虽说是分析Dstream,但是整篇文章会围绕着一个具体的例子来展开。算是对Spark Streaming源码的一个概览。 文章结构 Spark Streaming的一些概念,主要和Dstream
木东居士
2018/05/25
9290
[spark streaming] DStream 和 DStreamGraph 解析
Spark Streaming 是基于Spark Core将流式计算分解成一系列的小批处理任务来执行。
UFO
2018/08/29
7360
揭开Spark Streaming神秘面纱④ - job 的提交与执行
前文揭开Spark Streaming神秘面纱③ - 动态生成 job 我们分析了 JobScheduler 是如何动态为每个 batch生成 jobs,本文将说明这些生成的 jobs 是如何被提交的。
codingforfun
2018/08/24
4590
Spark Streaming | Spark,从入门到精通
欢迎阅读美图数据技术团队的「Spark,从入门到精通」系列文章,本系列文章将由浅入深为大家介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你,欢迎大家持续关注:)
美图数据技术团队
2018/09/18
1.1K0
Spark Streaming | Spark,从入门到精通
揭开Spark Streaming神秘面纱⑥ - Spark Streaming结合 Kafka 两种不同的数据接收方式比较
DirectKafkaInputDStream 只在 driver 端接收数据,所以继承了 InputDStream,是没有 receivers 的
codingforfun
2018/08/24
8300
揭开Spark Streaming神秘面纱⑥ - Spark Streaming结合 Kafka 两种不同的数据接收方式比较
揭开Spark Streaming神秘面纱② - ReceiverTracker 与数据导入
只需在 driver 端接收数据的 input stream 一般比较简单且在生产环境中使用的比较少,本文不作分析,只分析继承了 ReceiverInputDStream 的 input stream 是如何导入数据的。
codingforfun
2018/08/24
2800
揭开Spark Streaming神秘面纱② - ReceiverTracker 与数据导入
【容错篇】Spark Streaming的还原药水——Checkpoint
一个 Streaming Application 往往需要7*24不间断的跑,所以需要有抵御意外的能力(比如机器或者系统挂掉,JVM crash等)。为了让这成为可能,Spark Streaming需要 checkpoint 足够多信息至一个具有容错设计的存储系统才能让 Application 从失败中恢复。Spark Streaming 会 checkpoint 两种类型的数据。
codingforfun
2018/08/24
5920
【容错篇】Spark Streaming的还原药水——Checkpoint
SparkStreaming源码阅读思路
SparkStreaming的DirectAPI源码阅读思路 Spark Streaming的流式处理,尤其和kafka的集合,应该是企业应用的关键技术点,作为spark学习和工作者,要熟练的掌握其中原理,精读源码,才能更好的完成任务和相关工调优工作内容。对其原理简介,浪尖不啰嗦,请看前面的文章《聊聊流式批处理》。在这里浪尖主要介绍,Spark Streaming源码阅读时的注意事项及关注点,只有牢牢把握这几点,才能更好的使用Spark Streaming。 阅读源码谨记的点 对于SparkStreamin
Spark学习技巧
2018/06/22
5670
[spark streaming] 状态管理 updateStateByKey&mapWithState
SparkStreaming 7*24 小时不间断的运行,有时需要管理一些状态,比如wordCount,每个batch的数据不是独立的而是需要累加的,这时就需要sparkStreaming来维护一些状态,目前有两种方案updateStateByKey&mapWithState,mapWithState是spark1.6新加入的保存状态的方案,官方声称有10倍性能提升。
UFO
2018/08/29
1.2K0
sparkstreaming的状态计算-updateStateByKey源码
转发请注明原创地址:https://www.cnblogs.com/dongxiao-yang/p/11358781.html
sanmutongzi
2020/03/04
4320
Spark ListenerBus 和 MetricsSystem 体系分析
监控是一个大系统完成后最重要的一部分。Spark整个系统运行情况是由ListenerBus以及MetricsSystem 来完成的。这篇文章重点分析他们之间的工作机制以及如何通过这两个系统完成更多的指标收集。
用户2936994
2018/08/27
7540
推荐阅读
相关推荐
揭开Spark Streaming神秘面纱③ - 动态生成 job
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档