自动化测试如何做?真实企业自动化测试流程,自动化测试分类...

news2024/9/21 20:37:01

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

企业自动化测试流程

自动化测试流程包括测试分析及计划、测试设计及开发、测试执行和测试总结四个阶段

C1

1、测试分析及计划
自动化可行性分析:
在进行需求自动化测试之前,先要确认是否可以实行测试自动化,必要时进行抽样demo分析(如涉及第三方系统等)。

自动化测试应该遵循以下几个前提条件:

需求变动不频繁:
项目周期为足够长的时间段;
自动化测试脚本后期可重复使用;
抽样demo分析是将实体案例进行更深层次的可行性分析,demo的选取,一般直接选择冒烟用例写成测试脚本后执行,检查脚本是否能运行通过,设计的测试点是否全部覆盖;

测试需求分析:
确认需求自动化测试可行后,对需求进行梳理,划分出可以进行自动化测试的功能点,划分的标准一般是重复性高、业务不过于复杂的功能点,便于快速脚本实现,如果选择功能点过于复杂,会花费大量的时间在脚本编写上,这样就丧失了做自动化的初衷;

在这个阶段,要确定自动化测试覆盖率以及自动化测试颗粒度,原则是在项目周期内尽可能提高自动化测试覆盖率;

2、制定测试计划
测试计划主要包括以下内容:
准入准出:自动化测试介入时间点,达到什么标准后,自动化测试结束
测试范围:确定测试需求的优先级与业务范围
进度安排:在什么时间点输出什么成果
风险评估:对项目过程中的风险进行预估并给出应对的方案
所需资源:测试所需要的人员、软件、硬件与文档等资源
工作安排:具体人员的分工

3、测试设计及开发
测试用例设计:
先进行测试用例的设计,测试用例编写完成之后,进行用例评审,评审通过后再进行测试脚本的开发。

设计自动化测试用例过程需要遵循的原则:
一个用例为一个完整的场景,覆盖核心的业务流程;
优先考虑实现正向的测试用例,辅以个别重要的反向用例;
数据计算类的用例需要在数据驱动中提供预期结果进行比对;
新增类与修改类的用例需要在新增与修改成功后重新查询比对查询结果;
用例和用例之间尽量避免产生依赖;
用例完成测试之后需要对测试场景进行还原(数据清除等),以免影响其它用例的执行;

4、脚本开发与版本控制
根据写好的测试用例,编写对应的自动化测试脚本,测试脚本的编写遵循脚本开发规范,编写过程中应考虑脚本的可维护性、可重用性、简单性与健壮性。

同时要注意确保自动化项目的结构化和一致性,脚本开发完毕后,至少运行成功3次以上,才能认为脚本已经没有问题

当日进行脚本编写前,在本地拉取Master分支代码,保证本地代码为最新版本,当日脚本编写与调式完成后,上传到自己的分支,后期统一Merge到主分支

5、测试执行
在迭代需求系统测试已经完成的情况下(如迭代需求线上发布后),采用Jenkins工具任务触发方式进行脚本的无人值守执行

执行过程中发现的有效BUG记录在华为云上并提交给对应的开发人员修复,标题前缀加上【自动化测试】,以便后期跟踪处理

开发人员修复BUG后,需要对BUG进行回归测试,如果问题的修改方案与原来的需求有偏离,那么在回归测试前,还需要对用例与脚本进行的修改

6、测试总结
对自动化测试的结果进行总结,统计发现的BUG与产生原因,提交测试报告文档

7、自动化测试报告
版本运行总结:每次新功能上线的自动化测试覆盖率,通过率,缺陷率,与上版本相比的质量数据

每日运行总结:发布后的自动化测试质量追踪,问题分析,确定缺陷的原因
包含:
所有的自动化统计报表,囊括所有的脚本运行的历史数据和近 7 天的脚本成功率趋势;

单次自动化统计报表,统计了单次运行脚本的详细信息,分为失败统计和全部统计和日志复盘信息;

单条自动化统计报表,单条用例的详细信息,包括检查点,执行步骤;
最后针对测试报告进行脚本与测试用例的维护与优化,归档;

自动化测试分类

1、Unit-单元测试
单元测试需要做DAO层和Service层的测试,数据驱动层的单元测试主要保障SQL脚本的正确性与合理性,Service层的单元测试主要保障单个功能函数逻辑的正确性

单元测试的外部依赖可以通过Mock框架 (Mockito等) 模拟返回,使得自动化测试尽量做到可以随时随地运行,某种意思上来说这一层自动化测试的投入产出比是最高的

2、Service-接口测试(集成测试)
在服务层接口测试关注的是某个接口的输入输出功能是否正确,以及业务流程的逻辑测试,初期测试自动化起步较晚,代码覆盖率不高,所以初期接口自动化策略是增加业务场景的覆盖

