如何做好自动化测试?揭开测试项目团队的自动化实践过程……

news2024/11/25 12:41:41

稍具测试规模的项目团队皆想引进自动化测试,然而动手实现自动化测试的团队却不多,未能真正实施的原因多种多样,有扼杀在摇篮里的,有写了后弃之不用。那么是不是所有的业务都适合自动化测试呢?下面就介绍下自己在项目中怎样实施自动化测试。
在这里插入图片描述

我所在项目组将自动化测试应用于项目中已经有三年多,自动化脚本应用至今,按每月执行两次的频率,至今已经执行有七十二次有余。由于系统的 GUI 足够稳定,这期间发生了两次由于句柄(hwnd)引发的脚本维护,由于规律性极强,也只花费了十人日来维护所有的脚本,维护脚本的资源和时间成本较低。下面就简单记录下自动化测试实现和运用时的一些要点。

自动化测试引进实施的背景主要有两个方面客户投诉和系统改版。客户投诉的主要原因是系统的数据计算不稳定,发布的新版本对低版本的系统产生的数据计算错误。系统改版需要兼容已发布的系统的数据,保证改版后的数据计算与已发布的系统的数据一致。

自动化测试的实施,最重要的是自动化工具的选择。由于系统的 GUI 是图形界面,不能获取每个单元格的内容,TestComplete、QTP 等考虑过,写了一两个基本功能的脚本,验证后实施起来有困难,TestComplete 的通过图片的形式来进行结果的对比产生的误差比较大,运行的测试结果不稳定;放弃其它测试工具的原因就不一一描述了。最后使用的自动化测试工具是公司的开发人员基于系统框架开发的,提供了一些获取系统单元格和其他数据的函数,保证了自动化测试的顺利进行。

自动化测试工具确定之后,主要是测试脚本的培训和开发。由于自动化测试脚本语言和系统使用的二次开发语言相通,在二次开发人员的帮助下,测试人员很快掌握了测试脚本语言的使用方法。

接下来就是确定自动化测试的范围。如果系统能达到 100%的自动化测试,当然这是最好的。项目的实际情况是有些功能的 UI 变化大和测试结果数据变化频繁,这些都不在自动化测试脚本开发的范围内。因此,我们最后确定的自动化测试的范围是版本迭代时验证系统的核心功能。

紧接着就开始自动化测试脚本的开发。开发第一个脚本是最费时间的,首先需要确定读取的配置文件格式及参数内容,参照数据的存放形式(Excel、Access、XMl 或其他文件格式),实现的功能脚本,测试结果的存放形式(html、txt、Excel 或其他文件格式)。开发脚本完成后,就是调试,在调试的过程中遇到问题时若三十分钟不能解决,则应向有经验丰富的同事请教,以免耽误脚本开发进度。第 1 个脚本开发完成后,接下来的开发工作可以在第 1 个脚本的基础上进行修改,并将常用的函数存在公共函数文件中,这样会大大提高开发效率。

自动化测试脚本的应用。每次版本迭代时,手工测试完成,需求变更等功能趋于稳定,这时运行自动化测试脚本的时机相对来说比较合理,这样保证了发布的系统的核心功能的准确性和稳定性。

最后要做的事就是自动化测试脚本的维护。系统 GUI 变化,自动化测试范围的增加,这些皆应在系统定版后安排进行,待下一次版本迭代时,用于验证系统功能的正确性。

经过这几年的自动化脚本用于项目的实战经验,我的个人看法是自动化测试并不能完全替代手工测试。每个系统都会发生需求变更,若系统的核心功能不变,则可以将不变的核心功能用自动化测试来替代,其他功能手工完成,这才是有效利用资源和时间的最佳方式,才能获得良好的 ROI。

学习安排上

如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

在这里插入图片描述

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群即可自行领取

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

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

相关文章

超级好用的笔记工具------Typora 如何修改Typora 中图片保存的位置

用了这么多的笔记、最后还是选择了Typora。真的是很不错呐。一些私密的笔记、比如公司内部资料。放到网页多多少少是不安全的。还是放到本地安全的多。 1、使用Typora 做的小笔记 1.1 目录情况 这个可以按照自己的进度或者时间节点自行分级 1.2 某一个页面的具体设计 2、基本…

react18 通过redux 做一个简单的状态管理基站

我们打开react项目 在终端输入 npm install redux --saveredux就进来了 这里 我们引入了 redux 但其实 有一个 redux 和一个 react-redux 两者区别在于 redux 是一个js的状态管理容器 而react-redux 则提供了 更多便于react开发的状态管理方法 然后我们在项目的src目录下创…

4-FreeRTOS队列、互斥、信号量

1-队列 队列(我对队列的理解就是上体育课,排队这种)是任务之间通信的一种方式。队列可以用于任务和任务之间或者中断和任务之间消息的接收与发送。在多数情况下,他们消息缓冲是按照FIFO(先进先出)原则。也…

文本处理方式方法

概述 从今天开始,我们将开启一段自然语言处理的流程,自然语言可以让来处理、理解以及运用人类的语言,实现机器语言和人类语言之间的沟通桥梁。 文本处理 我们正在进行文本处理的时候,经常会用到文本长度不一致的情况&#xff0c…

Microsoft SQL Server 图书管理数据库的建立

