Python自动化测试(1)-自动化测试及基本技术手段概述

生产力概述
在如今以google为首的互联网时代,软件的开发和生产模式都已经发生了变化, 在《参与感》一书提到:某位从微软出来的工程师很困惑,微软在google还有facebook这些公司发展的时候,为何为感觉没法有效还击,核心问题就是软件生产模式不一样 [1] ,微软当时的模式已经严重落伍了。
目前IT行业的就基本上是“天下武功,唯快不破”的时代了。开发要变成敏捷,测试也同样变成敏捷,开发要快,测试同样也要快。
在新趋势下面,一切都要快,然而快并不意味着降低质量。要“又快又好”的目标,只能通过提升工具和技能来提升生产力了。
在传统的机械工业,提升生产力的方式有两种:
- 先进的管理制度(流水线的生产方式)
- 先进的生产设备(线上的自动化设备)
同样对于IT行业来说,提升生产力也对应着两种方式:
- 先进的管理制度(持续集成的生产方式)
- 先进的生产设备(生产过程自动化工具)
纵观所以的行业发展历史,生产力的提升往往是以落实“制度理论”和“先进工具”来产生的。
软件测试是软件开发过程中必不可少的一部分。不管是传统IT公司的瀑布模式软件工程,还是目前新兴的互联网公司的敏捷模式软件工程,这个生产环节都是存在的,因为它是软件质量保证的手段。
同时,为了顺应对生产力要求很高的现代软件工程,测试从业人员也需要以先进的理念和工具来武装自己。
在本文里面不扯情怀或者说教“行业无贵贱这分“式的心灵鸡汤,本文直接提 生产力 。毕竟绝大数的企业的第一要义就是要营利,要赚钱,不管社会有多残酷,不管人有多变,如下两点应该是不太会变的:
- 企业需要营利和增长
- 个人需要收入和成长
先进的管理制度就不多说了,目前基本上行业已经达成比较好的主流意见了--”敏捷开发,持续集成,快速迭代“。最后落实到现实生产中,还是要做”自动化“,否则一切都是空谈。
- 企业为什么需要自动化?因为这样有助于生产力的提升 。
- 个人为什么需要自动化?因为这样可以职业能力和竞争力。
OK,本系列的文章先从大处着眼,但是要从小处着手。最后”小“到现代软件生产里面的”软件测试“这个职能角色。 上面陈述了那么多,对于测试行业整体来说,有如下几个结论:
- 软件测试的过程是不会消失
- 测试人员的技能要求会显著提升,甚至和开发人员要求不相上下
- 纯手工操作的测试技能会被逐渐失去市场
| [1] | 《参与感》.黎万强.2014-08 |
自动化的利弊陈述
正如制造工业的情形一样,大家都知道流水线和先进设备有助于提升生产力,但是为什么绝大多数制造工厂又不这么做呢?原因很简单:
- 首次投入成本过于昂贵
- 后期还存在巨大的生产设备维护成本
- 人员素质要求过高
在软件工业的测试行业也同样存在同样的问题,自动化的测试实际上是相当于在功能代码之上,还要投入开发另外一个项目并维护,这样也无法避免的需要耗费宝贵的开发资源。
现在的情形说极端一点就是:
- 做 ”自动化“ 是找死
- 不做 ”自动化“ 是等死
现实一点解读就是:”找死“的不一定死,”等死“的则必然死。 ”找死“ 虽然说是主动寻死,但是这样的人至少还是在想办法求生路,存在成功的可能,”等死“ 则是在消磨和透支自己的时间和机会,只能被动受死。
综上:如果有长远的产品线和长远的眼光,决策者都应该花一定的精力来做 ”自动化“。这里所说的 ”长远“ 是指生产过程需要有足够的量或者时间来收回自动化投入上产生的首次成本
阶段小结
此文作为后续的 自动化测试 系列文章的开端。后续将从具体的技术手段着手,以提升生产力,解放重复和管繁琐的手工生产模式为目的,希望能够对此行业的从业人员有一些参考,如果能够给本行业的发展起到一些积极的作用,也就达到了写此文的目的了吧。
最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了
以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。
关注下方我的微信公众号免费领取!↓ ↓ ↓ ↓ ↓
相关文章:
Python自动化测试(1)-自动化测试及基本技术手段概述
生产力概述 在如今以google为首的互联网时代,软件的开发和生产模式都已经发生了变化, 在《参与感》一书提到:某位从微软出来的工程师很困惑,微软在google还有facebook这些公司发展的时候,为何为感觉没法有效还击&…...
小程序中如何查看会员的余额和变更记录
通过查看会员的余额和变更记录,可以帮助商家更好地管理会员资金,提供更好的服务和用户体验。下面将介绍小程序中如何查看会员的余额以及余额的变更记录。 1. 找到指定的会员卡。在管理员后台->会员管理处,找到需要查看余额和记录的会员…...
【项目经验】elementui--table表格自定义表头及bug
一.思路 首先我们肯定得循环表头,我们原生js封装的表格的实现原理就是这样。其次我们要把自己循环的label显示出来,对应的prop也要和表格数据相对应。用div标签循环都会出现错误(div里面套column),大家不要踩坑。第一…...
flink实现kafka、doris精准一次说明
前言说明:本文档只讨论数据源为kafka的情况实现kafka和doris的精准一次写入 flink的kafka连接器已经实现了自动提交偏移量到kafka,当flink中的数据写入成功后,flink会将这批次数据的offset提交到kafka,程序重启时,kafka中记录了当前groupId消费的offset位置,开始消费时将…...
【git】git commit、push之前自动执行脚本
可以使用 Git 的钩子(hooks)功能。Git 钩子是在特定事件发生时执行自定义脚本的方式。 下面是一个使用 pre-commit 钩子的例子,用于在执行 git commit 之前自动执行脚本: 进入你的 Git 仓库的根目录。进入 .git/hooks 目录&…...
基于springboot+vue的加盟店管理系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...
Gin中的Cookie和Session的用法
Gin中的Cookie和Session的用法 文章目录 Gin中的Cookie和Session的用法介绍Cookie代码演示 Session代码展示 介绍 cookie 和 session 是 Web 开发中常用的两种技术,主要用于跟踪用户的状态信息。 Cookie func (c *Context) Cookie(name string, value string, max…...
【算法】反悔贪心
文章目录 反悔贪心力扣题目列表630. 课程表 III871. 最低加油次数LCP 30. 魔塔游戏2813. 子序列最大优雅度 洛谷题目列表P2949 [USACO09OPEN] Work Scheduling GP1209 [USACO1.3] 修理牛棚 Barn RepairP2123 皇后游戏(🚹省选/NOI− TODO) 相关…...
Hadoop的安装和使用,Windows使用shell命令简单操作HDFS
1,Hadoop简介 Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性。 高可靠性。 高效性。 高可扩展性。 高容错性。 成本低。 运行在Linux平台上。 支持多种编程…...
ubuntu上ffmpeg使用framebuffer显示video
这个主题是想验证使用fbdev(Linux framebuffer device),将video直接显示到Linux framebuffer上,在FFmpeg中对应的FFOutputFormat 就是ff_fbdev_muxer。 const FFOutputFormat ff_fbdev_muxer {.p.name "fbdev",.p.long_…...
82 # koa-bodyparser 中间件的使用以及实现
准备工作 安装依赖 npm init -y npm i koakoa 文档:https://koajs.cn/# koa 中不能用回调的方式来实现,因为 async 函数执行的时候不会等待回调完成 app.use(async (ctx, next) > {console.log(ctx.path, ctx.method);if (ctx.path "/login…...
计算一串输出数字的累加和
计算一个文件内数字的累加和 awk {sum$1}END{print sum} 直接抽取数据以后的打印是这样的 cat step-iostat.1125.log |grep sda |cut -c "49-56" |awk {sum$1}END{print sum}...
python包导入原理解析
原文链接: https://www.cnblogs.com/hi3254014978/p/15317976.html 根据编程经验的不同,我们在运行程序时可能经常或者偶尔碰到下面这些问题,仔细观察后会发现这些问题无一例外都出现了一个相同的短语,很容易就可以发现࿰…...
MNIST手写数字辨识-cnn网路 (机器学习中的hello world,加油)
用PyTorch实现MNIST手写数字识别(非常详细) - 知乎 (zhihu.com) 参考来源(这篇文章非常适合入门来看,每个细节都讲解得很到位) 一、模块函数用法-查漏补缺: 1.关于torch.nn.functional.max_pool2d()的用法: 上述示例…...
论文笔记《3D Gaussian Splatting for Real-Time Radiance Field Rendering》
项目地址 原论文 Abstract 最近辐射场方法彻底改变了多图/视频场景捕获的新视角合成。然而取得高视觉质量仍需神经网络花费大量时间训练和渲染,同时最近较快的方法都无可避免地以质量为代价。对于无边界的完整场景(而不是孤立的对象)和 10…...
数据库管理系统,数据库,sql的基本介绍以及它们之间的关系
数据库管理系统(Database Management System,简称DBMS)是一种软件工具或系统,用于管理和维护数据库的创建、访问、更新和管理。DBMS允许用户在数据库中存储、检索和操作数据,同时提供了数据安全性、完整性和一致性的控…...
【Flowable】Springboot使用Flowable(一)
一、项目依赖 <dependency><groupId>org.flowable</groupId><artifactId>flowable-engine</artifactId><version>6.3.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>my…...
戳泡泡小游戏
欢迎来到程序小院 戳泡泡 玩法: 鼠标点击上升的起泡泡,点击暴躁记录分数,不要让泡泡越过屏幕,共有三次复活生命,会有随机星星出现,点击即可暴躁全屏哦^^。开始游戏https://www.ormcc.com/play/gameStart/1…...
Redis缓存
1. Redis缓存相关问题 1.1 缓存穿透 缓存穿透是指查询一个数据库一定不存在的数据。 我们以前正常的使用Redis缓存的流程大致是: 1、数据查询首先进行缓存查询 2、如果数据存在则直接返回缓存数据 3、如果数据不存在,就对数据库进行查询࿰…...
mysql 插入更新数据
insert into insert into 语句进行插入时,如果插入的字段包含 主键或者唯一索引字段,那么, 1)主键或唯一索引 已存在,则插入失败 1062 - Duplicate entry 1 for key PRIMARY 2)只有主键或者唯一索 引不存…...
终极指南:如何使用Divinity Mod Manager轻松管理《神界:原罪2》模组
终极指南:如何使用Divinity Mod Manager轻松管理《神界:原罪2》模组 【免费下载链接】DivinityModManager A mod manager for Divinity: Original Sin - Definitive Edition. 项目地址: https://gitcode.com/gh_mirrors/di/DivinityModManager 如…...
vLLM PD分离架构在昇腾910B上的性能实测:对比单卡部署,吞吐量到底提升了多少?
vLLM PD分离架构在昇腾910B上的性能突破:实测数据与技术解析 当大模型推理从实验室走向生产环境,吞吐量与延迟指标直接决定了商业可行性。传统同构部署方案中,Prefill(首字生成)与Decode(后续生成ÿ…...
ADXL362嵌入式驱动开发:SPI通信、寄存器配置与低功耗唤醒
1. ADXL362嵌入式驱动库深度解析与工程实践指南 ADXL362是Analog Devices(ADI)推出的超低功耗、三轴数字MEMS加速度计,专为电池供电的物联网终端、可穿戴设备、工业状态监测和远程传感器节点设计。其核心优势在于:在仅270 nA待机…...
FPGA仿真数据高效流转:Vivado与Matlab的自动化处理链路
1. 从Vivado到Matlab的数据流转痛点 做过FPGA开发的朋友都知道,仿真阶段产生的数据就像金矿,但要把这些"矿石"提炼成有价值的分析结果,中间的数据搬运工作常常让人头疼。我最近在做一个无线通信项目时就深有体会:Vivado…...
实在 Agent 和通用大模型有什么不一样?深度拆解 AI Agent 的感知、决策与执行逻辑
获取系统时间这一任务,虽然看似简单,却深刻揭示了 AI Agent 与通用大模型在本质、能力、架构和应用场景上的根本性差异。通用大模型(LLM),如 GPT、Claude 或通义千问等,其核心是基于海量文本数据训练出的概…...
Pikachu文件包含漏洞的花式玩法:从源码读取到蚁剑GetShell全记录
Pikachu文件包含漏洞的深度利用:从源码审计到权限维持实战 在网络安全领域,文件包含漏洞一直是渗透测试中的"黄金门票"。不同于简单的SQL注入或XSS攻击,文件包含漏洞往往能带来更直接的服务器控制权。本文将带你深入Pikachu靶场&am…...
FastAPI文档示例:请求响应样例配置的终极指南
FastAPI文档示例:请求响应样例配置的终极指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI是一个高性能、易于学…...
手把手教你用哥斯拉Godzilla搭建渗透测试环境(附常见错误解决方案)
实战指南:Windows环境下渗透测试工具的高效配置与排错 在网络安全领域,渗透测试工具的正确配置往往是技术实践的第一步门槛。对于刚接触安全测试的新手来说,从零开始搭建环境不仅需要清晰的步骤指引,更需要理解每个环节可能出现的…...
Qwen3-ForcedAligner在开源项目中的贡献指南
Qwen3-ForcedAligner在开源项目中的贡献指南 1. 引言 如果你对语音识别和音频处理感兴趣,想要为开源项目做贡献,Qwen3-ForcedAligner是个绝佳的选择。这个项目专注于语音文本对齐技术,能够精确标注音频中每个词或字符的时间戳,对…...
Fire Dynamics Simulator:火灾动力学模拟的技术原理与工程应用
Fire Dynamics Simulator:火灾动力学模拟的技术原理与工程应用 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 火灾作为一种复杂的物理化学过程,其模拟需要精确捕捉流体流动、热传递和化学反应等…...