优先覆盖核心业务的场景:
接口所依赖的数据选择使用接口返回值的方式;
暂时不做系统间的Mock,更多的考虑系统之间的依赖;
优先做场景覆盖,之后再考虑代码覆盖;

这样做可以快速增加业务场景的覆盖,同时写好的API接口就算后期产品业务流程发生变化一样可以使用(对UI层的接口逻辑不变),以这种方式编写的脚本,后期维护成本较低。

接口测试由测试人员完成,接口测试时测试人员不需要非常详细的了解内部接口代码的实现,编写的脚本中体现了对不同接口、模块之间关系的梳理,后期在核心业务流程覆盖率较高的情况下,可以增加对单个接口的覆盖

进行接口依赖的解耦,比如数据从调用接口变为直接往数据库插入数据;
逐渐细化拆分业务场景;
由系统级的自动化测试逐渐转为灰盒与白盒自动化测试;

3、UI–页面测试
这一层主要是页面展示逻辑及界面前端与服务的集成验证,适当的UI自动化测试是有必要的,因为UI自动化可以在版本迭代回归时替测试人员进行重复的工作,实实在在的解放劳动力。

只做核心的功能的自动化覆盖,脚本可维护性尽可能提高
UI自动化测试脚本遵循Page Object设计模式;
通过数据mock的方式减少对后台数据的依赖;

UI测试由测试人员完成,在覆盖了核心场景之后,没有必要在UI层投入太多的精力和资源,因为UI界面是变化频率最高的一层,后期的维护成本太高

持续集成
有了各层的自动化测试,需要建立起持续集成体系

流程自动化,提高自动化效率
定时定量重复执行,最大化自动化测试脚本的价值

目的:
代码提交自动执行单元测试;
单元测试通过后自动部署整体的环境;
自动执行集成自动化测试 (Service/UI);
自动生成构建的详细测试报告,同时自动通知相关人员;

可以推动开发进行单元测试的覆盖,制定接口自动化脚本编写规范,增加代码的可读性、有效性与可复用性,脚本设计时尽可能脱离测试、预发布和线上三个环境数据的依赖,在时间可控的情况下增加核心业务流程UI自动化测试的覆盖

在各层自动化测试都比较成熟的情况下,后期可以加入代码覆盖率自动收集、代码静态检查等测试左移的活动以及线上数据与BUG的收集与监控(接口性能、crash率、用户行为分析等)等测试右移的活动,搭建符合公司风格测试平台等

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一次努力都是前行的力量,每一份拼搏都是成长的养料。坚持不懈,追逐梦想,奋斗是我们的座舵之船,扬帆起航向未来。

心怀梦想,步履坚定。不论前路崎岖与挑战,奋斗的火焰永不熄灭。用汗水浇灌成长,用努力书写辉煌。相信自己的力量,勇往直前,你将开创属于自己的壮丽篇章,成就人生的伟大航程。

风雨兼程,奋斗不止。每一次努力都是人生的投资,付出总有回报,坚持总有收获。在追逐梦想的道路上,不要畏惧困难,勇往直前,相信自己的力量,你将创造属于自己的辉煌人生。

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

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

相关文章

一文讲清楚地图地理坐标系

前言 我最近在做一个和地图有关的项目,这里本人地图采用的是mapbox,其中涉及一个功能需要根据用户输入的地点直接定位到地图上的对应的位置,本人开始想的是直接调用百度的接口根据地名直接获取坐标,发现在地图上的位置有偏移不够…

C++——模板的作用2:特例化

目录 模板的形式: 一.模板的多参数应用: 例: 错误使用1:使用不标准的模板形参表 ​编辑 错误使用2:使用变量作为实参传递给函数模板 二.模板的特例化: 类模板: 针对模板的特化步骤&am…

乌班图22.04安装wireguard实现异地组网

1. 前言: wireguard是新型的异地组网工具,在此之前,又已经被抛弃的pptp,l2tp,有配置复杂的openvpn,wireguard被linux作者linus赞叹优雅,于linux 5.6合并至linux内核主线。 2. 安装过程&#…

文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题

文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题 七、试说明如何使用优先队列来实现一个先进先出队列,以及如何使用优先队列来实现栈(队列和栈的定义见 10.1 节。) 文心一言: 优先队列是一种数据结构,其中…

干货|一次完整的性能测试,测试人员需要做什么?

作者介绍 邓宝菊(Kiki Deng),10 年软件测试经验,4 年团队管理经验,当前任职研发部架构质量工程部,整体负责研发部测试团队的效能、工具流程建设和人才培养。 前言 一、 规范性能测试实施流程的意义 规范…

Qt: 查看qmake相关参数设置

Qt开发中,经常会遇到qmake相关问题,比如同时安装了多个Qt版本的情况。比如我的情况是系统自带了Qt 5.12.8, 但是开发中遇到一些兼容性问题,于是又手动安装了5.9.8。 查看qmake版本,qmake -v, 虽然项目中已经指定了5.9.8, 但是系统…

