测试工程师如何提高自动化测试覆盖率

news2024/11/10 19:57:50

前言

自动化测试一直是测试人员的核心技能,也是测试的重要手段之一。尤其是在今年所谓的互联网寒冬的行情下,各大企业对测试人员的技术水平要求的很高,而测试人员的技术水平主要集中在三大自动化测试领域,再加测试辅助脚本的编写,测试工具的开发,测试平台的开发等。而普通的测试人员想快速提升技术,自动化测试必是无可挑剔的选择。

但是由于业界一直存在着对自动化测试的误解,严重影响了自动化测试的发展,也影响了不少同学学习自动化测试的信心。主要集中在以下几点

一、自动化测试是万能的

由于对自动化测试的认识不足,或是对使用场景不够明确,认为只要开展了自动化测试,就能尽可能地发现更多的bug,有的甚至认为只要自动化测试做的好,完全可以替代手工测试。这个是过度地夸大了自动化测试的作用,自动化测试主要的作用是代替人工,做一些儿繁复的工作,如回归测试,监控等,针对的是核心业务或是成熟的功能。在开展自动化测试之前,要对自动化测试有个清晰的认识,否则后期会对自动化测试失望的。

二、自动化测试无用论

另一种对自动化测试的错误认识就是,自动化测试根本没有用处。这个认识的来源是,有些同学在公司开展了自动化测试,也连续跑了起来,可是根本发现不了任何bug,每次跑都通过了,所以就认为自动化测试没有用。其实自动化测试的实施是有先决条件的,针对成熟的业务,覆盖核心业务。同时,根据需求,自动化测试覆盖的粒度也不会是非常精细的。自动化测试是用来保障核心业务不出问题,或是第一时间发现问题。所以长时间发现不了bug是正常的。如果你的自动化测试三天两头发现Bug,要不是公司业务发展不够稳定,就是你写的自动化测试有问题。要对自动化测试有清晰的认识,不能过度夸大其功能,也不必贬低其作用。

三、自动化测试能速成

由于现在业界对自动化测试要求较高,已经有不少同学开始学习自动化测试。但是却对自动测试的认识不足,了解了自动化测试框架,能通过一门语言写一两个测试用例,就认为自己为自动化测试,相应的找工作的要求啊,薪资待遇提的就相当高。自动化测试是一套完整的测试理论,不是借助于自动化测试框架能写测试用例就掌握的事情。如果想要学习,还是要踏踏实实的打基础,掌握一门编码语言,学习相应的自动化测试框架,再了解自动化测试实施的原理,掌握自动化测试设计架构,以及为将来要做的事情提前规划;一两个月的学习只是入门,后续还是需要长期的实践,进行技术的积累和沉淀才行。

在明确自动化测试的误区后,我们来分析一下作为测试人员应该如何正确对待自动化测试。首先要对自动化测试有个明确的认知,自动化测试是测试人员必备的技能,除非你想在一家公司工作上几年,然后转行不做测试,否则你的测试之路必然会受其影响。

四、正确学习自动化测试

既然如此,所以我们还是需要掌握这个能力的,但是又不能盲目。不要认为自动化测试会变成必备的能力,所以就把接口,Web UI, App全面学习,也不管是java,还是python,这样就会越来越乱。首先要选择一个语言体系,如java,或是python,掌握好相应语言的基本能力;其次,安排好学习顺序,如先学习接口自动化测试,然后是Web UI自动测试,再接着就是App自动化测试。当能进行自动化测试实施的时候,需要提高一下能力,学习自动化测试的架构设计,持续化集成的实施等等,步步为营,稳扎稳打。

五、根据实际工作需求实施自动化测试

学习要和实际工作相结合才能更好地提升,如果一家公司有自动化测试相关技术建设,是一个很好的发展平台。如果公司没有这方面的投入,我们需要从零开始做起自动化测试。如何从零开始做自动化测试呢?

