【软件测试】资深测试聊,自动化测试分层实践,彻底打通高阶...

news2024/11/28 3:36:22

目录:导读

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


前言

自动化测试的分层模型

自动化测试的分层模型,测试同学都应该很熟悉了,按照分层测试理念,自动化测试的投入产出应该是一个金字塔模型。

越是向下,投入/产出比就越高,但开展的难易程度/成本和技术要求就越高。如下图:
在这里插入图片描述

从控制质量的角度来说:
单元测试自动化是最应该投入资源去提升覆盖率的。
因为代码的质量风险越早发现,修复的成本越低,对最终交付质量的影响也越小。

从性价比的角度来说:
接口自动化测试最应该在实际的工作实践中去推动落地。
按照现在流行的前后端分离架构理念来说,接口是交互和逻辑的处理层,只要对数据的处理逻辑没问题,纯技术层面,测试效率就能得到明显的提升。

从产品和用户体验的角度来说:
UI层的自动化测试也是必不可少的。必经用户的使用体验会很直接影响用户的转化留存和商业价值变现(当然这个观点对于To C业务更为适用)。

回到质量保障的初衷,影响质量的因素有成本、范围和时间。在技术落地实践过程中,技术实践固然重要,但成本和产出依然是需要抉择和平衡的。因此,根据业务场景选择合适的自动化测试方式,就很重要。

自动化测试分层的落地前置条件

先聊聊不同的自动化测试各自的特点,再来列举它们的适用场景和前置条件。

1、UI自动化

UI自动化落地最大的挑战是需求和UI设计的频繁变化会导致大量的变更,如果需求和UI设计频繁变化,那测试框架、脚本甚至相关的测试数据都需要频繁的变更,环境和测试的维护成本大概率会高居不下,因此持续稳定的系统是UI自动化测试落地很需要的一个属性。UI自动化落地较为适用的场景有:

稳定的系统版本迭代;
线上业务主流程巡检;

2、接口自动化

相比于UI自动化,接口自动化要解决的问题是验证数据的交互和逻辑的正确性,此时要考验的则是系统设计和研发编码规范。因此接口自动化落地的前提或者说适用的场景有:

较为清晰的系统架构设计(单体架构或交互与逻辑分不清的系统,梳理逻辑就需要花费很多精力);

有一定的研发规范且执行的比较好(如果接口命名和变更无法及时同步,同样需要投入很多精力去检查);

环境的稳定性和相关的基础技术设施建设是前提条件;

3、单元自动化

单元测试要检查的对象一般是代码中的类、方法甚至某一个函数,一个系统或者服务本身就是由很多这种细小单元构成。

因此要落地单元自动化测试,有几个前置条件:
对业务需求很熟悉(如果不熟悉业务和需求细节,单元测试就无从谈起);

具备一定的技术底子(主要指编码能力,或者最起码的代码走读能力以及对技术方案的了解);

迭代内有一定的时间来设计单元测试case(单元测试相对来说是更底层更细致的活儿,需要在每次变更迭代中一边实现业务代码一边实现测试代码);

团队规模和上级支持是很重要的隐藏条件(如果是小团队且迭代较快,资源的投入势必会少很多,且如果没有上级支持,单元测试的落地大概率没有足够的时间证明其价值);

在当前的工作场景中,自动化测试只是质量保障的一个技术手段。是否分层,哪种测试手段投入多少资源,更多的是取决于面临什么问题,这些问题对质量的影响程度大小,然后才是根据具体的情况选择合适的测试手段去解决问题。

成本、范围、时间依然是影响我们做技术选型和落地的最大影响因素。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

岁月如梭,时间不等人,唯有坚持奋斗,不断超越自我,才能在繁华世界中找到真正属于自己的光芒,创造出与众不同的人生传奇!

困难是生命的试炼,奋斗是超越自我的力量。用汗水浇灌梦想的花朵,用坚持书写辉煌的篇章。不止步,不气馁,奋斗让我们绽放更美的人生!

生命的意义在于追寻梦想,而不是安于现状。为梦想而奋斗,即使经历坎坷与波折,也必将获得收获与成就。坚持不懈,才能书写出辉煌的人生!

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

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

