自动化测试的重要性:为何追求自动化?

为什么需要自动化测试?

  1. 代替手工重复操作,测试工程师可以花更多时间在设计全面的测试用例和新功能测试上 【代替手工重复】 
  2. 提升回归测试的效率,适合敏捷开发过程 【提升回归效率】 
  3. 更好的利用非工作时间执行测试,工作时间分析失败用例 【利用非工作时间测试】 
  4. 高效实现某些手工测试无法完成或代价巨大的测试类型,比如:关键业务7*24小时持续运行的系统稳定性测试和高并发场景的压力测试 【代替复杂手工测试和长时间测试】 
  5. 还可以保证每次测试执行的步骤以及验证的一致性和可重复性,避免人为的遗漏或疏忽 【保证操作一致性,结果可溯源】 

自动化测试的一些劣势

  1.  不能完全取代手工测试,只能替代手工测试中执行频率高、机械化的重复步骤 【不能替代手工测试】 
  2. 无法应对被测系统的变化,自动化测试用例的维护成本高;因为自动化测试只是执行事先定义好的测试步骤并验证测试结果,对于执行过程中出现的明显错误和意外事件,自动化测试没有任何处理能力 【维护成本高,无法应对系统变化和紧急事件】 
  3. 自动化测试用例的开发工作量远大于单词的手工测试,所以只有当开发完成的测试用例的有效执行次数≥5时,才能收回成本 【用例开发量大,投入产出比难以提高】 
  4. 手工测试发现的缺陷数量更多,自动化测试仅仅能发现回归测试范围的缺陷 【只能发现回归缺陷】 
  5. 自动化测试的效率很大程度依赖自动化测试用例的设计以及实现质量,不稳定的自动化测试用例比没有自动化更糟糕 【自动化测试用例强依赖开发质量】 
  6. 实行自动化测试的初期,用例开发效率都很低,在体系成熟以及测试工程师熟练后一般都要重构初期用例 【后期需要重构不成熟的初期用例】 
  7. 懂业务的人+懂自动化技术的人结合一起才能高效开展自动化测试 【不仅懂技术还得懂业务】 
  8. 自动化测试开发人员必须具备编程能力 【必备编程】 

什么样的项目适合自动化测试?

第一:需求稳定,不会频繁变更

过高的需求变更频率会导致自动化测试用例的维护成本直线上升

第二:研发和维护周期长,需要频繁执行回归测试

软件产品比软件项目更适合做自动化测试

  • 首先,软件产品的生命周期比较长,会有持续性迭代,每次版本发布都会有回归测试需求
  • 其次,自动化测试用例的执行比高于1:5,自动化测试的优势才可以被更好地体现

对软件项目的自动化测试,需要分情况

  • 短期项目:不建议实施自动化,就算技术可行性很高,但 投入产出比(ROI) 不高;应该选择 手工探索式测试 ,以发现缺陷为第一要务
  • 中长期项目:对比较稳定的功能进行自动化测试,对改动较大or需求不明确的功能进行手工测试,最终目标是用20%的精力去覆盖80%的回归测试

第三:需要在多平台上重复运行相同测试的场景

第四:某些测试项目通过手工测试无法实现,或者手工成本太高

对于所有的性能和压力测试,很难通过手工方式实现,如:

  • 一万并发用户的基准性能测试
  • 7*24小时的稳定性测试

这个时候必须借助机器来模拟大量用户反复操作被测软件的场景

第五:被测软件的开发较为规范,能够保证系统的可靠性

要实现稳定的自动化测试,被测软件的开发过程必须规范,比如:GUI上的控件命名如果没有任何规则可寻,就会造成GUI自动化的控件识别与定位不稳定,影响效率

另外,某些用例的自动化必须要求开发人员在产品中预留可测试性接口,否则后续的自动化会很难开展。