1、分析自动化测试的目的,发布前回归测试或是线上产品监控等;通过分析以往遇到问题,如果采取自动化测试,能避免哪些问题,以数据手段说服领导来推动自动化测试的实施。

2、分析与选择自动化测试覆盖的用例范围。自动化测试要么回归测试,要么进行线上数据的监控,所以不是所有的测试用例都要转化成自动化测试。选择覆盖核心业务的测试用例,或是根据测试的需求,对功能测试用例先进行预先的处理,如通过最短路径算法,选择覆盖率较高的测试用例,转化成自动化测试用例,以提高自动化测试用例的覆盖率。

3、探讨自动化测试实施参与人员。自动化测试工程是你单独实施,还是有团队成员一起参与实施?如果是个人的话,就选择自己熟悉的知识体系进行实施,如果是团队一起参考,就要考虑团队成员的技术水平,选择转化成本最低的技术栈,以保证投入产出比最高。

4、根据参与人员做技术选型。根据确认好的自动化测试的实施人员,做好技术选型,如使用java语系,还是python语系?当然自动化测试框架是固定的,如接口自动化的python+requests, java+HttpClient; WebUI自动化测试就是Webdriver;App自动化测试的Appium等等。

5、设计自动化测试架构。自动化测试不管技术栈如何选择,在开始写自动化测试之前,不可能是一个个自动化测试用例的简单罗列,需要先进行自动化测试架构的设计。选择PageObject模式,还是数据驱动模式?封装好公用函数,设计好测试用例的管理,测试数据的管理,测试用例集,日志,测试报告管理等等。

6、编写与调度自动化测试用例。根据前面选择的自动化测试用例需要覆盖的范围,将相应的测试用例转化成自动化测试代码。在编写自动化测试用例的过程中,不断完善公用函数的封装,调度并编写自动化测试用例。

7、根据自动化测试的目的,设置自动化测试执行策略,实施持续化集成。在编写完自动化测试用例后,根据需求组织测试用例集,并设置自动化测试用例集的执行策略。借助于jenkins等任务调度工具,实施持续化集成,如开发提测后触发执行自动化测试,做回归测试;或是设置定时任务,在相应的测试环境下定时执行自动化测试,监控业务流程。

8、指定后期维持与扩展策略。自动化测试需要不断地维护才能保证其可用性,如被测对象优化,架构重组,增加新功能等,都需要优化相应的自动化测试用例,才能保证自动化测试的时效性。同时需要对指定相应的人员进行培训,做定时维护,维护与编写对应的文档,做好技术积累和传承工作。

六、如何提高自动化测试的覆盖率

实施自动化测试最重要的是保证它的可用性,而很多同学写了很多自动化测试用例,但觉得它的可用性不高。究其原因,并不是自动化测试本身的问题,而是在实现自动化测试时缺乏考虑。具体包括以下几点:

1、不恰当地引入自动化测试

在公司业务发展稳定之前,或者产品变化频繁的时候,进行自动化测试。这个时候,自动化测试的失败率会很高,不仅维护成本高,而且自动化测试回归和监控的目的也不会达到。因此,会导致自动化测试的放弃,或者怀疑自动化测试的作用。这个时候,先不要急着引入自动化测试。如果你真的需要引入自动化测试,你需要将测试粒度设置得更粗,覆盖那些变化不大的核心和业务线。

2、自动化架构设计没有整体规划

自动化测试用例不能是简单测试用例的集合。如果把单个的自动化测试用例放在一起,形成一个自动化测试项目,后期的管理和执行将相当复杂。投入产出比与预期相差太远,这也不是一个正常的自动化测试工程的实现过程。通常情况下,需要先设计自动化测试项目的架构,选择一个合适的设计模式,为代码设计一个分层的架构,独立选择要执行的测试用例集,等等。

3、测试用例的选择不合理