相关文章

软件调研、研发、设计、管理、验收文档(全文档整理)

前言: 在软件开发生命周期中,调研、研发、设计、管理、验收等环节的文档编写至关重要。它们分别扮演着不同的角色,为项目的顺利进行和最终的成功提供支持和保障。 【获取方式在文末】 【在调研阶段】,文档的主要作用是记录和整…

Java环形链表(图文详解)

目录 一、判断链表中是否有环 (1)题目描述 (2)题解 二、环形链表的入环节点 (1)题目描述 (2)题解 一、判断链表中是否有环 (1)题目描述 给你一个链表的…

OCX 添加方法和事件 HTML调用ocx函数及回调 ocx又调用dll VS2017

ocx添加方法 类视图 最后面的XXXXXlib 右键 添加 添加方法。 其它默认 添加事件 类视图 最后面的XXXXX 右键 添加 添加事件。 这样编译就ocx可以了。 #include <iostream> #include <string> #include <comutil.h>CMFCActiveXControlSmartPosCtrl* …

Linux内核启动流程-第二阶段rest_init函数

一. Linux内核启动 上一篇文章简单了解了 Linux内核启动第二阶段&#xff0c;涉及的 start_kernel函数。start_kernel 函数最后调用了 rest_init 函数&#xff0c;接下来简单看一下 rest_init 函数。 本文续上一篇文章的学习&#xff0c;地址如下&#xff1a; Linux内核启…

W5500+树莓派RP2040入门教程之MQTT篇(十二)

目录 1 前言 2 什么是MQTT协议&#xff1f; 2.1 特点 2.2 应用 2.3 身份 2.4 消息质量等级 2.5 遗嘱消息 3 硬件介绍 4 硬件接线 5 代码编写 6 移植说明 7 最终现象 8 总结 9 项目链接 1 前言 随着物联网技术的快速发展&#xff0c;MQTT&#xff08;Message Queuing Telemetry …

微分算子法求解常系数线性微分方程特解

1.微分算子法求解常系数线性微分方程特解 参考资料&#xff1a;全网讲解最清楚的微分算子法&#xff01; 1.1 微分算子法的思路 1.2 f ( x ) e α x f(x)e^{\alpha x} f(x)eαx 型 1.3 f ( x ) sin ⁡ β x f(x)\sin\beta x f(x)sinβx 或 f ( x ) cos ⁡ β x f(x)\co…

oracle VM virtualbox 自动挂载共享目录

目标&#xff1a; 1 安装增强插件 2 设置共享目录 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a3ef43aa3a934e4691bad53874f6b427.png 3 修改fstab sudo chmod 777 /etc/fstab vi /etc/fstab 增加一行&#xff1a; pc /mnt/pc vboxsf defaults 0 0 例子&#xff1a…

tensor维度变换

作用函数不变大小改变shapeview / reshape删减与增加维度squeeze / unsqueeze维度扩展expand / repeat矩阵转置&#xff0c;单次和多次交换操作t / transpose / permute 1、 view reshape view与reshape效果一致&#xff0c;且可以通用。直接以view为例&#xff1a; a torc…

CH08_搬迁特性

搬迁函数&#xff08;Move Function&#xff09; 曾用名&#xff1a;搬迁函数&#xff08;Move Method&#xff09; class Account{get overdraftCharge(){...}... }class AccountType{get overdraftCharge(){...}... }动机 模块化是优秀软件设计的核心所在&#xff0c;好的模…

C语言自定义类型讲解:结构体,枚举,联合(2)

&#x1f435;本篇文章将会对位段、枚举和联合的相关知识进行讲解 1. 位段&#x1f4da; 1.1 什么是位段 位段的声明和结构体类似&#xff0c;但是有两点不同&#xff1a; 1.位段的成员必须是int&#xff0c;unsigned int&#xff0c;signed int (C99之后也可以是其他成员&am…

Redis 线程模式

