如何提高测试过程效率?

news/2024/12/20 12:34:33/文章来源:https://www.cnblogs.com/imyalost/p/18619049

前几天写了一篇文章,分享了一些工作汇报的方法和案例,详情见《如何编写年度工作汇报PPT》。

后台有同学留言,对质量度量和测试提效部分提了几个问题,核心集中在如何提高测试过程效率方面。

我在前面写过几篇关于测试提效的文章,分别聊到了影响测试效率的因素,测试团队要提效面临的挑战,以及提高测试过程效率的一些思路和方法。

有的同学说在不同的公司和团队,项目不同,要解决的具体问题也不一样。诚然,这是客观现实,但剥离业务细节和人的因素之外,本质是没有太多区别的。

关于解决问题,我一向提倡的方式是,先摆正认知捋清思路,再解决问题。否则只想着用别人解决问题的案例套用自己的项目,最终的结果大多不会太好。

回到正题,这篇文章继续聊聊如何提高测试过程效率。

 

影响效率的主客观因素

首先,要提高测试过程效率,需要先找到影响效率的因素,这是达成工作目标所必然面临的挑战

从软件工程的角度来说,影响质量的三要素是范围、时间和成本。

范围、成本、时间也可以称之为不可能三角,即三者之间是互相制约的关系,我们最多只能追求其中两点。

所谓的提升效率,换言之就是提升单位时间内的人均产出,或者降低单位时间内的人均损耗(成本),再或者在产出固定的情况下降低工作所耗费的时间(时间)。

从质量保障的角度来说,提升测试过程效率也可以理解为:在尽可能降低成本投入的前提下,提升生产效率,并保障最终交付质量在水准线之上

这里有个前提就是交付质量是不能降低的。以上图为例,我们可以得到如下几点提升效率要面临的挑战:

  • 假设范围不变,提升效率意味着要增加成本投入;
  • 假设成本不变,提升效率意味着要缩小需求范围;
  • 假设时间不变,提升效率意味着要牺牲交付质量;

综合这三点挑战,我们可以得到一个结论:在保证交付质量不变的前提下,要达到提效的目标,需要在范围、时间、成本这三者之间找到一个平衡点,并根据具体情况动态调整优先级和资源配置。

聊完客观因素,再来聊聊影响效率的主观因素。

在日常项目研发交付过程中,最常见的影响效率的因素有这几点:需求频发变更、代码质量差频繁返工、测试方案考虑不足测试手段匮乏(比如测试执行过程纯手工执行)。

这几点因素又会导致一个新的问题:频繁沟通带来的信息同步问题,以及从信息同步到落地执行之间的时间损耗。

 

提升测试过程效率的方法

对测试同学来说,质量是团队的安全线,也是最高目标。在保障交付质量的前提下达到提升的目标,我个人认为可以分为短期和长期两个阶段来开展实践。

短期改进

如上面的内容所述,成本和效率是互相制约的。要达到提效的目标,短期要做的改进大概分为如下几个方面:

  • 度量:要达到提效的目标,首先要有一个对比,即首先要知道当前的成本投入和效率是多少,识别其中的低效率和高成本环节,然后才能制定对应的改进方案。这也是为什么近几年所谓的质量度量、研发效能度量很火热的原因之一。当然,度量的结果只是作为一个评估当前状况的参考值,仅对后续的改进方法提供参考,但绝不是唯一指标
  • 工具:要想短期内提升效率,一个不是捷径的捷径就是改善工具。比如以前接口测试都是手动执行,提升效率则可以采用自动化的方式;以前准备测试数据都是手动写SQL去一条一条插入数据,提升效率则可以考虑流量录制或者通过存储过程的方式去预埋数据,这样效率也会提高。当然,工具的优化势必意味着需要投入一定的额外成本,短期内成本也会上升,但长期来说,工具改善后带来的效率提升是更高的。
  • 轮子:造轮子这件事大家都懂的,毕竟事关KPI和向上管理。但团队大了,轮子多了,其实就是一种功能重叠和额外的资源浪费。造轮子需要投入资源,维护轮子需要资源,且很多轮子在功能上是重叠的。因此短期内要降低成本,砍掉重复的轮子就是一种很现实的方案。当然,砍哪些轮子,如何整合资源,需要评估分析。

长期投入

除了短期见效的一些方法,提效更多的是一个长期投入持续迭代优化的过程。以一个版本迭代为时间周期,低效且高成本的环节,最常见的有如下几种情况:

  • 需求不明确、需求频繁变更、临时插入需求;
  • 提测质量差、编译打包失败、服务发布报错;
  • 服务经常挂、服务频繁发布、测试数据不可用;
  • 大量的会议、沟通确认信息、跨部门资源协调;

