首页 > 其他分享 >漫谈自动化测试

漫谈自动化测试

时间:2024-10-24 13:45:37浏览次数:1  
标签:漫谈 接口 指标 UI 测试 自动化 度量

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

标签:漫谈,接口,指标,UI,测试,自动化,度量
From: https://www.cnblogs.com/imyalost/p/18499425

相关文章

  • 现在流行哪款MOCK测试工具
    MOCK测试是软件开发过程中的一个重要环节,它允许开发者模拟那些尚未实现或者难以集成的组件、服务或系统。目前,最流行的MOCK测试工具包括WireMock、Mockito、Sinon.js。这些工具中,WireMock特别受到关注,因为它能够模拟具有复杂逻辑的Web服务。一、WIREMOCK的功能和优势WireMock......
  • 从梦想到现实:十年见证AI自动化漏洞修复的演变
    #1024程序员节|征文#2014年的梦想与构想回到2014年,那时的我还在不断学习、探索和思考,如何利用科技力量去创造一个更加安全和高效的数字世界。作为一名初出茅庐的技术爱好者,我深知互联网的发展离不开安全防护,而网站漏洞修复是其中至关重要的一环。于是,我萌生了一个大胆的想法......
  • 测试
    HelloWorldR1.----.----...--.-.-.-....-......-.-.-.----......----.-.-.-..---..----....R1R2...--...--------....R2R3......--.........--...-..R3R4.----...---....--.....-----......---....--.....------..-..-..-.-..-..-......
  • 人工智能驱动的编程新时代:从自动化到智能化的技术变革(附代码)--Happy1024程序员节
    PS:尊敬的程序员同仁们,值此1024程序员节的到来,向每一位在代码世界中辛勤耕耘的小伙伴们致以诚挚的祝福和敬意!我们的努力与创新,犹如一束光芒,照亮了数字时代的每一个角落。正是我们用智慧与汗水,构建了生活中不可或缺的科技基础。从解决复杂问题到实现日常便利,程序员的每一行代码......
  • 从零开始实现WEB自动化 - Chrome Extention
    上篇我们说到用ChromeExtention的方式实现WEB自动化操作,我们以Chrome浏览器插件API为标准开发,后续在插件移植也非常的方便,可以把插件分发到各个浏览器市场,让其安装。准备复制第一篇初探的代码,在VisualStudioCode中打开,后续此代码作为我们第一阶段开发的基础功能清单首......
  • 设计测试用例编写技巧_
    一、查看用例的模板二、用例的要素讲解.编写用例的要素?用例编号,用例标题,前置条件,测试步骤,预期结果,优先级(必写)系统名称、模块名称、用例创建时间,实际结果,用例类型,执行时间,执行状态等(非必填项)三、详解测试用例要素(一)用例编号可以称为:用例id,测试编号,编号等(1)系统命名_模块名......
  • 编写测试用例技巧
    设计测试用例编写技巧一、查看用例的模板二、用例的要素讲解.编写用例的要素?用例编号,用例标题,前置条件,测试步骤,预期结果,优先级(必写)系统名称、模块名称、用例创建时间,实际结果,用例类型,执行时间,执行状态等(非必填项)=============================================三、详解测......
  • 自动化测试工具Ranorex Studio(十三)-录制过程中
    点击“录制”按钮来触发创建一个新的录制模块。 图:点击“Record”开始录制点击录制按钮后,Ranorex会在正式录制之前协助你运行一个应用程序,打开浏览器浏览导航到特定的URL或打开移动设备上的应用程序。因此,像双击桌面快捷方式图标这样的操作就没有必要录制了。通过选择’gl......
  • 黑马软件测试第一篇_Linux
    Linux操作系统说明:所有硬件设备组装完成后的第⼀一层软件,能够使⽤用户使⽤用硬件设备的软件即为操作系统常见分类桌⾯面操作系统:Windows/macOS/Linux移动端操作系统:Android(安卓)/iOS(苹果)服务器器操作系统:Linux/WindowsServer嵌⼊入式操作系统:Android(底......
  • 渗透测试-安全见闻(5)
    声明学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。目录X量子物理学及量子计算一、学习方向量子物理学基础量子计算原理与技术传统网络安全知识量子......