8年测试总结,项目/团队如何做自动化测试?效率价值?吐血整理...
目录:导读
- 前言
- 一、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性能测试
九、总结(尾部小惊喜)
成功需要勇气与毅力,而毅力来自于内心的坚定。困难只是我们成长路上的一道关卡,只有勇敢迎接挑战并持之以恒地努力,才能不断向前,赢得属于自己的荣光!
生命中最重要的事情是找到自己热爱的事业,并为之全力以赴。只有不停地学习、不断地进步,才能让自己变得更加卓越。在追寻梦想的路上勇往直前,成就精彩人生!
生命苦短,不要将宝贵的时间浪费在没有意义的事情上。做有意义的事情,获得成就感和自豪感。在奋斗中锤炼自己的品格、提升自己的能力,让自己成为一个更好的人!
相关文章:

8年测试总结,项目/团队如何做自动化测试?效率价值?吐血整理...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…...

图像动态裁剪
1. 背景 以两级级联模型为例,第一级目标检测模型用于检测人员,第二级目标检测模型用于检测手机、对讲机等。然后实际数据采集过程中,手机、对讲机这些设备并不在人员的一级检测框内,使得二级模型训练的样本较少。 二级目标检测模…...

Thematica: 炫彩主题与黑暗奇观的Vue3之旅
✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录 一、介绍1.1 博客主题和目的1.2 Vue 3简介二、炫彩主题2.1 准备工作2.2 安装必要依赖2.3 创建Vue项目2.4 设置全局样式...

平凡的Python为什么能一跃成为世界排名第一的语言
本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 作者:大周|慕课网讲师 一、前言 本文将结合个人经历为各位同学客观的分析是否有学习Python的必要、Python适合谁学、为什么…...

Wijmo 2023 v1 Crack
改进了 FlexGrid,支持 React 18 严格模式和可访问性。 5月 15, 2023 - 10:51 新版本 特征 改进了对 React 18 的支持 - 添加了对 React 18 严格模式的支持,可帮助开发人员在开发过程中查找常见错误。辅助功能改进 - 以下是此版本中…...
万物互联时代的边缘计算安全需求与挑战
随着物联网技术的快速发展,越来越多的设备和应用程序开始互联,这不仅提高了我们的生活质量,也带来了很多新的安全威胁。边缘计算作为连接数据和应用程序的关键环节,在万物互联的时代变得尤为重要。本文将讨论万物互联背景下的边缘…...
函数序列与函数项级数
文章目录 函数序列与函数项级数函数序列函数项级数Weierstrass M 判别法 函数序列与函数项级数 函数序列 点态收敛:设 f n ( x ) : [ a , b ] → R f_n(x):\,[a,\,b]\to\bold{R} fn(x):[a,b]→R 是定义在区间 [ a , b ] [a,\,b] [a,b] 上的函数序列࿱…...

UML时序图详解
上篇文章,介绍了UML状态图,并通过visio绘制一个全自动洗衣机的UML状态图实例进行讲解。 本篇,来继续介绍UML中的另一种图——时序图。 1 时序图简介 时序图(Sequence Diagram),也叫顺序图,或序列图,是一…...

Centos7.6部署postgresql15主从
目录 安装pg15(master和standby)主数据库配置(master)初始化数据库创建归档日志目录设置数据库访问权限修改数据库配置文件开启数据库 从数据库配置(standby)同步主库的数据文件创建文件standby.signal启动从数据库 主从状态验证master上验证standby上验…...

【ThinkPHP6系列学习-2】多应用模式配置
这里写一写TP6下配置多应用。因为TP6和TP5有所差异,TP6默认是单应用模式(单模块),而我们实际项目中往往是多应用的(多个模块),所以在利用TP6是就需要进行配置,开启多应用模式。 目录…...

Linux内核oops panic简析
源码基于:Linux 5.4 0. 前言 内核异常的级别大致分为三个:BUG、oops、panic。 BUG 是指那些不符合内核的正常设计,但内核能够检测出来并且对系统运行不会产生影响的问题,比如在原子上下文中休眠,在内核中用 BUG 标识。…...

Spark大数据处理讲课笔记4.8 Spark SQL典型案例
文章目录 零、本讲学习目标一、使用Spark SQL实现词频统计(一)数据源 - words.txt(二)创建Maven项目(三)添加依赖和构建插件(四)修改源目录名称(五)创建日志属…...

WhatsApp Business 多人使用终极指南
今时今日,几乎每个人的手机上都安装了 WhatsApp,不少电商更会依赖 WhatsApp作为和客户沟通的主要渠道。但对有一定规模的店铺来说,WhatsApp绑定一个号码和设备的设定实在很不方便。如何才能用WhatsApp Business批量处理客户查询呢?…...
布局和视图的常用属性
0、用户界面由布局和GUI组件组成 之前的项目中都是使用线性布局LinearLayout,LinearLayout将视图显示在一行或一列中。其使用方法如下所示: <LinearLayoutxmlns:android"http://schemas.android.com/apk/res/android"android:layout_width…...

