8年测试总结,项目/团队如何做自动化测试?效率价值?吐血整理...

news2024/11/28 22:56:08

目录:导读

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


前言

Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/

自动化的目标是什么?

从个人的角度来讲,通过引入自动化测试工具,可以有效的时间,提高测试效率。(真的么?)
同时可以体现自己的代码力,提升自己的价值和议价能力(嗯,好像是这样的)。
从团队的角度来说,当我们决定引入自动化测试时,我们的期望是什么?

至少有以下几点:
突破现有瓶颈,提升测试效能,同时降低人力成本(注意不能把降低人力成本放在核心位置,否则容易适得其反);
降低人为错误率,规避因为人的疲劳和惯性思维以及投机取巧导致的错误;
提升执行效率,以及应对高强度连轴转任务,搞定长时间的系统稳定性测试和高并发场景的压力测试;
增加软件的信任程度,解释下这点,个人认为,自动化测试是用来保障产品的质量下线的,当我们执行完正确自动化脚本后,我们可以信任当前的交付物是基本可靠的;

引入自动化的成本问题?

从个人的角度来讲,开展自动化测试,投入的基本上就是时间成本(不管在公司倒腾还是回家研究,付出的都是时间成本),但转换到团队的角度,事情就会变得比较复杂了。我们需要综合考量一些影响因数。

主要有以下三个方面:

时间
项目的持续时间短:当有一些项目紧急程度非常高,从立项到结束只有一个月的时间,这个时候如果强行要做自动化测试,维护成本将会非常高,不行的。

项目存在的时间短:一些外包类项目或者政治任务的项目(这类项目其实并不少见)。并不会长期存在,或者没有长期测试的必要,那么也不需要考虑引入自动化测试。

成本
团队成员的能力成本:如果要引入自动化测试,那测试人员的能力要求也会相对高一些,例如他要懂协议,需要了解协议的传输过程及原理,还要有一定的编码能力。这类人员的成本也会相对高些。

研发团队的配合成本:想要更好的自动化,前提得是有标准化的东西。由于测试不是研发过程的源头。所以我们能够改变的东西很少,只能去尝试、推动开发人员做一些改变。

时间投入的成本:不管是开发脚本还是维护脚本,都是需要时间投入。虽然从长远上来看,自动化的效率肯定是会提高的。但是针对某个迭代来说,是需要从原来的功能测试时间中抽出一部分时间来编写脚本和维护脚本的。那么是否可以保证这些时间的投入并算入工时,而不是靠团队成员利用业余时间来投入呢?

效率问题
在引入自动化测试工具的时候,工具并没有告诉你要自动化什么东西,哪些东西值得做自动化。

盲目地追求自动化覆盖率并不是什么正确的事。

个人认为,我们可以从两个方向上做尝试:
基于风险的自动化测试:我们应该最先测试最有失败风险的功能点,如果发生所述失败,这些功能也会带来最大的负面后果。

例如:会影响核心流程的使用、在测试环节中BUG相对集中的功能点、影响服务级别协议 (SLA)的功能点以及可以造成经济损失的功能点。

基于ROI的自动化测试:我们知道,基于BUG的修复成本,越底层的自动化测试越能产生高价值。我们会建议优先引入接口/集成自动化测试,尽早的发现问题。

当我们能够很好地平衡这几者的关系后,引入自动化测试才有可能产生真正的价值,并长期落地,否则很容易变成面子工程,半路夭折。

自动化测试的误区?

为了做自动化测试而做自动化测试
事先没有做好规划,管理好引入自动化测试的目标和期待值,只是人云亦云。盲目幻想,认为自动化测试能够省钱,想着搞起来自动化,省掉多少多少人力成本;

自动化测试为什么发现不了BUG
发现更多的新缺陷应该是手工测试的主要目的,不能期望自动化测试去发现更多新缺陷。事实上,自动化测试主要用于发现原来的缺陷。用于回归测试,而大量的新业务测试更多地还是依赖手工测试。