在日常工作中,其实真正的编码和测试所耗费的时间并不多,更多的时间耗费在了确认需求、需求变更带来的返工、服务报错排查定位、准备测试数据、以及各种各样的沟通协调和会议中。因此在长期投入改进方面,可以从如下几个方面入手了达到降本增效:

  • 测试左移:加强需求和设计阶段的评审和风险评估,准备应对风险的冗余方案;需求实例化。
  • 质量门禁:推动软件研发交付各阶段的质量门禁,做好质量卡点,比如提测冒烟、单元测试等。
  • 质量内建:通过流程规范宣讲以及以身作则的带头实践,要求各个角色实时对软件的质量负责,减少因为前期风险不可控而导致后期的修复成本增加,进而浪费大量资源。
  • 环境治理:测试环境的稳定性是一个被大家忽略的环节,但这是我们所有测试活动开展的基础。可以通过规范变更流程、打通底层数据、变更权限收口、环境容器化、stable环境等手段来提升测试环境的稳定性,降低环境不可用带来的时间浪费和排查问题带来的成本。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

真保姆级——在VMware的Ubuntukylin上进行Hadoop单机_伪分布式安装时安装VMware_Tools后虚拟机与物理机之间无法传输文件和复制粘贴的问题(附Ubuntu更改默认登录用户)

目录一、前言二、版本信息三、hadoop用户创建1.创建hadoop用户2.在创建hadoop用户后对系统进行重启四、解决办法4.1 更改默认登陆用户4.2 安装VMware Tools4.3 验证VMware Tools是否安装成功4.4 KO!!!4.4.1 卸载安装的Vmware Tools4.4.2 安装VMware Tools所需的组件五、可能…

菱形计数与最值问题

菱形计数与最值问题题面你有一个边长为 \(n\) 的正六边形。它被划分成了若干个边长为 \(1\) 的小等边三角形。 我们希望通过合并若干对有公共边的三角形,把这个六边形变成若干个边长为 \(1\) 的菱形的划分。对于每对三角形之间,它们合并有一个代价,问最小的总代价是多少。 例…

钉钉机器人 自动化发版

开发机器人接收消息并调用构建接口, 实现自动化发版 发送指令 -> 机器人接收指令 -> 调用jenkins-job远程构建与部署钉钉机器人 自动化发版 #1 简介开发机器人接收消息并调用构建接口, 实现自动化发版 发送指令 -> 机器人接收指令 -> 调用jenkins-job远程构建与部…

ChCore-Lab4

lab 4: 多核调度与IPC 结合IPADS OS Lab Manual一起阅读,风味更佳!多核启动支持:使ChCore通过树莓派厂商所提供的固件唤醒多核执行 多核调度: 使ChCore实现在多核上进行round-robin调度。 IPC:使ChCore支持进程间通信 IPC调优:为ChCore的IPC针对测试的特点进行调优。踩坑1…

DNS 服务器是什么?有什么作用?

DNS 服务器是什么?有什么作用 一、DNS 服务器的定义 DNS 服务器即域名系统(Domain Name System)服务器。它是一种在互联网基础设施中扮演关键角色的服务器。在互联网的世界里,每台设备(如服务器、计算机等)都有一个唯一的 IP 地址,就像每部电话都有一个电话号码一样。但…

spring-boot-starter-security放行全部请求

Spring Boot项目中加了spring-boot-starter-security默认会把全部请求设置要求登录。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency>系统自动建一个user…

提升分析效率的秘密:电商团队用它打破数据孤岛!

高效团队协作:电商团队如何用在线协同工具重塑商品数据分析流程 在如今竞争激烈的电商行业中,商品数据分析的重要性不言而喻。销售数据、库存情况、用户反馈等信息都可能成为制胜关键。然而,这些数据往往分散在不同系统中,导致团队协作效率低下。尤其是在电商团队中,数据分…

zabbix图形乱码问题

环境: OS:Centos 7 zabbix:4.0.5

OpenCL 编程步骤 3. 获取Context 上下文

转载 https://deepinout.com/opencl/opencl-basic-tutorials/opencl-create-context.html 上下文为关联的设备、内存对象、命令队列、程序对象、内核对象提供一个容器。上下文是OpenCL应用的核心。正是上下文驱动着应用程序与特定设备以及特定设备之间的通信。 对于上下文中关联…

Gitlab runner持续集成CI/CD怎么设置标签指定Runner节点执行

搭建Runner参考: https://www.cnblogs.com/minseo/p/18472436 需求:未打标签的.gitlab-ci使用默认runner 打标签的.gitlab-ci使用指定的runner环境查看 系统环境# cat /etc/redhat-release Rocky Linux release 9.3 (Blue Onyx) # uname -a Linux Rocky9StoneCrm003080 5.14.…

应用内自动续订商品,畅享无缝服务体验

用户购买某种产品时习惯一次性付款,但是对开发者而言,单次购买模式或需要用户频繁续订的服务可能会导致收入不稳定,无法获得持续稳定的收入。对于有视频、音乐等会员需求的用户,一旦体验到服务中断或需要频繁操作,可能会转向其他竞争产品,导致用户流失。 HarmonyOS SDK应…

一文学会powshell使用及功能

声明! 原文来自微信公众号泷羽Sec-track认识powsehll PowerShell(通常称作PowerShell或Windows PowerShell)是由微软开发的一种任务自动化和配置管理框架,与linux命令相似,它结合了命令行外壳和脚本语言功能,使得系统管理员和用户能够更高效地管理系统和自动化任务。 打开…