在实施自动化测试用例之前,没有合理地选择测试用例,手工测试用例一个接一个地转化为自动化测试用例。如果是这样的话,测试用例一定不能完全覆盖。因此,需要在早期对测试用例进行合理的选择,并进行智能化处理,如根据业务需求选择针对核心业务的测试用例。或者如前所述,通过最短路径算法,选择一个覆盖率高的测试用例集。首先从用例选择的角度分析用例覆盖率,然后将其转换为自动化测试用例,从而更好地提高自动化测试用例的覆盖率。

七、结束语

从事自动化测试的测试开发同学很多,但是相应的级别也不尽相同,从T3到T6都有可能。其实施的自动化测试工程也就各有所长,这也说明自动化测试的技术有很大的提升空间。所以要沉下心来,不断地提升自己,不要刚刚学习了自动化测试就感觉自己能力很强,或是动不动就说测试发展遇到了瓶颈。不断的打好测试技术相关的基础,完善知识体系,提高解决问题的能力,开阔视野才能步步高升。

如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于想做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……加入我的学习交流群一起学习交流讨论把!!!!  

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

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

相关文章

350-401-补充

补充 拖图 Cloud和On-Premise; Cloud: easy to scale the capacity up and down highly agile On-Premises: infrstructure requires large and regular investments highly customizable 云: 易于扩大和缩小容量 非常敏捷 本地: 基础设施…

nodejs基于vue 网上商城购物系统

可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2. 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.1.2技术可行性 6 3.1.3运行可行…

15 个杀手级 你可能从未听说过的 JS 技术

我们都同意,在 Google 或 StackOverflow 上搜索 Javascript 错误修复或答案并不有趣🏴‍☠️。这里有 20 种简短而强大的 JavaScript 技术,它们可以最大限度地提高生产力 ⚡ 并最大限度地减少痛苦 🩸。让我们深入研究代码&#x1…

人们最想看到的是:你在坚持什么?

【人们最想看到的是:你在坚持什么】 长远规划才能对抗不确定性 品牌也能够对抗不确定性 想想这么多年东搞搞,西搞搞 最后缺乏正向积累的【厚度】 趣讲大白话:把每滴水尽量接到碗里 人吃的是饭,拉出来的是信息 *********** 人们在频…

大数据周会-本周学习内容总结0102

目录 01、ElasticSearch-学习总结 02、SpringbootElasticSearch构建博客检索系统 01、将MySQL数据同步到ES中 02、SpringBoot集成ES 03、本周学习计划 第一次周会 大数据总监、搜狐四年-中国搜索 【mapReduce】sql 大数据代表:Hadoop、spark、es、flink zookee…

写给安徽合肥高三的你——少年不惧岁月长,敢挽桑弓射玉衡

文章目录说说我的看法英雄不论出处想帮帮你做科研,拼出个锦绣前程,朗朗乾坤!我能做的可能很少,可是全世界都会为你让路说说我的看法 在今日头条看到你, 仿佛看到了年轻时候自己的影子,虽然自己现在在读研已…

PHP面向对象02:面向对象高级

PHP面向对象02:面向对象高级一、设计模式1. 单例模式2. 工厂模式二、面向对象三大特性1. 封装2. 继承3. 多态三、继承1. 实现继承2. 有限继承a. 属性都能继承b. 公有方法c. 受保护的方法d. 静态成员3. 重写4. PHP继承特点5. 静态延迟绑定6. 最终类和最终方法7. 抽象…

真空度精密控制技术在液相透射电子显微镜液体厚度调节中的应用

摘要:为了实现液相电子显微镜的更广泛和更便捷应用,需要对微芯片中的液体样本厚度进行精密调控。本文基于透射显微镜中被检液体样本内外压差对应于液体厚度这一凸起变形膨胀的基本现象,提出了通过精确控制液体池内部真空度来实现液体厚度精密…

【大数据离线开发】7.4 HBase数据保存和过滤器