比如,用户登录操作可能需要图片验证码,需要开发提供绕开图片验证码的路径,否则需要自己借助 光学字符识别(OCR)技术 来对图片验证码识别,但它的识别率会很低,直接影响用例的稳定性

【整整200集】超超超详细的Python接口自动化测试进阶教程合集,真实模拟企业项目实战

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

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

相关文章

C++项目实战——基于多设计模式下的同步异步日志系统-②-相关技术补充(不定参函数)

文章目录 专栏导读不定参函数C风格不定参函数不定参宏函数 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C、Linux 学…

大数据和数据要素有什么关系?

大数据与数据要素之间存在密切的关系。大数据是指海量、多样化、高速生成的数据,而数据要素是指构成数据的基本元素或属性。数据要素包括但不限于数据的类型、结构、格式、单位、精度等。 大数据的产生和应用离不开数据要素的支持。数据要素确定了数据的基本特征和…

ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04

ORB-SLAM3配置安装及ROS和脚本运行---Ubuntu20.04 1. 安装所需要的依赖和包2. 修改代码及文件内容2.1 CMakeLists.txt文件的修改2.2 单目可视化代码修改2.3 环境配置文件的修改2.4 源码的修改 3.ORB-SLAM3的编译3.1 构建 ORB-SLAM3 库3.2 生成ROS节点 4.ORB-SLAM3的运行4.1 非R…

Spring声明式事务

编程式事务 Spring-tx 声明式事务可以理解为对编程式事务的一个封装 spring-tx 使用多态的形式,满足不同类型的事务需求 【尚硅谷新版SSM框架全套视频教程,Spring6SpringBoot3最新SSM企业级开发】https://www.bilibili.com/video/BV1AP411s7D7?p60&vd_source7…

Sharding-Jdbc(2):Sharding-Jdbc入门案例

1 前置条件 搭建读写分离的数据库环境,搭建方法如下文,目标数据库test Mysql性能优化(5):主从同步原理与实现_mysql主从配置优化_不死鸟.亚历山大.狼崽子的博客-CSDN博客 2 新建maven项目 3 pom引入依赖 <?xml version="1.0" encoding="UTF-8"…

spring入门之环境搭建!!!

1.创建一个maven项目。 不会配置maven环境的可以看这里&#xff1a;maven的下载安装与配置环境变量&#xff01;&#xff01;&#xff01;&#xff08;全网最详细&#xff09;_明天更新的博客-CSDN博客 2.引入依赖 <dependencies><dependency><groupId>or…

Jmeter压测监控体系搭建Docker+Influxdb+Grafana

章节目录&#xff1a; 一、背景介绍1.1 概述1.2 拓扑图 二、云服务器设置三、Docker3.1 概述3.2 搭建流程3.3 安装验证3.4 配置docker镜像加速3.5 取消sudo运行(可选操作) 四、InfluxDB4.1 镜像拉取4.2 运行数据库4.3 创建存储 jmeter 数据的库 五、Grafana5.1 镜像拉取5.2 关联…

MyBatis的逆向工程

文章目录 前言MyBatis的逆向工程创建逆向工程的步骤添加依赖和插件创建MyBatis的核心配置文件创建逆向工程的配置文件执行MBG插件的generate目标 QBC查询增改 总结 前言 MyBatis的逆向工程 正向工程&#xff1a;先创建Java实体类&#xff0c;由框架负责根据实体类生成数据库表…

uniapp使用H5实现预览pdf文件

下载后把压缩包解压到自己的项目的static文件夹下的pdf文件下&#xff0c;如图 新建一个文件名为filePreview.vue <template><view><web-view :src"allUrl"></web-view></view> </template><script>export default {dat…

git:一些撤销操作

参考自 如何撤销 Git 操作&#xff1f;[1] 一、撤销提交 git revert HEAD 撤销上次提交. (会在当前提交后面&#xff0c;新增一次提交&#xff0c;抵消掉上一次提交导致的所有变化,所有记录都会保留) 二、撤销某次merge git merge --abort 三、替换上一次提交 git commit --ame…

