一些很实用的技巧提高自动化测试覆盖率

自动化测试一直是测试人员的核心技能,也是测试的重要手段之一。尤其是在今年所谓的互联网寒冬的行情下,各大企业对测试人员的技术水平要求的很高,而测试人员的技术水平主要集中在三大自动化测试领域,再加测试辅助脚本的编写,测试工具的开发,测试平台的开发等。而普通的测试人员想快速提升技术,自动化测试必是无可挑剔的选择。
但是由于业界一直存在着对自动化测试的误解,严重影响了自动化测试的发展,也影响了不少同学学习自动化测试的信心。主要集中在以下几点:

一,自动化测试是万能的

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

二,自动化测试无用论

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

三,自动化测试能速成

由于现在业界对自动化测试要求较高,已经有不少同学开始学习自动化测试。但是却对自动测试的认识不足,了解了自动化测试框架,能通过一门语言写一两个测试用例,就认为自己为自动化测试,相应的找工作的要求啊,薪资待遇提的就相当高。自动化测试是一套完整的测试理论,不是借助于自动化测试框架能写测试用例就掌握的事情。如果想要学习,还是要踏踏实实的打基础,掌握一门编码语言,学习相应的自动化测试框架,再了解自动化测试实施的原理,掌握自动化测试设计架构,以及为将来要做的事情提前规划;一两个月的学习只是入门,后续还是需要长期的实践,进行技术的积累和沉淀才行。
在明确自动化测试的误区后,我们来分析一下作为测试人员应该如何正确对待自动化测试。首先要对自动化测试有个明确的认知,自动化测试是测试人员必备的技能,除非你想在一家公司工作上几年,然后转行不做测试,否则你的测试之路必然会受其影响。

一,正确学习自动化测试

此处不再讨论自动化测试是不是应该学习,这是一项必备的能力。既然如此,所以我们还是需要掌握这个能力的,但是又不能盲目。不要认为自动化测试会变成必备的能力,所以就把接口,WebUI, App全面学习,也不管是java,还是python,这样就会越来越乱。首先要选择一个语言体系,如java,或是python,掌握好相应语言的基本能力;其次,安排好学习顺序,如先学习接口自动化测试,然后是WebUI自动测试,再接着就是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.mzph.cn/news/753247.shtml

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

相关文章

大模型知识积累——幻觉

什么是大模型幻觉 在大语言模型的文本生成场景下,幻觉是指一本正经的胡说八道。逻辑连贯的自然表述中,有理论或者事实错误,捏造事实等问题。 幻觉问题的危害 LLM幻觉可能产生传播错误知识的后果。对于医疗应用中结果安全和可信AI尤为重要&a…

气液分离器的概念和原理

气液分离器也叫低压储液器,在热泵或制冷系统中使用,主要是将出蒸发器、进压缩机气流中的液滴分离出来,防止压缩机发生液击,用于工质充注量较大、压缩机进气可能带液且压缩机对湿压缩较敏感的情况 。 液击主要出现在活塞式压缩机中…

PMP能两周快速通过吗?

两周时间有点赶,一般备考要2个月左右,有时间尽量多准备准备。 分享一篇左羊学霸的备考总结,希望能帮你 前言 作为⼀名通过PMP项⽬管理认证并且拿到3A成绩 ( PMP认证最好成绩) 的 学习者, 来跟⼤家分享下我考取PMP证书的动机与过程…

学会Python爬虫只需9步

爬虫是一种技术实现的功能,大部分编程语言都可以实现爬虫,但是对于初学者来说,想要快速学习爬虫技术,建议大家学习Python爬虫。Python编程语言相对于Java要更简单入门更容易,同时相对PHP使用范围更广泛,有利…

用户需求助力产品创新 4大注意事项

通过用户需求进行产品创新,是项目应遵循的原则,也是项目成功的关键因素之一。通过深入理解用户需求,有助于明确产品功能和定位,使得产品更符合用户期望。有助于树立正确的创新方向,推动企业的发展。如果不了解用户需求…

软件工程-第2章 软件过程

开发逻辑,是正确获取软件的关键。 2.1 软件生存周期过程 编程之前的工作。软件生存周期是软件产品或系统的一系列相关活动的全周期。95年发布国际标准,“ISO/IEC软件生存周期过程12207-1995”,给出了软件开发需要的任务,即回答了…

WIN10系统不定时蓝屏,终止代码:KERNEL_DATA_INPAGE_ERROR,且无法保存蓝屏日志解决办法