7.4 数据保存的过程 注意:数据的存储,都需要注意Region的分裂 HDFS:数据的平衡 ——> 数据的移动(拷贝)HBase:数据越来越多 ——> Region的分裂 ——> 数据的移动(拷贝) …

美国原装KEYSIGHT E4981A(安捷伦) E4981A电容计

KEYSIGHT E4981A(安捷伦) Keysight E4981A(安捷伦)电容计为生产线中的陶瓷电容器测试提供了高速、可靠的测量。E4981A 实现了电容从小到大的测量能力,测量准确。Agilent E4981A 电容计有助于提高测试吞吐量&#xff0…

Structure|Alphafold2在肽结构预测任务上的基准实验

​题目:Benchmarking AlphaFold2 on peptide structureprediction 文献来源:2023, Structure 31, 1–9 代码:基准实验,比较了比较多的模型 1.背景介绍 由2-50个氨基酸构成的聚合物可以称为肽。但是关于肽和蛋白质之间的差异还是…

树莓派4b系统安装

文章目录一.树莓派系统和工具下载二.树莓派系统烧录一.树莓派系统和工具下载 树莓派系统下载:https://www.raspberrypi.com/software/operating-systems/ 下载系统镜像写入工具:Win32DiskImager https://sourceforge.net/projects/win32diskimager/ …

仅作笔记用:Windows 10 继续使用 IE 浏览器(针对23年2月14日的系统更新)

2 月 14 日更新后有部分 Windows 10 的用户反映 IE 浏览器无法使用,打开后变成 Edge 浏览器。由于有少数业内业务仍然必须使用 IE 浏览器,这里稍微研究了一下解决方法。 打开 IE 浏览器的时候会出现“IE已经合并进Edge浏览器”的提示,此时千…

华为手表开发:WATCH 3 Pro(10)获取心率

华为手表开发:WATCH 3 Pro(10)获取心率初环境与设备文件夹:文件新增第二页面引用包 import sensor from system.sensor;showHeartbeat.hmlshowHeartbeat.js修改首页 -> 新建按钮 “ 跳转 ”index.hmlindex.js 引用包&#xff1…

JVM系统优化实践(1):JVM概览

您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~这是多年之前做过的学习笔记,今天再翻出来,觉得仍然是记忆犹新。「独乐乐不如众乐乐」,就拿出来分享给「众乐乐」吧。目前大多…

BCN科研试剂:1263166-91-1,endo BCN-O-PNB,ENDO BCN - 活性酯(P-NPC)

试剂基团反应特点:endo BCN-O-PNB中在有机溶剂中很容易与含胺分子发生反应,PNB 是一个很好的离去基团,BCN 用于无铜点击化学反应。结构式(Structural):基础产品数据:CAS号:1263166-9…

合并两个有序链表——递归解法

题目描述21. 合并两个有序链表难度简单2922收藏分享切换为英文接收动态反馈将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1:输入:l1 [1,2,4], l2 [1,3,4]输出:[1,1,2,3,4,4]示例…

【项目精选】基于B2C的网上拍卖系统_秒杀与竞价

点击下载源码 伴随着网络技术的广泛应用和高速发展,随着人们生活节奏的越来越快,越来越多的人们开始在网络中寻求便利。网络购物具备了省时、省事、省心、高效等特点,从而广泛被大众接受,并逐渐渗透到人们的生活中,成为…

当越来越多的企业不再使用FTP,该用什么更好的方案替代?

FTP作为第一个完整的文件传输协议,在互联网技术发展史上具有浓墨重彩的意义,它解决了文件传输协议有无的问题,在全世界范围内被广泛使用。但如今,随着网络技术的发展,企业生产类型和生产资料的丰富化,文件传…

Linux 系统目录结构

登录系统后,在当前命令窗口下输入命令: ls / 你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin: bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 /boot: 这里…