漫谈自动化测试

news/2024/10/24 13:49:17

前几天看到星球里几位同学在讨论各自所在团队的自动化测试实践案例和踩过的坑,蛮有意思的。

比如为了响应领导号召和满足绩效考核,搞各种各样的覆盖率指标;比如为了赶自动化测试覆盖率进度,每个接口和用例象征性的校验一下(甚至不校验不断言),各种各样意想不到的操作。

自动化测试是必不可少的质量保障手段目前已经成为了业内共识,但在具体的实践中,往往呈现出两极分化的趋势。

做的好的不仅能很好的保障交付质量,还能借此获得上级认可和个人能力提升。做的不好的大多在低水平的误区打转,比如用什么框架好,自动化测试用Python还是Java语言,断言要不要用怎么用。

这篇文章,围绕自动化测试这个话题,漫谈一些我的理解和看法。

 

先聊聊为什么要做自动化测试,这也是很多新手没怎么考虑过的问题。

新手典型的一个技术认知就是,公司要给时间给资源让自己来学习某个技术,否则只做自己岗位职责范围内的事情。以自动化测试来说,很多新手总认为是公司没有让自己做,所以自己不去做或者不学习。

等到公司开始认识到需要自动化测试来提高效率的时候,又往往陷入技术纠结的状态。用什么框架,开源的还是自己造轮子,用Java还是Python。或者围绕绩效去做自动化测试,一切唯指标论。

其实最好的方式是,先利用业余时间主动去学习一些自动化测试相关的知识技能,然后尝试在工作中落地实践,解决眼前遇到的各种问题。等做出一定正向效果了,向上汇报,然后争取资源扩大覆盖范围。

这样做的好处是,自己学习的自动化测试相关技能得到了锻炼,拿到了好结果,又能在上级那里有一个好的印象。上级向他的上级汇报时,也能体现出你主动思考和解决问题的能力,皆大欢喜。

自动化测试需要长期持续的投入和迭代,才能如预期拿到好的结果。技术实践本身就是一个马拉松赛跑,迈出第一步是最难的,坚持下去是第二难。

 

再聊聊自动化测试分层的问题。

自动化测试目前大部分的执行场景依然是针对许多最小最具体的业务场景,如果要验证复杂的业务场景(比如电商业务的下单场景,背后的业务逻辑涉及到库存扣减,三单匹配,购物车数据更新以及缓存数据的更新同步),则势必会导致失败后的排查耗时和难度增加。

有过排查问题经验的同学都知道,越是复杂的系统,排查的难度和耗时往往是指数增长的。为了保障自动化测试的执行效率,降低失败后的排查根因耗时,才有了自动化测试的分层理念和实践,即测试同学很熟悉的三层模型。

但从真正的落地实践难度来说,UI自动化的难度是高于接口自动化测试的。

原因在于,接口自动化除了接口请求本身,主要的难点在于组装数据。

而UI自动化测试,一方面是UI本身的稳定性相较于接口层更差,另一方面则是很多测试同学都去做了接口自动化,都认为UI自动化投入产出比更低,导致没人做UI层的自动化测试。最后的结果就是做UI自动化测试的高手很少,恶性循环。

自动化测试除了所谓的覆盖率,其实稳定性是一个大家长期以来忽视的问题。相比于接口,UI的稳定性需要多种手段去保障。

典型的场景就是没考虑页面加载和数据展示的正确性,自动化点击了没反应,或者被吞掉了,很多人根本没有解题思路,然后各种sleep,最终的结果就是越来越臃肿。

就像一位同学说的:一边想用它减轻工作负担,一边又想平时不看自动化失败,用的时候好用。

近几年自动化测试的落地实践其实相对来说难度降低了很多,因为框架和工具更丰富更成熟,学习资料也多。技术的进步会带来这样一个现象:让更多低水平的人可以参与,但也会限制他们能力提升的曲线。

 

最后聊聊自动化测试覆盖率和成果向上汇报的问题。

覆盖率本身只是一个衡量和评估的参考数据,并不能对自动化测试真正的效果和价值给出明确的结论。

但出于很多因素的考量,很多同学犯了一个错,即给领导画了一个很大的饼,结果真正做起来才发现难度和耗费的资源超过预期,最后只能用覆盖率之类的指标。

