资深老鸟,自动化测试分层模型与落地总结,“我“该如何提升?

目录:导读

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


前言

1、自动化测试的分层模型

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

越是向下,投入/产出比就越高,但开展的难易程度/成本和技术要求就越高。

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

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

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

1)UI自动化

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

UI自动化落地较为适用的场景有:
稳定的系统版本迭代;
线上业务主流程巡检;

2)接口自动化

相比于UI自动化,接口自动化要解决的问题是验证数据的交互和逻辑的正确性,此时要考验的则是系统设计和研发编码规范。

因此接口自动化落地的前提或者说适用的场景有:

较为清晰的系统架构设计(单体架构或交互与逻辑分不清的系统,梳理逻辑就需要花费很多精力);
有一定的研发规范且执行的比较好(如果接口命名和变更无法及时同步,同样需要投入很多精力去检查);

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

3)单元自动化

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

因此要落地单元自动化测试,有几个前置条件:

对业务需求很熟悉(如果不熟悉业务和需求细节,单元测试就无从谈起);
具备一定的技术底子(主要指编码能力,或者最起码的代码走读能力以及对技术方案的了解);

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

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

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

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

3、技术菜鸟如何提升自己的能力

首先,要承认成长是一个比较长的过程,而非一蹴而就的事情。

成长是什么?

我个人认为成长的三要素是技术+经验+心态。技术是解决问题的手段,经验是对解决问题过程的抽象总结,心态则是遇到问题后的应激反应,或者可以理解为看待问题的角度。

技术的获取和熟练,需要不断的学习实践,才能形成自己的知识体系。应用技术解决问题的过程和结果优劣,最终经过复盘思考总结形成了经验。知识体系+经验,会不断修正个人面对问题时的心态,最终会形成自己的思维逻辑体系,或者称之为方法论。

其次,职业发展规划并没有标准答案,也没有适用于所有人的模版。我个人的理解,职业发展规划如何制定,取决于你想要获得什么东西,你想成为一个什么样的人。

比如你想成为一个销售冠军,那除了专业的销售方法和对产品的了解,你还要具备很强的同理心以及沟通交流谈判能力。

再比如你想成为一个技术管理者,除了技术深度,你还需要具备一定的技术广度以及基于这两项之上的技术前瞻性和技术架构设计能力。
除此之外,团队管理、目标制定、协调沟通等能力也是你必须具备的能力,这些因素缺一不可。

先想清楚自己想获得什么东西,自己要成为专场或者专业领域内的什么人,再考虑职业规划也为时不晚。

当然,不建议一开始就制定很宏大的目标或者很高级的职业Title,这样很容易成为又一个伤仲永的案例。

最开始不妨先制定一个短期内更容易实现的目标,在成长过程中随着个人认知的提升不断修正这个目标,进行延续性的改变,这是更适合普通人的一种个人成长和职业发展规划制定方法。

回到技术话题上,如何从技术菜鸟成长为一个技术大佬?

以自动化测试为切入点,下面是一些提升技术能力的经验之谈。

自动化测试首先要做到数据和脚本分离,管理测试数据的方法有很多,比如参数化文件(Excel),配置文件以及通过数据库管理数据。解决测试数据管理问题,过程中要学习如何设计表结构,测试服务访问数据库需要用到一些DAL工具如Hibernate、Mybatis或其他ORM框架。

自动化测试最起码需要能自动执行,这个时候就需要考虑持续集成如何实现。最基本的Jenkins如何配置,要实现多个测试任务同时执行,就需要了解Pipeline流水线的构建。再进一步的持续集成流水线,需要能监听到代码的变更和发布然后自动执行自动化测试任务。

更进一步来说,要很好的构建持续集成流水线,需要对代码分支命名规范以及代码版本进行管控,这就涉及到了代码仓库如Gitlab和版本管理工具如Git。

要将自动化测试任务融入持续集成流水线,还需要合理完善的研发测试流程,这时候测试可以推动研发质量流程和代码管理规范。

如果团队规模变大或者业务规模更大,就需要自动化测试平台来进行统一的任务管理,而开发自动化测试平台,就需要梳理团队对自动化的需求、设计原型图、开发自动化平台。

这个过程中,自动化测试服务需要注册到注册中心,一些参数文件需要维护,这个时候会顺带了解和使用配置中心和注册中心,比如Apollo,Nacos。

再扩展,就会涉及到缓存、消息队列和分布式任务管理的范畴,进而了解和使用Redis、MQ、XX-Job等技术组件。

以此类推,当你的自动化测试做的足够好时,这个过程需要你解决很多问题,了解很多新的知识,而技术成长最快的方法则是,在实际工作中不断解决问题,不断复盘和技术优化。