能录制回放的自动化工具是最好的
在早期的自动化测试工具中,都会有录制回放的功能。这个功能有多鸡肋,实际用过的同学都应该清楚,说多了都是泪。

现企业常用的几种自动化测试:
接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

成功需要勇气与毅力,而毅力来自于内心的坚定。困难只是我们成长路上的一道关卡,只有勇敢迎接挑战并持之以恒地努力,才能不断向前,赢得属于自己的荣光!

生命中最重要的事情是找到自己热爱的事业,并为之全力以赴。只有不停地学习、不断地进步,才能让自己变得更加卓越。在追寻梦想的路上勇往直前,成就精彩人生!

生命苦短,不要将宝贵的时间浪费在没有意义的事情上。做有意义的事情,获得成就感和自豪感。在奋斗中锤炼自己的品格、提升自己的能力,让自己成为一个更好的人!

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

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

相关文章

Linux:centos:用户基础设置》》添加,修改属性,删除,修改密码

useradd (属性) 用户 新建用户 usermod (属性) 用户 调整用户属性 userdel (属性) 用户 删除用户 passwd (属性) 用户 修改用户密…

科技云报道:国内AI大模型鏖战,上演科技罗生门

科技云报道原创。 ChatGPT的狂热从年初持续至今,这份狂热不仅仅来源于用户层,从业者、投资人以及企业可以说有过之无不及。 于是,这些投资人、从业者以及企业将狂热转化,宣布入局大模型赛道并推出相关产品。一时间,大…

百万年薪架构师甩出的SpringBoot趣味实战手册,GitHub标星81.6K

前言 本书内容很全面,囊括了Spring生态的常用技术,如MVC、持久化、 Redis、定时任务、消息队列、搜索引擎。本书知识讲解由浅到深,循序渐进,从Hello World讲到Spring核心原理;技术讲解深入浅出,总能以“接…

无线传感网络的节点部署覆盖及能源消耗问题研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 随着微电子技术的不断发展,被称作传感器节点的微小智能嵌入式设备不断的被开发出来,推动了无线传感器网络的发展。一个典型的无…

Matlab Python 如何在figure上画出表格【优化】

之前写过一次博客 Matlab&Python 如何在figure上画出表格 这次是对该博客的优化 图的结果见下相对之前有很大的进步: coding 在这里包含数据的绘制,表格的添加,设置表格的大小、位置等 clc clear close all; path(path,E:\new_matlab_Too…

如何获取不同分区模板的基因表达矩阵,abagen: Allen 大脑图谱遗传数据工具箱的使用笔记

abagen: Allen 大脑图谱遗传数据工具箱的使用笔记 介绍使用abagen工具箱进行标准化处理和报告代码实例——获取Schaefer2018_400Parcels_7Networks的基因表达数据基于surf空间的模板基于volume空间的模板参考文献介绍 基因表达从根本上塑造了人类大脑的结构和功能结构。像Allen…

【Linux】shell编程—数组

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、shell数组1,数组的概念2.数组的定义 二、Shell数组操作1. 获取数组的所有元素的列表2. 获取数组的所有元素下标3.取数组的元素个数4. 获取数组的某个元素的值5.…

Jmeter 压测 QPS

文章目录 1、准备工作1.1 Jmeter的基本概念1.2 Jmeter的作用1.3.Windows下Jmeter下载安装1.4 Jmeter的目录结构1.5 启动1.6 设置中文1.6.1 设置调整1.6.2 配置文件调整(一劳永逸) 2、Jmeter线程组基本操作2.1 线程组是什么2.2 线程组2.2.1 创建线程组2.2…

原型part学习NeurIPS2019

当我们面临具有挑战性的图像分类任务时,我们希望通过分解part来解释推理。每一类别的更多原型证据有助于做出最终分类决策。作者提出一种深度网络架构:Prototypical Part网络即ProtoPNet。网络通过寻找原型part来解释图像,并基于原型part进行…

同步 Swagger URL问题, 用这个插件就可解决

这个开源的 API 管理工具叫 Postcat, 支持从 Swagger URL 增量同步 API 数据到 Postcat。 使用 进入 API 模块,鼠标移动到主按钮加号,下拉看到从 Swagger 同步 URL 的选项。 填写完配置点击立即同步即可同步 API 数据。 同步规则 新的数据覆盖旧的数据…

PHP语言调用api接口,电商平台商品详情接口(封装可高并发)

PHP是为Web而生的语言,它提供了一些强大的内置函数来处理HTTP请求和响应。PHP为开发人员提供了一些Web开发工具,包括HTML、CSS、JavaScript以及各种数据库的连接和互动。与其他Web开发工具相比,PHP可以更加高效地运转与发挥作用。 PHP表现出…

Matlab 非线性迭代法(3)阻尼牛顿法 L-M

高斯牛顿法详解_我只是一只自动小青蛙的博客-CSDN博客 一、思想 先看一下牛顿高斯迭代法的缺点: 1、在计算的过程中可能会出现奇异矩阵(不满秩),比如:J(k)​)TJ(k) 为病态矩阵的时候就不能得到正确的解,或…