Redis 是单线程吗&#xff1f; Redis 单线程指的是 [接收客户端请求 -> 解析请求 -> 进行数据读写操作 -> 发送数据给客户端] 这个过程是由一个线程 (主线程) 来完成的&#xff0c;这也是常说的 Redis 是单线程的原因。 但是 &#xff0c;Redis 程序不是单线程的&am…

nginx 反向代理 负载均衡 动静分离

一样东西的诞生通常都是为了解决某些问题&#xff0c;对于 Nginx 而言&#xff0c;也是如此。 比如&#xff0c;你出于无聊写了一个小网站&#xff0c;部署到 tomcat 之后可以正常访问 但是后来&#xff0c;你的这个小网站因为内容很诱人逐步的火了&#xff0c;用户越来越多&a…

C#开发的OpenRA游戏之雷达地图

C#开发的OpenRA游戏之雷达地图 从前面的游戏里,就可以看到在上面按钮下面留有一个区域,这个区域的作用,就是用来显示一个雷达地图,如下图所示: 从雷达地图来看,可以清楚地看到全局的动态,自己的兵力分布,还有自己的建筑分布,矿产分布等等。 在这里就来对这个雷达地图…

Python编程:使用PIL进行JPEG图像压缩的简易教程

摘要: 本文介绍了如何使用Python编程语言和wxPython图形用户界面库进行JPEG图像的压缩。通过添加滑块控件&#xff0c;我们可以调整压缩质量&#xff0c;并将压缩后的照片另存为原来的名称加上后缀"压缩质量数字"的新文件。 C:\pythoncode\new\image2small.py 完整…

AI编程助手 Amazon CodeWhisperer 全面解析与实践

目录 引言Amazon CodeWhisperer简介智能编程助手智能代码建议代码自动补全 提升代码质量代码质量提升安全性检测 支持多平台多语言 用户体验和系统兼容性用户体验文档和学习资源个性化体验系统兼容性 功能全面性和代码质量功能全面性代码生成质量和代码安全性 CodeWhisperer的代…

程序启动-大数据平台搭建

1、启动zookeeper集群 /home/cluster/zookeeper.sh start /home/cluster/zookeeper.sh stop 2、启动hadoop和yarn集群 /home/cluster/hadoop-3.3.6/sbin/start-dfs.sh /home/cluster/hadoop-3.3.6/sbin/start-yarn.sh /home/cluster/hadoop-3.3.6/sbin/stop-dfs.sh /home/clust…

以太坊代币标准ERC20、ERC165、ERC721

两个概念 ERC(Ethereum Request for Comment) 以太坊意见征集稿EIP(Ethereum Improvement Proposals)以太坊改进提案 ERC和EIP用于使得以太坊更加完善&#xff1b;在ERC中提出了很多标准&#xff0c;用的最多的标准就是它的Token标准; 有哪些标准详细见https://eips.ethereum…

预制菜行业数据分析(京东数据挖掘)

最近一段时间&#xff0c;关于预制菜进校园事件的讨论热度高涨。而这两天&#xff0c;核酸大王“张核子”转行开预制菜公司卖方便米饭的消息又被传出&#xff0c;直接让预制菜市场饱受关注。 “预制菜是近两年的风口”&#xff0c;这个结论鲸参谋早在以往的内容中专门讨论过&a…

Java 18的未来:新特性和编程实践

文章目录 引言新特性预览1. 基于值的类的进一步改进2. 模式匹配的增强3. 新的垃圾回收器4. 扩展的模块系统5. 更强大的异步编程 编程实践示例1&#xff1a;基于值的类示例2&#xff1a;模式匹配的增强示例3&#xff1a;新的垃圾回收器 结论 &#x1f389;欢迎来到Java学习路线专…

python机器学习融合模型:Stacking与Blending(附代码)

1 堆叠法Stacking 一套弱系统能变成一个强系统吗&#xff1f; 当你处在一个复杂的分类问题面前时&#xff0c;金融市场通常会出现这种情况&#xff0c;在搜索解决方案时可能会出现不同的方法。 虽然这些方法可以估计分类&#xff0c;但有时候它们都不比其他分类好。在这种情况…