【AIGC专题】Stable Diffusion 从入门到企业级实战0402

一、概述 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第02节&#xff0c; 利用Stable Diffusion ControlNet Openpose模型精准控制图像生成。上一节&#xff0c;我们介绍了《Stable Diffusion C…

使用Puppeteer爬取地图上的用户评价和评论

导语 在互联网时代&#xff0c;获取用户的反馈和意见是非常重要的&#xff0c;它可以帮助我们了解用户的需求和喜好&#xff0c;提高我们的产品和服务质量。有时候&#xff0c;我们需要从地图上爬取用户对某些地点或商家的评价和评论&#xff0c;这样我们就可以分析用户对不同…

服务器(I/O)之多路转接

五种IO模型 1、阻塞等待&#xff1a;在内核将数据准备好之前&#xff0c;系统调用会一直等待。所有的套接字&#xff0c;默认都是阻塞方式。 2、非阻塞等待&#xff1a;如果内核没有将数据准备好&#xff0c;系统调用仍然会返回&#xff0c;并且会返回EWUOLDBLOCK或者EAGAIN错…

Oracle数据库概念简介

1. 数据库 一般意义上的数据库包含两个部分 库&#xff1a;就是一个存储一堆文件的文件目录数据库管理系统&#xff1a;管理库的系统 2. DBMS 数据库管理系统 数据库管理系统(Database Management System)&#xff0c;是一种操纵和管理数据库的大型软件&#xff0c;用于建立…

kubernetes(K8S)笔记

文章目录 大佬博客简介K8SDocker VS DockerDockerK8S简介K8S配合docker相比较单纯使用docker 大佬博客 Kubernetes&#xff08;通常缩写为K8s&#xff09;是一个用于自动化容器化应用程序部署、管理和扩展的开源容器编排平台。它的构造非常复杂&#xff0c;由多个核心组件和附加…

UNIAPP之js/nvue混淆探索

因项目需要对UNIAPP的js混淆做了一些调研 混淆教程: https://uniapp.dcloud.net.cn/tutorial/app-sec-confusion.html 按照教程配置进行打包正式包进行混淆 下载正式包将 .ipa改为.zip 解压获取到HBuilder.app 右键显示包内容 获取到混淆的key 不同时间进行打包混淆同一文…

Zabbix 利用 Grafana 进行图形展示

安装grafana和插件 配置zabbix数据源 导入模版 查看数据 1.安装grafana wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/Packages/grafana-10.0.0-1.x86_64.rpm [rootrocky8 apps]# yum install grafana-10.0.0-1.x86_64.rpm [rootrocky8 apps]# systemctl sta…

【公网远程手机Android服务器】安卓Termux搭建Web服务器

目录 概述 1.搭建apache 2.安装cpolar内网穿透 3.公网访问配置 4.固定公网地址 5.添加站点 概述 Termux是一个Android终端仿真应用程序&#xff0c;用于在 Android 手机上搭建一个完整的Linux 环境&#xff0c;能够实现Linux下的许多基本操作&#xff0c;不需要root权限…

springWeb

springweb就是spring框架中的一个模块&#xff0c;对web层进行了封装&#xff0c;使用起来更加方便。如何方便&#xff1f;参数接收框架进行封装 SpringWeb拥有控制器&#xff0c;接收外部请求&#xff0c;解析参数传给服务层。 SpringWeb运行流程 用户发起请求 ip:端口/项目名…

晶尔忠产业集团全面启动暨表彰大会

八月下旬&#xff0c;三伏已尽&#xff0c;初秋遂至。夏日的余热还没有完全散去&#xff0c;初秋的热浪随之席卷而来&#xff0c;大地依旧绿意盎然&#xff0c;万物正是生长最猛烈的时期&#xff0c;为秋天的收获做最后的冲刺&#xff0c;这是一个充满生机的时节&#xff0c;也…