自动化测试如何管理测试数据

前段时间,知识星球里有同学问到:自动化case越多,测试数据越多,数据的管理成本也越来越高,是否需要一个数据池来专门管理测试数据?这是一个好问题,也是很多测试同学在自动化测试实践中必须面对的一个问题。

近几年随着技术不断发展,新的工具、方法论和技术实践越来越多,自动化测试在具体工作中有了很多方法论和实践,这些实践的背后是什么原因在推动技术的发展,我觉得是个很值得复盘和回溯的事情。

这篇文章,我想聊聊自动化测试数据管理的方式,是如何迭代和不断演进的。

先看下面这张图,我将自动化测试成熟度演变分为如下几个阶段,关于如何管理数据,我会从下述几个阶段分开描述。
在这里插入图片描述

PS:上图不同阶段的标识,只是为了说明每个阶段的测试数据特性,而非这个阶段的具体技术实现方式和细节。

学习阶段

很多测试同学在刚开始学自动化测试的时候,基本都是脚本和测试数据写在一起,从实际工作应用的角度来说很不推荐。因为随着业务和技术的变化迭代,测试脚本和数据也要重新修改并执行,直接增加了自动化测试工作的维护成本,这样做有悖于自动化测试的本质(回归&提高效率)。

但对于新手或者初学者来说,将脚本+数据写在一起,它是可以快速实现和有直接反馈的一个demo。

初始阶段

自动化测试的数据管理第二个阶段,就是将测试数据写在配置文件里,通过键值对的方式去读取一些公用的数据,比如用户名密码、数据库连接配置、要访问的服务域名等。

这种做法大概在16年-17年是很常见的一种方式,也是很多刚开始尝试做自动化测试工作的同学常用的方式。当然那个时候在测试圈子里,所谓的PO模式、数据和脚本分离已经有了一定的讨论和实践。

不过这个阶段有个很有意思的点,很多公司为了自动化而自动化,专门招一个人来做自动化。求职市场也比较火爆,很多公司其实就是一个人做自动化测试,脚本数据都在本地保存和执行,这样做也无伤大雅。

作坊阶段

所谓的作坊阶段就是指测试团队有了一定规模,业务迭代速度和场景的复杂度有了一定提升,这个时候从需要有自动化开始转变为对效率的期待。很典型的一点就是这个时候所谓的版本管理和持续集成开始为测试同学注重起来,当然通俗来说就是SVN&Git和Jenkins开始在测试团队应用了起来,当然也仅限于使用。

还有一点就是部分测试同学开始意识到测试报告的重要性,大概18年左右,当时很多测试群和网上很多资料,都是关于HTMLTestRunner和Allure的各种魔改,以高大上和美观为主要追求。

当然,对于自动化测试需要的测试数据,大家也开始接受了数据和脚本分离,通过csv文件来存储测试数据。这样做的好处是测试场景变化后,只需要修改测试数据即可,提高了测试脚本的可维护性,也便于多人维护同一批测试数据。

团队阶段

到了第四阶段也就是团队阶段,测试团队的流程规范和技术体系开始逐步建立起来了,自动化测试也从独立的岗位变成了功能测试同学入厂标配。

为了便于测试数据的统一管理,也考虑到测试数据的持久化问题,大家开始引入数据库来进行测试数据存储,这样做进一步的降低了脚本和数据的耦合性,脚本就是不同的测试场景和case,数据作为公共部分被引入即可。

这个阶段还有个很有意思的点,测试平台的概念开始在各技术大会和技术沙龙上被提及,很多测试管理者甚至测试同学也在工作和不同场合中开始言必称开发平台。

成熟阶段

第五个阶段就是所谓的数据池或者造数工厂的概念了,所谓的造数工厂,其实就是通过直接调用应用程序的方法来产生数据,在自动化测试脚本或者服务联调、问题复现阶段直接引用。

这样做有几个特点:一是各种测试平台(不仅限于自动化测试平台)开始在企业内落地,二是催生了很多测试开发岗位,三是平台的适用范围开始由测试团队向其他技术团队扩散,也就是所谓的打通+赋能。

当然还有一些其他有意思的点,比如测试开始提倡全栈,各种招聘jd上要求懂前后端容器devops等各种东西,再比如测试圈子里开始讨论码代码能力到什么程度可以做测试开发,也是卷的不行。

追溯反思

综合上面几个阶段测试数据管理的方式以及近几年测试圈子或者说技术领域的一些现象,可以得到如下几个结论:

市场和企业对测试团队的要求越来越高;

手工测试开始逐渐向真正的工程师转变进化;

测试职能从功能验证开始转向质量保障和效率提升;

未来所谓的测试岗位几乎都会要求业务+技术既要还要;

当然,市场在不断变化,对于人的要求也在变得更丰富和具体,能跟随发展和市场要求的人,才能存活下来。

如果非要用几个关键字来概括上面的几个阶段的话,我认为这几个词可能会更合适:

市场期待——企业跟随——探索实践——效率提升——协同配合

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

LeetCode-146. LRU 缓存【设计 哈希表 链表 双向链表】

LeetCode-146. LRU 缓存【设计 哈希表 链表 双向链表】 题目描述:解题思路一:双向链表,函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。一张图:知识点__slots__ 解题思路二:0解题思路三:0 题目描述&am…

JAVAEE之Spring, Spring Boot 和Spring MVC的关系以及区别

1.Spring, Spring Boot 和Spring MVC的关系以及区别 Spring: 简单来说, Spring 是⼀个开发应⽤框架,什么样的框架呢,有这么⼏个标签:轻量级、⼀ 站式、模块化,其⽬的是⽤于简化企业级应⽤程序开发 Spring的主要功能: 管理对象&am…