程序代码园发文地址:WIN10系统不定时蓝屏,终止代码:KERNEL_DATA_INPAGE_ERROR,且无法保存蓝屏日志解决办法-程序代码园小说,Java,HTML,Java小工具,程序代码园,http://www.byqws.com/ ,WIN10系统不定时蓝屏,终止代码&am…

汽车电子零部件(6):DMS/OMS、CMS

前言: 有一个部件过去不曾有,而如今有可能要标准化标配化,那就是Driver Monitoring System (DMS)驾驶员监控系统、Occupant Monitoring System (OMS)乘客监控系统和Camera Monitor System(CMS)摄像头监控系统。 汽车视觉技术的创新推动先进驾驶辅助系统的变革(ADAS),并…

2024年3月的计算机视觉论文推荐

从去年开始,针对LLM的研究成为了大家关注的焦点。但是其实针对于计算机视觉的研究领域也在快速的发展。每周都有计算机视觉领域的创新研究,包括图像识别、视觉模型优化、生成对抗网络(gan)、图像分割、视频分析等。 我们今天来总结一下2024年3月上半月份…

了解常用开发模型 -- 瀑布模型、螺旋模型、增量与迭代、敏捷开发

目录 瀑布模型 开发流程 开发特征 优缺点 适用场景 螺旋模型 开发流程 开发特征 优缺点 适用场景 增量与迭代开发 什么是增量开发?什么是迭代开发? 敏捷开发 什么是敏捷开发四原则(敏捷宣言)? 什么是 s…

从0开始写一个问卷调查APP的第11天

1.今日任务 分析:上次我们实现了从数据库中成功的查找到对应问卷的问题并在前端展示出来,那么今天我们增加难度。在数据库中插入多项选择问题,在接口中查找到并在前端显示出来。 2.实现 2.1数据库中插入测试数据 我们先查看一下表的结构 2.2接口实现…

代码随想录阅读笔记-哈希表【三数之和】

题目 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a b c 0 ?请你找出所有满足条件且不重复的三元组。 注意: 答案中不可以包含重复的三元组。 示例: 给定数…

Android和IOS应用开发-Flutter 应用中实现记录和使用全局状态的几种方法

文章目录 在Flutter中记录和使用全局状态使用 Provider步骤1步骤2步骤3 使用 BLoC步骤1步骤2步骤3 使用 GetX:步骤1步骤2步骤3 在Flutter中记录和使用全局状态 在 Flutter 应用中,您可以使用以下几种方法来实现记录和使用全局状态,并在整个应…

git:码云gitee仓库提交以及React项目创建

git:码云gitee仓库提交以及React项目创建 1 前言 先注册准备好码云gitee的账户,并在gitee上新建react仓库并提交代码至远程仓库。 2 操作方式 准备新建React项目并提交到码云gitee上。 (1)进入官网:https://gitee…

day-23 买卖股票的最佳时机 II

思路:因为要求的是最大收益,所以可以假设每天都买,第二天卖 利用一个数组来统计,如果收益为负则ans[i]0,否则ans[i]prices[i1]-prices[i] code: class Solution {public int maxProfit(int[] prices) {int nprices.length;int a…

数据在内存的存储

整数在内存中的存储 我们来回顾一下,整数在计算机是以补码的形式进行存储的,整数分为正整数和负整数,正整数的原码、反码和补码是一样的,负整数的原码、反码和补码略有不同(反码是原码除符号位,其他位按位取…

【九】【算法分析与设计】双指针(3)

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…

echarts实践总结(常用一):柱状图(特点:渐变色、点击缩放、左右滑动、悬浮展示样式)

目录 第一章 echarts基本使用 第二章 echarts实践——柱状图 效果展示 第一章 echarts基本使用 Echarts常用配置项(详细入门)_echarts配置项手册-CSDN博客 第二章 echarts实践——柱状图 最近接到这么一个需求,需要画页面,然后有这么几个echarts的图需…

【网络安全】0xhacked CTF 大赛题解出炉啦!

此次 0xhacked CTF 比赛,ChainSecLabs 取得了第四名的成绩。让我们来看看比赛题目的题解吧。(题目代码仓库在文末哦~) BabyOtter 这是应该说是一个算法题,很明显需要溢出,因为精度问题,uint256(-1)/0x1…

m4v是什么文件格式?m4v视频用什么软件打开?

m4v文件格式的诞生可追溯到苹果公司。作为数字媒体领域的先锋,苹果在iTunes商店中为视频内容引入了m4v格式。其初衷是为了在保证视频质量的同时,通过管理系统,实现对数字内容的保护。这使得m4v成为iOS和macOS平台上广泛使用的视频格式。 M4V的…