你对测试开发是否有误解

简介: 你对测试开发是否有误解

640.jpg

群里经常有人在讨论一个问题,“我会利用某某框架写自动化测试脚本,算不算是测试开发了呢?在面试的时候,这项技能是否有较大的加分?”。自己从事多年的测试开发,对测开有一定的了解,再结合业内的普遍经验来看,只能说,会利用某个框架写几个自动化脚本,算不上什么测开。通常,这项技能会归结到业务测试团队。

测开与开发的区别

640.png


上图是个人总结的开发与测开的异同(欢迎一起讨论):

  1. 服务对象不一样:通常情况下,开发人员对面的是具体业务需求,是在有明确研发目标的情况下进行研发活动,在敏捷的环境下,这点更为明显,因为可被研发的需求一定是个清晰的“故事”。而测试开发,则更多的需要自己从当前测试团队中,去寻找测试活动、测试流程中的痛点,并加以改进。产出物可以是个小工具,可以是某个框架的定制化开发,也可以是多个平台的集成。
  2. 验收标准不一样:开发在实现具体的业务需求时,除了满足功能性要求外,还需要满足各类非功能性需求(性能、操作性、安全性等等),而测开的产出物更多的只是在团队内部使用,对于性能和操作性,甚至于UI都不会有太高的要求,主要以解决实际问题为主(当然能同时兼顾到这些更好)。
  3. 测开与开发的相同点:就是对代码能力的要求是一样的。至少要熟悉某个语言(JAVA,Python都可以,不应该有语言鄙视链存在),同时熟悉这个研发语言中的某些常用框架 (Spring全家桶,Django,各类中间件如MQ、Redis及常用数据库如Mysql),需要具备一定的研发思维,把业务转换成代码并加以实现。

**注:在当下,具备DevOps知识和能力,会是一个较大的加分项,但是越往后,这项技能就是越普及,终将变成一项基本能力,还不具备的同学要加油了哟。

测开的能力要求

640.png


     具体到团队中,对于测开的能力要求,我简单的划分为以下三类(欢迎拍砖):

入门级:

  1. 熟悉几款常用的测试框架,如接口测试用到的Junit,Pytest等,性能测试用到的Jmeter,Locust等,基于UI的Selenium,Airtest等
  2. 进一步的,能够针对这些框架,结合团队的具体业务需求,进行简单的二次开发,例如改改报告格式,增加点输出和特定函数等

从团队建设的角度看,这类技能一般会让测试团队内的谁对代码兴趣并能持之以恒的学习,就可以让他去尝试做这类工作。

提升级:

  1. 了解不同框架的特性,能够结合不同项目的实际情况,做具体的选型(例如,团队如果普遍代码能力较差,用Jmeter做接口也不是不可以接受。如果被测试系统用的是JAVA框架,引入Junit要比Pytest合适的多)
  2. 能够对框架进行重构,以便更好的使用或者更符合业务需求。能够把这些框架集成到其它平台,让其它平台能够快速调用并执行测试用例。
  3. 能够洞察测试活动中的真实痛点,并给出解决方案。当你具备了这个能力,才能胜任一个测试开发应该有的责任,否则和开发的区别并不大,又或者只是一个有一定代码能力的测试人员。对团队的重要性并没有那么大。

进阶级:

  1. 能够从全局观察测试活动,发现团队存在的共性问题,并提出自己的解决方案并加以落地。
  2. 从效能的角度提升团队的测试质量和效率。个人认为,这个是高阶测试开发的核心竞争力。这个时候,测试开发应该关注的是如何提升整个测试团队的效能,同时能够打通研发侧,协助开发一起提升研发效能。
  3. 需要向业内优秀的团队学习最新的技术实践,现在新的测试技术层出不穷,迭代速度也很快。不能固步自封,只满足于现状。要关注业内技术的发展,但不要盲目的引入到团队中,因为很多时候,你的团队并不具备相对应的能力。



  这里有一个很有趣的说法:我不懂技术,但是我熟悉业务,能不能招个能力强的开发,一起合作?在某种程度上讲,这个有点自欺欺人。因为大多数情况下,你的表达并不会比专业的产品经理强。产品经理和开发会吵到什么程度你又不是不清楚,对吧。所以,做为测试人员,沉下心来,学习学习代码,并在实际的业务场景中去落地,比什么都强。代码能力已经成为测试人员的一项基本能力了。如果你一窍不通,测试之路将很难再往下走了。




当下的测试环境已经发生了很大的变化,DevOps理念被越来越多的团队所接受,越来越多的团队在实践DevOps相关内容,测试团队一直在被弱化。但是,测试职能却一直在提升,不管是需求侧的DOD,还是研发侧的TDD,DDD,都在强调可测试性,强调质量保证。所以,如何在敏捷研发中突显测试职能的价值,成为了全体测试人员都应该思考的一个话题。在当下的大环境中,测试活动如何改善整体的研发效能,有效的缩短反馈路径,成为了大家共同追求的目标。