园区管理(源码+文档)

园区管理系统(小程序、ios、安卓都可部署) 文件包含内容程序简要说明含有功能项目截图客户端登录页我的退出登录发布详细注意事项公告列表入园记录主页我的资料电梯报修意见反馈客服入园申请注册招商列表 后台管理签到管理公告管理招商管理入园管理反馈报…

大数据毕业设计hadoop+spark旅游推荐系统 旅游可视化系统 地方旅游网站 旅游爬虫 旅游管理系统 计算机毕业设计 机器学习 深度学习 知识图谱

基于hive数据仓库的贵州旅游景点数据分析系统的设计与实现 摘 要 随着旅游业的快速发展和数字化转型,旅游数据的收集和分析变得越来越重要。贵州省作为一个拥有丰富旅游资源的地区,旅游数据的分析对于促进旅游业的发展和提升旅游体验具有重要意义。基…

使用vscode写python项目时的一点小问题

一、工作区怎么切换 首先工作区就是文件夹,所以切换新的工作区就是打开新的文件夹。 方法有二: 1)ctrlk ctrlo 或者用2)文件-打开文件夹(文件在左上角第一个位置) 会出现类似的界面: 现在…

WPS二次开发系列:如何获取应用签名SHA256值

在申请WPS SDK授权版时候需要开发者提供应用包名和签名,应用包名好说,那如何生成符合WPS要求的应用签名(SHA256)呢,经笔者亲测,有如下两种方式可以实现获取第三方应用签名值(SHA256) 1. 方法一&…

Rust---复合数据类型之元组

目录 元组的使用输出结果 元组的使用 fn main() {// 创建一个元组let my_tuple : (i32, &str, f64) (10, "hello", 3.14);// 打印元组中的元素println!("{:?}", my_tuple);// 访问元组中的元素let first_element my_tuple.0; // 访问第一个元素let…

C#/WPF 使用开源Wav2Lip做自己的数字人(无需安装环境)

实现效果 Speaker Wav2Lip概述 2020年,来自印度海德拉巴大学和英国巴斯大学的团队,在ACM MM2020发表了的一篇论文《A Lip Sync Expert Is All You Need for Speech to Lip Generation In The Wild 》,在文章中,他们提出一个叫做Wa…

最优算法100例之26-翻转单词顺序

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句…

全自动封箱机的工作原理:科技与效率的完美结合

随着科技的不断发展,越来越多的自动化设备走进了我们的日常生活和工业生产中。其中,全自动封箱机作为物流包装领域的重要一环,凭借其高效、精准的工作性能,正逐渐成为提升生产效率、降低劳动成本的得力助手。星派就来与大家深入探…

网络原理 - HTTP / HTTPS(2)——http请求

目录 一、认识 “方法”(method) 1、GET方法 2、POST方法 (1)登录 (2)上传 (3)GET和POST使用习惯 3、GET方法和POST方法的区别 正确滴 关于一些网上的说法,错误滴…

Kimi精选提示词,总结PPT内容

大家好,我是子云,最近真是觉得Kimi这个大模型,产品体验很棒,能力也是不错,感觉产品经理用心了。 发现一个Kimi 一个小技巧,可以学习到很多高级提示词。 Kimi输入框可以配置常用提示词,同时也可…

51单片机学习笔记14 LCD1602显示屏使用

51单片机学习笔记14 LCD1602显示屏使用 一、LCD1602介绍1. 简介2. 引脚定义3. DDRAM4. 字模5. 指令(1)清屏指令 0x01(2)光标归位指令 0x02(3)进入模式设置指令 0x06(4)显示开关控制指…

Chatgpt掘金之旅—有爱AI商业实战篇|聊天机器人|(四)

演示站点: https://ai.uaai.cn 对话模块 聊天机器人企业知识库:https://work.jingyuai.com/ 鲸鱼AI知识库 官方论坛: www.jingyuai.com 京娱AI 聊天机器人创建服务,随着企业越来越多地寻求创新的方式与客户互动,聊天机…

Windows下Docker搭建Flink集群

编写docker-compose.yml 参照:https://github.com/docker-flink/examples/blob/master/docker-compose.yml version: "2.1" services:jobmanager:image: flink:1.14.4-scala_2.11expose:- "6123"ports:- "18081:8081"command: jobma…

Linux:logrotate日志轮循分割

比如httpd产生的日志,如果你没做任何设置,他会一直把日志都输出到一个文件中,这个文件会越来越大,httpd就有一个日志切割工具,他可以去分割你的日志,但是无法去轮循日志 日志切割的作用:防止文件…

解锁金融数据中心场景,实现国产化AD替代,宁盾身份域管为信创电脑、应用提供统一管理

随着信创国产化改造持续推进,越来越多的金融机构不断采购信创服务器、PC、办公软件等,其 IT 基础设施逐渐迁移至国产化 IT 架构下。为支撑国产化 IT 基础设施的正常使用和集中管理运维,某金融机构数据中心的微软Active Directory(…

docker安装wekan

安装mongodb 注意这里用端口映射方法将db的端口映射到宿主机。并且注意自己的映射目录,如果不需要映射目录直接删除-v /home/data/project/wekan/wekandb/db:/data/db -v /home/data/project/wekan/wekandb/configdb:/data/configdb sudo docker run -d --name we…

探索async/await的魔力:简化JavaScript异步编程

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

云原生:应用敏捷,华为视角下的应用现代化

Gartner 也提出,到 2023 年,新应用新服务的数量将达到 5 亿,也即是说:“每个企业都正在成为软件企业”。据IDC 预测,到 2025 年三分之二的企业将成为多产的“软件企业”,每天都会发布软件版本。越来越多的企…