首页 > 其他分享 >自动化测试,有最佳实践吗?

自动化测试,有最佳实践吗?

时间:2024-02-05 12:59:46浏览次数:20  
标签:实践 接口 问题 最佳 测试 自动化 团队

前几天知识星球里的同学问了这样一个问题:API自动化测试,业内有没有标杆指标?

问题背景大致如下:

接口自动化建设过程中遇到了一些困境,需要从团队建设角度给出发展目标和具体的指标,主要问题有如下两点:

  1. 大厂/有最佳实践的团队,接口自动化在微服务的角度覆盖率需要达到多少?
  2. 接口自动化的稳定性(case通过率)需要达到多少才算是达标,达到多少算比较优秀?

 

这个问题表面来看,是需要一些明确的指标,为测试团队的自动化测试工作开展指明目标。

但仔细思考一下,我个人认为背后的原因在于,在开展接口自动化测试工作时,并没有考虑清楚需要投入的成本,团队当前的现状,以及优先级最高的问题该如何解决。

从自动化测试的投入产出比金字塔模型来说,接口自动化确实是性价比最高的一种自动化测试方式。

单元测试的技术要求比较高,大部分测试团队很难胜任;UI自动化又很考验前端的编码规范和UI的稳定性。而接口自动化测试的优势在于如下几点:

  • 有赖于系统架构的演进,微服务和前后端分离的设计理念,系统和服务间的交互更为解耦,数据交互基本都在接口层解决;
  • 相比于UI的变化频率而言,接口变更带来的测试维护成本更低;
  • 测试工具和框架越来越成熟,不需要太熟练的编码能力,普通测试同学都可以参与到接口自动化测试工作中;

 

自动化测试的优势毋庸多说,能提高测试验证效率,缩短结果验证反馈周期,但这些优势之所为能成为团队提效的优势,背后需要的是前期一定成本的投入。

且自动化测试在前期建设阶段,投入产出比势必会有一段时间处在亏损状态。

对测试团队来说,自动化测试无论是测试左移右移,都是长期必须建设的技术设施。但需求是做不完的,迭代是几乎不会停止的,如何保证在尽可能的吞吐需求的同时,保障测试的交付质量,同时还要投入一定资源开展自动化测试工作,这一点很考验团队管理者的能力。

业内有没有自动化测试的最佳实践呢?从普世的角度来说,只有一些方法论和注意事项可以参考;从现实角度出发,没有适合绝大多数团队的落地实践案例。

因为每个公司的业务特性和复杂度不同,测试团队成员的技术能力不同,做事方式不同,测试方法和流程规范不同,以及测试团队本身所能投入的资源多寡和管理层允许投入这些资源所期望的回报时效都不相同。

相比于前几年互联网行业大刀阔斧招聘和开发各种技术平台,在当下的降本增效共识下,公司和团队领导更需要的是能立即解决问题提高效率的技术实践,而不是看着高大上但实际上回报周期更长的技术项目。

在KPI和营收压力下,大家更关注的是当下,成本、人效和收益,永远是老板和管理层最关心的。

 

我个人的观点是,测试团队在当下要实施自动化测试,首先要做的事情是找到低效的原因和环节,能通过自动化测试快速覆盖,让case跑起来出结果,缩短反馈周期才是最重要的。

至于所谓的覆盖率,大家不要太迷信这个东西,毕竟统计学,是这个世界上最有魅惑力的学科。统计维度和周期不一样,最终的数据指标上下限超乎你的想象。

本文最后,回答一些关于上述问题,我的一些实践经验,仅供参考。

  • 不要迷信case覆盖率和测试通过率,重点关注是否缩短了测试和反馈周期;
  • 影响测试用例通过率的因素很多:脚本问题,数据问题,断言问题,环境问题;
  • 测试覆盖率只是一个统计结果,测试同学更应该关注测试用例和业务场景的匹配度;
  • 测试覆盖率从一定角度来说是有用的,便于测试团队评估自动化测试的粒度和投入成本;
  • 建议按照核心业务-对应服务-核心接口来梳理,优先覆盖核心业务应用的P0接口,以此类推;
  • 自动化测试在前期落地过程中,建议优先覆盖增量需求的核心接口,然后再考虑存量业务场景;

最后,我个人认为,是否要做自动化测试,如何做,怎么做,阶段里程碑是什么,都应该根据所处团队的具体情况来制定落地计划,然后根据落地情况实时调整,优先解决核心问题。