在测试的职业发展道路上,还有一个职能是测试架构。对于测试架构师而言,他需要的是“端到端”的测试把控:

在需求侧,他需要去了解产品的商业目标,去梳理用户的使用场景,输出产品的整体测试策略。

在研发侧,他能够与研发架构师一起面对面沟通,保证研发过程的可测试性,了解技术选型的前因后果,有针对的了解所选技术架构的常见问题并加以提醒,减少在项目研发初期就埋下的“雷”

在测试侧,需要能够做更好、更有效的测试策略,协助团队尽早的开展测试活动,解决他们遇到的问题,有效的平衡测试效能

在运维侧,协助完成产品的上线,并做好线上监控,尽早、尽快的发现问题,减少损失。

如果大家对测试架构师想要了解更多,可以在《测试架构师修炼之道》中找到更多的答案。这本书非常推荐测试人员去看看,去学习。

相关文章
|
安全 JavaScript 前端开发
JDK1.8的重要的新特性与功能
Java Development Kit (JDK) 1.8,也称为Java 8,是Java平台的一个重大更新,于2014年3月发布。它引入了多项新特性、新的API和性能提升
1299 3
|
10月前
|
机器学习/深度学习 传感器 编解码
全球降水测量 全球降水测量(GPM)07 版
全球降水测量(GPM)07版是由NASA和JAXA合作的国际卫星任务,提供每三小时一次的全球雨雪观测数据。该数据集使用IMERG算法整合多颗卫星的微波和红外数据,提供高精度的降水量估算。GPM 07版涵盖2000年6月至2025年1月的数据,适用于气象预报、洪水预警等领域。数据以二进制格式提供,分辨率约为11公里,时间分辨率为半小时。NASA免费提供这些数据供公众使用。
525 22
|
机器学习/深度学习 数据采集 人工智能
探索AI驱动的自动化测试新纪元###
本文旨在探讨人工智能如何革新软件测试领域,通过AI技术提升测试效率、精准度和覆盖范围。在智能算法的支持下,自动化测试不再局限于简单的脚本回放,而是能够模拟复杂场景、预测潜在缺陷,并实现自我学习与优化。我们正步入一个测试更加主动、灵活且高效的新时代,本文将深入剖析这一变革的核心驱动力及其对未来软件开发的影响。 ###
|
SQL 算法 Java
快出数量级的性能是怎样炼成的
我们通过使用开源 SPL 重写了多个金融行业的 SQL 任务,实现了显著的性能提升,如保险公司团保明细单查询提速 2000+ 倍、银行 POS 机交易报表提速 30+ 倍等。这些优化的核心在于使用了更低复杂度的算法,而非依赖硬件加速。SPL 基于离散数据集理论,提供了丰富的高性能算法,使得复杂任务的优化成为可能。更多案例和详细技术解析可参见乾学院的相关课程和图书。
|
编解码 前端开发 Android开发
Android经典实战之TextureView原理和高级用法
本文介绍了 `TextureView` 的原理和特点,包括其硬件加速渲染的优势及与其他视图叠加使用的灵活性,并提供了视频播放和自定义绘制的示例代码。通过合理管理生命周期和资源,`TextureView` 可实现高效流畅的图形和视频渲染。
881 12
|
机器学习/深度学习 API 算法框架/工具
【Tensorflow+keras】Keras API三种搭建神经网络的方式及以mnist举例实现
使用Keras API构建神经网络的三种方法:使用Sequential模型、使用函数式API以及通过继承Model类来自定义模型,并提供了基于MNIST数据集的示例代码。
216 12
|
消息中间件 监控 Ubuntu
RabbitMQ安装配置,超详细版教程
以上步骤为您提供了在Linux环境下安装RabbitMQ的详细过程。安装Erlang作为基础,然后通过添加官方源并安装RabbitMQ本身,最后对服务进行配置并启用Web管理界面。这些步骤操作简单直观,只需要跟随上述指南,即可在短时间内将RabbitMQ服务器运行起来,并进行进一步的配置和管理。不要忘记硬件和网络资源对性能的影响,确保RabbitMQ能够满足您的应用需求。
1159 0
|
算法 测试技术 开发者
测试驱动开发(TDD)实战:从理论到实践
【5月更文挑战第8天】TDD实战指南:先测试后开发,确保代码质量与可维护性。核心思想是编写测试用例→实现代码→验证→重构。优点包括提高代码质量、促进设计思考和增强可测试性。实战步骤包括编写独立、明确的测试用例,遵循最小可用原则编写代码,运行测试并分析失败原因,以及在验证通过后进行代码重构与优化。通过TDD,开发者能提升编程技能和项目成功率。
|
Linux Shell 网络安全
Linux 命令 `clear` 详解
了解 Linux 的 `clear` 命令,用于清除终端屏幕,保持整洁。只需输入 `clear` 或使用 `Ctrl + L` 快捷键,也可尝试 `reset` 命令和 `printf "\033c"`。注意,`clear` 不会删除历史数据,仅清空屏幕显示。这个命令能提升终端使用体验和工作效率。
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
980 1