文章目录题目描述创建数据库使用数据库创建三个表外码的表示形式结果展示题目描述 – 新建 “图书管理数据库" – 其中包含三个关系 – 图书(编号,图书名,作者,出版社,类型,单价) – 借阅…

ASP.NET Core 3.1系列(16)——Entity Framework Core之Code First

1、前言 前一篇博客介绍了EFCore中的DB First开发模式,该模式可以根据数据库生成实体类和数据库上下文,因此适用于数据库已经存在的场景。而与之相对应的,Code First主要是根据自定义的实体类和数据库上下文反向构建数据库,因此也…

操作系统02_进程管理_同步互斥信号量_PV操作_死锁---软考高级系统架构师007

存储管理可以分为固定存储管理和分页存储管理。 现在固定存储管理已经不用也不考,但要知道因为固定存储管理指的是整存整取 也就是把一整个程序,比如说10G的游戏全部都存到内存里 这样的话是非常占用内存的,这个固定存储管理现在已经不用了。 然后这里我们主要看分页存储管: …

网页去色变黑白+网页黑白恢复为彩色

前言 特定节日,你会发现网页和app首页都会变成灰色,以此来表达我们的哀思之情。 好奇宝宝想知道各个网站都是使用哪些小技巧来做出这种效果的(由彩变灰,由灰变彩),于是稍微学习了一下… 由灰变彩 稍微想…

USDP集群服务器宕机后集群及组件重启

USDP集群的其中2服务器意外宕机,其中包括一台USDP管理服务节点主机和工作节点主机,服务器重新启动后,USDP智能大数据平台无法登录,启动UDSP服务(/opt/usdp-srv/usdp/bin/start-udp-server.sh)后可以登录&am…

Go1.9.3跑GinDemo

Gin 1. 简介 1.1. 介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的n…

Linux部署WordPress(宝塔版)

宝塔手册宝塔安装 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 宝塔配置 1.帮助命令:bt2.修改用户名(童心同萌):bt 63.修改密码(123456):bt 54.修改端口(888…

JWT详细介绍

文章目录1 jwt介绍1.1 什么是jwt1.2 使用场景1.2.1 授权1.2.2 信息交换1.3 JWT结构1.3.1 header1.3.2 payload1.3.3 signature 签名2 Python 实现2.1 手动编码2.2 jwt包3 校验 jwt5 js解析jwt1 jwt介绍 官网:https://jwt.io/ 本文以python来进行实战演示 1.1 什么…

KG-开源项目:CMeKG【利用自然语言处理与文本挖掘技术,基于大规模医学文本数据,以人机结合的方式研发的中文医学知识图谱】

CMeKG(Chinese Medical Knowledge Graph)是利用自然语言处理与文本挖掘技术,基于大规模医学文本数据,以人机结合的方式研发的中文医学知识图谱。 项目来源: 中文医学知识图谱CMeKG2.0版发布-自然语言处理实验室北京大…

iOS开发之打包上传到App Store——(一)各种证书的理解

OK,有日子没写iOS开发的相关文章啦,主要是最近的精力都没在这上面,不过既然产品已经快要出来了,就有必要了解一下各种证书啥的(众所周知iOS的一堆证书可是很让人头大呀),最近确实被这个搞得头大…

外汇天眼:随着美元贬值所有世界货币,每个国家都在为自己着想

没有迹象表明各国政府愿意合作,各国被迫靠自己的力量建立防御措施,抵御万能的美元的无情力量。 在美联储的鹰派政策、美国经济强劲以及寻求市场波动避险的投资者的支持下,美元兑所有其他货币正在稳步走强,创下数十年来的最大涨幅。…

信号发生器不会用?一篇文章教会你

信号发生器是一种能提供各种频率、波形和输出电平电信号的设备。在测量各种电信系统或电信设备的振幅特性、频率特性、传输特性及其它电参数时,以及测量元器件的特性与参数时,用作测试的信号源或激励源。 1、信号发生器如何使用 选用与验电器相同电压等…

Gateway--服务网关

目录一、网关简介二、Gateway简介三、Gateway快速入门基础版增强版简写版四、Gateway核心架构基本概念执行流程五、断言内置路由断言工厂内置路由断言工厂的使用自定义路由断言工厂六、 过滤器局部过滤器内置局部过滤器内置局部过滤器的使用自定义局部过滤器全局过滤器内置全局…

ROS MoveIT2(humble)安装总结

版本 系统版本:ubuntu22.04 ROS2版本:humble Moveit版本:moveit2-humble 安装 ROS 2 和 Colcon 如果您在接下来的几个步骤中遇到错误,一个好的开始是返回并确保您已正确安装 ROS 2。用户通常忘记的一个是获取 ROS 2 安装本身。…

手写Redux(一):实现Redux

在React中,组件和组件之间通过props传递数据的规范,极大地增强了组件之间的耦合性,而context类似全局变量一样,里面的数据能被随意接触就能被随意修改,每个组件都能够改context里面的内容会导致程序的运行不可预料。 …

复习计算机网络——第二章记录(2)

理解一些基本概念: 1、数据(data)是运送信息的实体。 2、信号(signal)是数据的电气的或电磁的表现。 3、数据或信号可以是模拟的,也可以是数字的。 4、所谓“模拟的”就是连续变化的。 5、所谓“数字的…