一个比较好的技术落地思维方式是这样的:

  • 目前团队面临的最大问题是什么?——聚焦问题;
  • 这个问题有业内有哪些解决方法?——分析根因,对比评审;
  • 目前优先级最高的诉求是什么?——能快速跑起来/规范操作和协作流程;
  • 解决这些问题需要投入多少资源?——投入多寡对应的见效时间差距有多大;
  • 快速小范围落地实践,观察结果,评估效果和性价比,调整方案,继续迭代!

软件测试好歹也是一个技术岗位,对于技术实践来说,最小可行性方案永远比PPT更能解决问题!

标签:实践,接口,问题,最佳,测试,自动化,团队
From: https://www.cnblogs.com/imyalost/p/18007734

相关文章

  • 并发集合测试
    场景:某个集合正在被遍历的时候,给集合加入新元素,这个时候是会抛并发修改异常还是正常?如果正常的话,能不能拿到新获取的元素?KeySetViewpublicclassconcurrentTest{publicstaticvoidmain(String[]args){Set<String>channels=ConcurrentHashMap.newKeySet(......
  • 假期想学习,送你测试开发+人工智能大礼包
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。春节将至,大家在享受假......
  • 测试开发+人工智能大礼包,让你在假期实现弯道超车
    春节将至,大家在享受假期的同时,不要忘记假期之后就是金三银四了哦。如何在春节期间实现弯道超车?在面试之前做足准备,你有计划了么?这个春节假期不要再乱学了,现在送你一份「测试开发+人工智能精品课礼包」,跟着我们的节奏来。学习虽然没有捷径,但是有路径。这套课程是霍格沃兹测试开发学......
  • 部署Palworld幻兽帕鲁服务器最佳实践(Ubuntu)
    本文为您介绍Ubuntu系统部署Palworld幻兽帕鲁服务器的最/佳实践。1.登录云主机控制台,选择创建云主机的资源池,点击“创建云主机”按钮。2.基础配置。CPU架构选择“X86计算”,规格-分类选择“通用型”。为确保游戏顺畅运行,建议您选择4C16G及以上的规格。镜像类型选择“应用镜像......
  • [职场] 测试工程师的英文简历怎么写
    每个求职者肯定都有一份简历,但是往往一份中文简历不能满足所有需求,还需要一份英文简历,但是大部分人都不知道英文简历怎么写?这里有一份测试工程师的英文简历模板供大家参考。Lanshanshanphone:12345678910email:jianlijianli.comTestEngineerFocusingonhe......
  • 如何保障代码覆盖率?它和精准测试有什么关系?
    前言大家好,我是chowley,今天来聊一聊代码覆盖率和精准测试两者之间的关系。在软件开发和测试中,代码覆盖率是一个重要的指标,它可以帮助我们评估测试用例对源代码的覆盖程度。精准测试则注重深入挖掘特定功能或模块的问题。1.了解代码覆盖率的类型在开始之前,让我们先了解几种常见......
  • UI自动化测试代码不想写脚本不想配?RunnerGo一键录制
    想快速配置可视化UI自动化测试脚本?RunnerGo近期上线脚本录制器,根据你的测试操作直接生成UI自动化测试脚本,下面是使用方法Step1:下载录制器点击RunnerGo上方插件按钮下载录制器Step2:录制器使用将插件文件拖入浏览器扩展程序点击打开录制器,在浏览器中进行操作时录制器会将操作录制为......
  • 快速使用 timeit 测试代码运行速度
    Python中要测试代码速度,比起start_time=time.time()然后end_time=time.time(),更便捷的方法是使用timeit。以下是测试lambda表达式与普通判断语句速度的代码。运行10000次,打印各自运行时间。结果是lambda虽然优雅但更慢。importtimeitimportnumpyasnpensur......
  • UI自动化测试代码不想写脚本不想配?RunnerGo一键录制
    想快速配置可视化UI自动化测试脚本?RunnerGo近期上线脚本录制器,根据你的测试操作直接生成UI自动化测试脚本,下面是使用方法Step1:下载录制器点击RunnerGo上方插件按钮下载录制器 Step2:录制器使用将插件文件拖入浏览器扩展程序 点击打开录制器,在浏览器中进行操作时录制器......
  • 问题:?软件测试方法中,属于静态测试方法的是( )。?黑盒法?逻辑覆盖?错误推测?人工检测
    问题:?软件测试方法中,属于静态测试方法的是()。?黑盒法?逻辑覆盖?错误推测?人工检测参考答案如图所示......