通过String字符生成base64编码在生成图片

* base64转图片 //对字节数组字符串进行Base64解码并生成图片 * param base64str base64码 * return // param savePath 图片路径private static final String savePath"image_ver\\verifyCode"; 判断是否为base64编码 public static void mainDD…

关闭深度学习训练/推理进程的方法

引言 设想有一种情况,在ssh服务器训练/推理的时候,突然断线,再次打开ssh的时候,发现后台在运行,此时无法使用 ctrlc 终止,从而,可以用一个很简单的办法来结束:手动关闭进程。 方法 输…

python中如何记录日志?

日志是一种可以追踪某些软件运行时所发生事件的方法。一条日志信息对应的是一个事件的发生,而一个事件通常需要包括以下几个内容:事件发生时间、事件发生位置、事件的严重程度--日志级别、事件内容。 logging模块定义的函数和类为应用程序和库的开发实现…

Python-Python基础综合案例——数据可视化 - 动态柱状图

版本说明 当前版本号[20230729]。 版本修改说明20230729初版 目录 文章目录 版本说明目录知识总览图Python基础综合案例——数据可视化 - 动态柱状图案例效果基础柱状图通过Bar构建基础柱状图反转x和y轴将数值标签放在右侧 基础时间线柱状图创建时间线自动播放时间线设置主题…

基于FPGA的VGG16卷积神经网络加速器--WL

VGG16是一个典型的卷积神经网络,由13层卷积层,5层池化层和3层全连接层组成。且卷积层的计算时间在整个计算过程中占比极大,通过FPGA的并行运算可以有效的加快卷积层的计算速度。 一个卷积层可以有若干个卷积核,以第一层为例&#…

NetSuite 工单超额完工

用户问题 在报工时,完工数量能否超过工单上的计划数量? 解决方法 在制造相关的参数中,有一个参数控制: ALLOW OVERAGE ON WORK ORDER TRANSACTIONS •Check On允许超出工单计划数量 •Check Off不允许超出工单计划数量 Demo 工单计划数量…

前缀和拆分

前缀和 前缀和:一段序列里的前n项和 给出n个数,在给出q次问询,每次问询给出L、R,快速求出每组数组中一段L至R区间的和 给出一段数组,每次问询为求出l到r区间的和 普通方法:L到R进行遍历,那么…

Python-ElasticSearch客户端的封装(聚合查询、统计查询、全量数据)

目录 ES Python客户端介绍封装代码测试代码参考 ES Python客户端介绍 官方提供了两个客户端elasticsearch、elasticsearch-dsl pip install elasticsearchpip install elasticsearch-dsl第二个是对第一个的封装,类似ORM操作数据库,可以.filter、.group…

EverEdit的一些特殊使用教学(持续更新)

项目场景: EverEdit的使用经常一问三不知 搜也搜不到 解决方案: 先去EverEdit在线帮助文档看一下(附链接) EverEdit在线帮助文档 1.快速排序 使用快捷键时:若是小键盘,请同时按住fn键(在最左下角的ctrl旁)

220. 存在重复元素 III

220. 存在重复元素 III 原题链接:完成情况:解题思路:TreeSetsequenceSet.ceilingjava中的红黑树 参考代码: 原题链接: 220. 存在重复元素 III https://leetcode.cn/problems/contains-duplicate-iii/description/ 完…

ER系列路由器多网段划分设置指南

ER系列路由器多网段划分设置指南 - TP-LINK 服务支持 TP-LINK ER系列路由器支持划分多网段,可以针对不同的LAN接口划分网段,即每一个或多个LAN接口对应一个网段;也可以通过一个LAN接口与支持划分802.1Q VLAN的交换机进行对接,实现…

幅度调制与角度调制

文章目录 前言一、调制简介1、调制定义2、调制目的3、调制的分类 二、幅度调制(线性调制)1、幅度调制的一般模型2、常规双边带调幅 AM①、AM 信号的产生②、AM 调制器的模型③、AM 波形和频谱④、AM 信号的特点⑤、AM 包络检波⑥、调幅系数 3、抑制载波双…

Kotlin~Facade

概念 又称门面模式,为复杂系统提供简单交互接口。 角色介绍 Facade:外观类,供客户端调用,将请求委派给响应的子系统。SubSystem:子系统,独立的子设备或子类 UML 代码实现 class Light(val name: Strin…

Oracle 19c 报ORA-704 ORA-01555故障处理---惜分飞

异常断电导致数据库无法启动,尝试对数据文件进行recover操作,报ORA-00283 ORA-00742 ORA-00312错误,由于redo写丢失无法正常应用 D:\check_db>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 7月 30 07:49:19 2023 Version 19.3.0.0.0 Copyrig…