测试八年|对业务测试人员的一些思考

简介: 本文分享了作者测试八年间对工作的一些思考,希望为业务测试同学提供一些有价值的思路。

自从事测试工作八年多以来,经历过三个部门多条业务线,也经历过测试转型再回到测试,在此过程中对测试工作和角色的认知也逐步有些思考,想把这些思考分享给大家,希望为业务测试同学提供一些有价值的思路。


一、质量保障的本质是什么

质量保障有很多工作,如发布前对业务需求的功能测试、性能测试、a/b test等,如发布后对线上的功能回归、冒烟巡检、异常监控等,我们做这些工作都围绕着“缺陷发现”,尽可能去发现系统潜在的bug,这似乎就是质量保障的所有内容和目的,但是可以跳出这些具体的工作内容,质量保障的本质到底是什么?我认为质量保障的本质:

  • 是一个尽力穷尽各种手段,不断去“证伪”的过程;
  • 是一个在有限条件和时间内,尽力将线上发生问题/故障的概率降低到最小的过程;
  • 是一个站在风险控制的角色上,尽力提前发现/披露所有质量隐患的过程,并将出现质量问题的损失降低到最小的过程;

总结:质量保障的追求不是发现所有的bug、解决所有的风险,而是确保即使触发了bug也不会带来恶劣的影响,在此基础上力求去发现尽可能多的bug  -> bug 触发概率降到尽可能低 -> 触发bug后带来的损失降到尽可能小


二、测试过程的本质是什么

一线业务测试人员的大部分工作都在支撑业务的交付,从理解prd和技术方案,到给出测试方案,执行测试方案、发现bug、验证bug再到发布后的回归验证,这是一个业务测试人员的大部分工作模式和流程,那么这个过程的本质是什么?我的理解是这一个词“ROI”。测试过程的本质是努力寻找质量缺陷发现与资源投入的平衡点,这里的资源投入不单指测试的资源投入,而是指业务交付上所有参与者的资源投入,所以在一定程度上是可以或者说是需要牺牲长尾缺陷的,我们的追求也应该是不断去提高这个ROI,同时做好线上风险防控。



三、测试角色的价值

回答这个问题之前,我们需要先理清以下几个问题:

1)测试角色的价值由什么决定?受什么影响?

  • 取决于业务特性对质量的需求不同的业务特性对质量的诉求不同,这取决于业务的用户群体和规模、业务的金融风险、业务迭代导致出问题的概率和影响面等因素。
  • 取决于业务发展状态、技术架构成熟度一般来说,当一个业务处于刚起步、高速发展时,技术由于需要快速满足业务的需求,架构设计乱、基础建设差,此时质量问题较多,也就强依赖测试角色来做强力保障,而后随着业务稳定、技术基建完善、线上保障手段丰富,会在一定程度上减少对测试角色的依赖。

2)测试这一工作是否可以转移/测试角色是否可以省略?可/需转移的决定因素是什么?

首先答案是肯定的,可以转移或者省略,虽然不一定是好的选择~

  • 业务对质量的诉求业务的特性或者发展到一定程度,减弱对质量保障活动的需求。
  • 线上风险的可控性业务和技术成熟稳定,有比较可靠的线上风险控制能力。
  • 质量活动的成本在业务能够承受一定质量风险的前提下,质量保障活动的成本需要降低,并且转移的成本比维持现状要低。

3)如何体现测试角色的价值?

反向思考:今天这个业务如果没有测试角色,会怎么样?业务会跑得更快更好吗?我们站在测试角色上,可以反思:

  • 测试能力:
  • 对所负责业务是否足够熟悉,是否能站在独特视角【区别于产研】来提出质量风险?
  • 是否拥有一定的技术壁垒和门槛,是否可以被高级外包/研发替代?
  • 测试应尽之责是否做到位并且获得良好反馈,测试的职责范围是否有扩展到“测试过程”之外的领域?
  • 交付效率:
  • 在业务需求繁重且紧迫情况下,测试是在起正向作用还是负向作用?
  • 交付遇到阻塞问题或者困难时,测试起到什么作用?


综上所述,测试角色的价值:

a.业务发展需要测试角色,进行质量保障活动来降低质量风险 【客观】

b.组织在成本范围内,可以组建并维持测试角色 【客观】

c.测试角色可以用高ROI完成质量保障活动,并具备较高成本的不可替代性 【主观】因此我们只能通过以下两个方向来提升测试价值的传输与外化:

  • 提升ROI:以极致高的效率来发现缺陷,用高效的手段来证伪
  • 在成本控制前提下,对质量贡献是正向的;
  • 在交付周期内,对效率提升是正向的;
  • 提升可替代的成本:不断变革先进生产力,努力转化生产关系
  • 努力将测试的职责扩大;
  • 不断研发新技术、新手段,提高技术壁垒;
  • 与业务发展强绑定,力争成为业务不可或缺的生产力;


以上三个问题是对测试工作的一些思考,那么对于我们一线业务测试人员应该具备哪些能力,才能够去提升我们角色的价值?以下是我对三个层次测试人员的理解,可以分别从业务熟练度、测试方案与风险控制能力、合作协调能力、技术能力这四个维度去对照:

一个合格的业务测试人员应该具备哪些能力 【熟练度 完成度】

a.对所负责的业务线,产品业务逻辑和技术实现细节非常熟悉;

b.对日常测试流程及方案,熟悉并能顺利完成,能够主动解决卡点问题;

c.有一定的风险把控意识;

d.能与各方合作协调,顺利推动需求交付;

一个优秀的业务测试人员应该具备哪些能力 【owner意识 合作共赢】

a.具备业务owner视角和意识,能提出质量风险并给出建议;

b.能承担较复杂项目的测试一号位角色,能制定合理的质量保障方案;

c.能从全链路视野去提前预警风险;

d.能与各方协调合作良好,通过技术手段有效解决和减少交付过程中的卡点问题;

一个卓越的业务测试人员应该具备哪些能力【把控力 创新力 影响力】

a.打破思维局限和业务壁垒,能对业务所涉及的全链路通盘熟悉、风险把控;

b.能根据业务特性和质量风险短板,制定并落地合理化的质量保障体系化方案;

c.能更多承担除“测试过程”以外的质量保障工作,如大促稳定性保障、线上问题发现与处理等;

d.能跨团队、跨部门高效协作,有更多的“利他”思维,能通过创新型手段解决全链路题,并建立技术影响力;


以上是我对测试工作和角色的一些思考沉淀,希望对大家有所帮助,并能够驱动大家在工作中不断思考:

1.我当前负责的业务,对我的依赖程度有多大?具体是在哪些方面依赖我?

2.我测了10个、100个、1000个业务需求的差异是什么,对业务及对我自身的提升是什么?

3.我作为业务测试角色的核心竞争力是什么、有多大?


来源|阿里云开发者公众号

作者|梓越

相关文章
|
27天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
55 3
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
71 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
255 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
267 3
快速上手|HTTP 接口功能自动化测试
|
3月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
54 5
|
2月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
41 0
|
4月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~