解说天下之操作系统
解说天下之操作系统 本文由桌案drawon (https://www.drawon.cn),云晶(https://www.yunjingxz.com)创始人根据多年从业经验, 从操作系统的起源,应用分类, 设计分类,以及资源使用角度对操作系统进…...
Pruning 系列 (八)layer常用简枝(torch)方法
环境 python 3.9numpy 1.24.1pytorch 2.0.0+cu117一、prune.random_unstructured pytorch:文档地址 用法: torch.nn.utils.prune.random_unstructured(module, name, amount) 参数: module(torch.nn.Module) -包含要修剪的张量的模块 name(str) -module 中的参数名称,将…...

Gigabyte Z490 Vision D i9-10900k电脑 Hackintosh 黑苹果efi引导文件
原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板Gigabyte Z490 Vision D 处理器Intel i9-10900k已驱动 内存64GB G.Skill Trident Z 3600Mhz CL18已驱动 硬盘西数 WDS250G3X0C-00SJG0 ( SN750) …...

UWB智慧工厂人员定位系统源码,人员在岗监控、车辆实时轨迹监控源码
近年来人员定位系统在工业领域的发展势头迅猛,工业识别与定位成为促进制造业数字化的关键技术。通过实时定位可以判断所有的人、物、车的位置。实时定位系统要适用于复杂工业环境,单一技术是很难实现的,需要融合多种不同的定位技术࿰…...
从认识元注解到使用元注解
前言:注解是Java语言中的一种特殊语法,它可以为代码提供更加灵活的元数据信息,方便代码的处理和使用。而元注解则是用于定义注解的注解,它可以为注解提供更多的元数据信息和特性。本文将介绍如何自定义元注解,包括认识…...

【C++从0到王者】第六站:类和对象(下)
文章目录 一、再谈构造函数1.构造函数体赋值2.初始化列表1>初始化列表的使用2>初始化列表的注意事项 3.explicit关键词 二、static成员1.如何统计当前程序中变量的个数2.static的特性3.从1加到n4.设计一个类,只能在栈或者堆上开辟空间 三、友元1.友元函数2.友…...
基于责任链模式进行订单参数的校验
目录 概念 总体分为三步 我们定义责任链模式接口 各个节点的具体逻辑 用户校验器 库存校验器 商品校验器 把责任链编排在一起 概念 责任链模式 是一种行为设计模式 可以通过将一系列处理器按照顺序连接起来 使每个处理器都有机会处理请求 我理解的责任链的实现类似于…...

电路图识图基础知识-自耦变压器降压启动电动机控制电路(十六)
自耦变压器降压启动电动机控制电路 自耦变压器降压启动电动机控制电路是将自耦变压器的原边绕组接于电源侧,副边绕组接 于电机侧。电动机定子绕组启动时的电压为自耦变压器降压后得到的电压,这样可以减少电动 机的启动电流和启动力矩,当电动…...
神经网络-Day45
目录 一、tensorboard的基本操作1.1 发展历史1.2 tensorboard的原理 二、tensorboard实战2.1 cifar-10 MLP实战2.2 cifar-10 CNN实战 在神经网络训练中,为了帮助理解,借用了很多的组件,比如训练进度条、可视化的loss下降曲线、权重分布图&…...
AI+3D 视觉重塑塑料袋拆垛新范式:迁移科技解锁工业自动化新高度
在工业自动化浪潮席卷全球的当下,仓储物流环节的效率与精准度成为企业降本增效的关键战场。其中,塑料袋拆垛作为高频、高重复性的作业场景,传统人工或机械臂操作面临着诸多挑战。迁移科技,作为行业领先的 3D 工业相机和 3D 视觉系…...

从 Stdio 到 HTTP SSE,在 APIPark 托管 MCP Server
MCP(Model Context Protocol,模型上下文协议) 是一种由 Anthropic 公司于 2024 年 11 月推出的开源通信协议,旨在标准化大型语言模型(LLM)与外部数据源和工具之间的交互。 它通过定义统一的接口和通信规则…...

使用BERT/BiLSTM + CRF 模型进行NER进展记录~
使用代码处理数据集,发现了一些问题,以及解决办法~ 下载了一组数据集,数据存放在CSV中,GBK格式。如下: 首先对每一列直接进行NER抽取,结果非常不好: 几乎是乱抽取的,解决办法是自己创…...
MYSQL中常见的函数和使用
字符串函数 CONCAT(str1,str2,...,strN) :用于将多个字符串连接成一个字符串。例如,SELECT CONCAT(SQL, , 函数) ,结果为 “SQL 函数”。 LOWER(str) :将字符串中的所有字母转换为小写。例如,SELECT LOWER(MySQL Fun…...

(javaSE)Java数组进阶:数组初始化 数组访问 数组中的jvm 空指针异常
数组的基础 什么是数组呢? 数组指的是一种容器,可以用来存储同种数据类型的多个值 数组的初始化 初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。 数组初始化的两种方式:静态初始化,动态初始化 数组的静态初始化 初始化…...
PAT-甲级JAVA题解(更新中...)
使用JAVA语言进行算法练习,但是有些会出现运行超时情况. 题目链接A1001A1001-PAT甲级JAVA题解 AB FormatA1005A1005-PAT甲级JAVA题解 Spell It RightA1006A1006-PAT甲级JAVA题解 Sign In and Sign OutA1011A1011-PAT甲级JAVA题解World Cup BettingA1012A1012 PAT甲级JAVA题解 …...

jQuery和CSS3卡片列表布局特效
这是一款jQuery和CSS3卡片列表布局特效。该卡片布局使用owl.carousel.js来制作轮播效果,使用简单的css代码来制作卡片布局,整体效果时尚大方。 预览 下载 使用方法 在页面最后引入jquery和owl.carousel.js相关文件。 <link rel"stylesheet&qu…...