比如星球里一位同学的案例:最初给领导规划的很好,结果为了赶进度,复杂的接口象征性校验一下,为了KPI好看。

最后看起来覆盖率高了,但遇到核心功能改动后需要大范围的回归测试,接口自动化根本靠不住,还得手动回归。

真的不太建议在自动化测试实践中,太过依赖覆盖率作为KPI或者汇报核心,否则大家都是在单纯堆用例或者脚本。

即使出于度量和评估的因素,在制定度量指标时,建议遵循和考量如下几点:

  1. 切忌面向指标/面向KPI做度量;
  2. 考虑到冗余成本,指标不宜过多;
  3. 制定指标是为了提升质量,而非做数据;
  4. 根据做自动化测试的目的来制定度量指标;
  5. 度量指标对比应该以是否解决了痛点为依据;
  6. 度量指标是辅助评估依据,并不是唯一正确的结果;
  7. 制定指标应考虑到哪些指标更实际有效,从解决问题角度出发;
  8. 度量指标不要单一的评估,应结合多个维度来综合评估开展质量度量;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

AUTOSAR架构下,持续集成CI的最佳实践

随着汽车电子技术的快速发展,汽车软件的复杂性与日俱增,如何确保软件开发的高效性与稳定性成为了一个关键问题。为了解决这个问题,许多汽车企业和供应商逐渐引入了AUTOSAR架构,并在此基础上构建了持续集成(CI)流程。今天,我们就来探讨一下基于AUTOSAR架构的CI流程实践,…

哇!树链剖分(重链剖分学习笔记)

听说有人不会树链剖分? 前置芝士线段树 树状数组 Splay FHQ-Treap以上五种任意一种即可,这里主要讲线段树做法。 引入 树链剖分(Tree Line Pow Divide),一种解决树上快速路径修改查询问题的算法,一般指 重链剖分(Heavy Path Decomposition)。 思想图解 一个问题 如题,…

某SCADA系统发电机过速故障研究

某SCADA系统发电机过速故障研究 直观上讲,发电机转速过高故障最显然的特征应该就是“发电机转速”,因此对故障发生时的发电机转速进行可视化研究:如上图所示,对发电机转速进行了 Min-Max 归一化。该次故障报警时,确实存在转速较高的情况,但显然,并非转速高就会报警。通过…

CANOpen协议SDO中止报文(内存不足的解决方法)

今天在开发过程中,使用SDO进行字符串传输的时候出现了错误,检查到SDO服务器返回的报文帧是一个中止帧,中止代码为0x05040005这时候去翻CIA301的手册查中止代码的含义为内存不足经过断点调试跟踪,发现在config.h中是一个配置宏设置的是32,而我的字符串的长度为50,所以就中…

WinDbg快速分析异常情况Dump文件

https://syxdevcode.github.io/2017/12/04/WinDbg%E5%BF%AB%E9%80%9F%E5%88%86%E6%9E%90%E5%BC%82%E5%B8%B8%E6%83%85%E5%86%B5Dump%E6%96%87%E4%BB%B6/WinDbg快速分析异常情况Dump文件 生产环境偶尔会出现一些异常问题,WinDbg 或 GDB 就是解决此类问题的利器。调试工具 WinDb…

20222317 2024-2025-1 《网络与系统攻防技术》实验三实验报告

一、实验内容 本次实验目的为通过多次加密、文件格式欺骗、填充、加壳等技术手段实现恶意代码免杀,产生恶意程序,并尝试通过杀毒软件,不被杀毒软件检测出来。具体实验内容如下: 1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件; 2.能够使用veil,加壳工具; …

EventTranscript.db占用空间太大,文件能否移动到其他位置?

在大多数情况下,EventTranscript.db 文件可以被移动到其他位置(不建议移动、删除),这样做可能会对系统日志记录功能产生影响:日志记录功能:移动 EventTranscript.db 文件可能会导致系统日志记录工具无法正常工作。系统完整性:在操作系统中,日志文件的位置是系统配置的一…

Windows下dump文件生成与分析

一 生成Dump文件 生成dump文件有三种方式:任务管理器生成,windbg抓取,源码中添加dump转储代码。需要根据实际情况选择。 1.1 任务管理器 在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程。右键—>创建转储文件。 1.2 WinDbg抓取 程序运行崩溃后,先不关…