这就是技术菜鸟技术提升的过程,除了生而知之或者极有天赋,绝大多数技术同学提升技术,都是这个过程。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不论前路多么崎岖,努力奋斗的每一天都在铸就辉煌。坚守初心,追逐梦想,勇敢面对挑战,终将收获成功的喜悦。奋斗是通向自我超越的唯一路径。

只有敢于坚持,才能超越自我;只有不停奋斗,才能抵达梦想的彼岸。困难是通往成功的阶梯,只要勇敢迈出每一步,终会登上巅峰。

在苦难中磨练意志,在挫折中燃烧激情,用汗水浇灌成就,只有不屈不挠的奋斗才能创造辉煌的人生。

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

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

相关文章

可视化场景(4):财务场景,公司经营的晴雨表。

在财务场景中,可视化大屏具有以下8个应用价值: 销售和收入分析 可视化大屏可以展示销售额、收入来源、销售渠道等数据,帮助财务团队分析销售趋势和收入结构,发现潜在的增长机会和问题。 成本和费用管理 可视化大屏可以显示成本…

超越文本:对话式人工智能如何理解上下文

智能对话助手,让沟通无障碍 在当今的数字时代,对话式人工智能已经成为我们日常互动中不可或缺的一部分,从客户服务机器人到 Siri 和 Google Assistant 等个人助理。 这些系统从简单的基于文本的响应到理解上下文的演变是人工智能的重大飞跃。…

onecloud刷CasaOS系统后如何安装内网穿透实现公网访问本地文件

文章目录 1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 2月底,玩客云APP正式停止运营,不再提供上传、云添加功能。3月初,有用户进行了测试,局域网内的各种服务还能继续使用,但…

BugKu刷题日记(web)一

文章目录 lfi题目页面恶意构造解题思路 Whois题目页面恶意构造解题思路 lfi 来源:https://ctf.bugku.com/challenges/detail/id/429.html 漏洞类型:文件包含漏洞 同类型BugKu:baby ifi、baby ifi 2 题目页面 恶意构造 http://example.com/…

解锁基于LLMS的咒语:通过上下文学习重新思考对齐

一、写作动机: 最近的一项研究,LIMA,表明仅使用1K个示例进行SFT也可以实现显著的对齐性能,这表明对齐微调的效果可能是“表面的”。(知识和推理能力来源于预训练,而不是必须通过对齐微调获得的。&#xff…

带大家做一个,易上手的家常炒紫甘蓝

这里 拿了半个紫甘蓝 半个就够炒一盘子 按 片 切成 片条 因为 你切开就会发现 里面很多地方会变成一条一条的 切小一点 因为紫甘蓝相对其他蔬菜 会硬一些 切大了 不好咬 然后过清水洗干净 两瓣蒜 切片 然后 起锅烧油 下入三个干辣椒 炒一小会儿 然后 下入 甘蓝翻炒 翻炒几…

uni-app微信小程序上拉加载,下拉刷新

pages.json配置官网链接 onPullDownRefresh、onReachBottom函数跟生命周期同级 data() {return {orderList:[],total: null, //总共多少条数据page: 1,pageSize: 10,} }, onLoad() {}, mounted(){this.getInfo() }, methods:{getInfo(){API.getListxxx().then(res > {const…

寻找用户痛点塑造产品价值 4大注意事项

移动互联网时代,用户价值不言而喻,只有拥有用户思维,寻找到用户痛点,塑造出产品价值,才能打造出爆款产品。因此要塑造产品价值,核心是寻找用户痛点。如果没有找到用户痛点,意味着产品无法满足用…

Linux 管道

目录 一、认识管道 二、匿名管道 pipe函数 用法: pipefd: 匿名管道通信: 三、命名管道 概念: 创建: 特性: 用途: 四、命名管道和匿名管道的区别 命名: 持久性:…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Refresh)

可以进行页面下拉操作并显示刷新动效的容器组件。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 从API version 11开始,Refresh子组件会跟随手势下拉而下移…

Autosar教程-Mcal教程-Lin配置教程

3.7LIN配置、生成 3.7.1 配置通用设置 3.7.2 配置Dem参数 3.7.3 配置Lin通道 3.7.4配置生成命令 参照Dio生成命令方法,创建Lin生成命令,创建完成后按下面提供的信息配置生成命令。 实际上MCAL代码并不能单独生成,它需要和BSW的配置文件一…

企业如何高效管理微信里的客户?

对于企业来说,懂得高效管理微信列表的客户是非常重要的一件事,只有把客户管理好了,才能更好地提高客户的满意度和忠诚度,我们的销售业务才能顺利进行。 那么,应该怎样管理才能算是高效管理呢?下面就给大家…