如何提升性能测试效能

上周六应邀在天津devops峰会的质量内建专场做了一次分享,主题是《稳定性保障利器:全链路压测》。 其中关于全链路压测对质量内建的意义,我做了一个总结,如下图所示。本文基于下图做了展开描述,仅供参考。 如何理解性能…

从零开始Vue3+Element Plus后台管理系统(八)——模仿禅道做一个Vue3版本的高级查询组件

暗黑模式 使用 Vue3element Plus 简单模仿了禅道系统的高级搜索组件,说简单也有点复杂,还没有完全开发完,但是大体架子有了,剩下一些功能点继续coding。边开发边记录吧,因为这个相比之前的内容确实复杂一些&#xff0c…

Java的基操,基操(一)

🔥二进制🔥二进制和十进制的转化🔥注释🔥标识符🔥关键字/保留字🔥变量(variable) 🔥二进制 二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于 1679 …

Helm chart 常用命令以及原理和生产实践

问: 到哪里去搜索helm package? 答: artifacthub.io Helm 的实质就是搞一些模版,最终依据这些模版生成k8s的系列yaml文件(deployemnt,service,secret,map等等),从而在k8s上能够简单部署出完整应用。可以用helm template查看最终生成的k8s部署文件。 helm version…

MQTT客户端应用编程及接口分析

MQTT客户端应用编程及接口分析 MQTT协议简介 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。 客户端服务端安装 1.安装 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-…

SpringCloud_服务注册中心_Consul(八)

SpringCloud_服务注册中心_Consul(八) 分为五部分 Consul简介 安装并运行Consul 服务提供者 服务消费者 三个注册中心异同点 Consul简介 官网:https://developer.hashicorp.com/consul/docs/intro 是Go语言写的 Consul是一套开源的分布式服务发现和配置管理系统&am…

GB50312-2016标准中需要检测的参数(AEMFLUKE)含双绞线和光

很多同学经常搞不清GB50312-2016标准的规定测试参数,或者说和测试设备对不上号。特意从标准中摘抄出来,供大家参考。 ACR-F(Attenuation to Crosstalk Ratio at the Far-end) 衰减远端串音比 ACR-N(Attenuation to Crosstalk Ratio at the Near-end)衰…

用于申威Alpha指令集处理器CModel裸机(不带操作系统)的CoreMark性能测试程序源码编译流程

CoreMark是一个综合基准,用于测量嵌入式系统中使用的中央处理器(CPU)的性能。它是在2009由eembc的shay gal-on开发的,并且试图将其发展成为工业标准,取代过时的dehrystone基准。代码用C编写,包含以下算法:列表处理(增删…