【二、自动化测试】为什么要做自动化测试?哪种项目适合做自动化?

自动化测试是一种软件测试方法,通过编写和使用自动化脚本和工具,以自动执行测试用例并生成结果。

自动化旨在替代手动测试过程,提高测试效率和准确性。

自动化测试可以覆盖多种测试类型,包括功能测试、性能测试、安全测试等,以确保软件系统在各个方面的质量和稳定性得到验证。

什么是自动化测试

自动化测试,顾名思义是自动执行测试,代替人手工测试,提高测试效率以及测试质量

换一种说法,自动化测试可以理解为测试编写一段代码去测试另外一段代码。

为什么要自动化测试

从工作效率来讲,自动化测试能够快速验证版本迭代,减少测试时间和资源投入。数分钟或数小时内完成大量测试工作,释放人力和资源用于更复杂和重要的任务。

从准确度来讲,自动化测试由机器执行,避免人为主观干扰和疏忽,减少误差,提供精确的测试数据

从测试范围来讲,自动化测试能够高效执行手工测试难以完成或代价巨大的测试类型,如核心业务的长时间运行的系统稳定性测试和高并发压力测试等

自动化测试的优/缺点

  • 优点

    • 高效执行,版本迭代后,快速验证功能

    • 提高测试准确度,避免人为误差,提高测试精度

    • 增加测试覆盖度,高效实现某些手动无法实现的内容

    • 降低人工成本,自动化执行可以在数小时内完成几人日的工作量,释放大量的人力和资源

  • 缺点

    • 测试用例初期设计构建成本较高

    • 无法代替手动测试,只能算作手工测试的补充内容,起到互补的效用

    • 并非是智能化的(也许未来借助AI能实现智能化),只能按照设定执行

    • 只能用作回归测试及敏捷测试,不能用作发现bug的主力内容

    • 测试效率依托于平台、用例设计质量,否则有不如无

    • 对测试工程师有一定要求,即现在的测试开发要求,即会写代码,也懂测试原理

    • 不一定所有的项目都适用自动化测试,对于项目有一定的要求

什么项目适合自动化测试

自动化测试在很多项目中都可以发挥作用,但并不是所有项目都适合使用自动化测试。

以下是一些适合使用自动化测试的项目类型:

  1. 项目频繁迭代,且需求变更不频繁,需求稳定

      项目版本频繁迭代,人力测试资源有限,需要提高测试效率,且提高测试质量,对于需求稳定的部分可以使用自动化测试实现

  2. 研发和维护周期长,需要频繁执行回归测试

      在软件开发中,如微信应用和淘宝网站等,产品的生命周期通常较长,会陆续发布多个版本。每次版本发布都需要进行大量的回归测试。

      从长期角度来看自动化测试实现是资源最大化的,短期的一次性项目通常不适合进行自动化测试,因为在这种情况下,自动化测试的投入产出比(ROI)较低,手工探索测试更为合适。

  3. 可重复性测试场景较高

      一些测试场景,特别是回归测试等需要频繁执行的场景,适合采用自动化测试。

      通过自动化测试,可以自动执行这些重复的测试用例,确保每次执行的一致性和准确性。

  4. 手动无法实现的场景及成本较高的场景

      如性能测试、负载测试、系统稳定性测试等手工无法实现

      性能测试和负载测试用于评估系统在不同负载条件下的性能表现。这些测试涉及大量的并发用户和数据,手动进 行测试将非常困难。自动化测试可以模拟大量并发用户和数据,自动执行性能和负载测试,提供准确的性能指标

  5. 跨平台和多浏览器测试

      当需要在不同操作系统、设备和浏览器上进行测试时,自动化测试可以提高测试覆盖范围和一致性。通过自动化测试工具,可以轻松执行跨平台和多浏览器的测试用例

  6. 长期项目和持续集成

      对于长期进行迭代开发的项目,自动化测试可以帮助快速验证每个版本的功能和稳定性。同时,结合持续集成和持续交付的流程,自动化测试可以自动执行测试,并及时反馈测试结果,提高开发效率和产品质量

作者简介:

程序员山茶,一个工作5年,并坚持探索测试之路的测试开发工程师。曾混迹于互联网大厂、IOTA行业领航企业、安全行业、大数据行业领航企业,欢迎和我一起沟通交流。


欢迎关注我,  和我一起探索测试之路,终身成长

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

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

相关文章

Spring06

一、SpirngMvc的基本概念 Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。 MVC(Model View Controller),一种用于设计创建Web应用程序的开发模式 Model(模型&#xff…

软件测试|使用matplotlib绘制气泡图

简介 气泡图(Bubble Chart)是一种数据可视化工具,通常用于展示三维数据的分布情况,其中数据点以气泡的形式显示在二维平面上,每个气泡的位置表示两个变量的值,气泡的大小表示第三个变量的值。在Python中&a…

austin-admin 消息推送平台前端项目依赖低代码平台Amis 怎么使用

austin-admin 消息推送平台前端项目🔥依赖低代码平台Amis 怎么使用 收到一个通知,要将部署一个开源的消息系统 :austin的前端开源:https://gitee.com/zhongfucheng/austin-admin 本地运行 1、使用npm或者yarn这些咯 yarn yarn start2、使用…

使用muduo库编写网络server端

muduo库源码编译安装和环境搭建 C muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装-CSDN博客 #include<iostream> #include<muduo/net/TcpServer.h> #include<muduo/net/EventLoop.h> using namespace std; using namespace muduo; using name…

Linux 系统之部署 h5ai 目录列表程序

一、h5ai 介绍 1.1&#xff09;h5ai 简介 h5ai 是用于 HTTP Web 服务器的现代文件索引器&#xff0c;专注于您的文件。目录以吸引人的方式显示&#xff0c;浏览它们通过不同的视图、面包屑和树概述得到增强。最初 h5ai 是 HTML5 Apache Index 的首字母缩写&#xff0c;但现在它…

Linux Mii management/mdio子系统分析之六 fixed-mii_bus分析(mac2mac分析)

&#xff08;转载&#xff09;原文链接&#xff1a;[https://blog.csdn.net/u014044624/article/details/130674908] (https://blog.csdn.net/u014044624/article/details/130674908) 前面几章我们介绍了MDIO模块的大部分内容&#xff0c;针对mii_bus、mdio_bus、phy_device、p…

vue3__Provide / Inject (依赖注入)和mixins

一、 Provide提供和Inject 注入 Provide提供 <script setup> import { provide } from vueprovide(/* 注入名 */ message, /* 值 */ hello!) </script> 例如父组件中提供方法 <template> <div class"home">dfhualsf<div><button…

Qt优秀开源项目之二十一:遇见QSkinny,一个轻量级Qt UI库

目录 一.QSkinny简介 二.工作原理 三.编译 一.QSkinny简介 QSkinny库基于Qt Graphic View和Qt/Quick中少量的核心类。它提供了一组轻量级控件&#xff0c;可以在C或QML中使用这些控件。QSkinny默认是启用硬件加速的&#xff0c;非常适合嵌入式设备&#xff0c;目前已经应用于…

Python之assert断言介绍

python自动化测试中寻找元素并进行操作&#xff0c;如果在元素好找的情况下&#xff0c;相信大家都可以较熟练地编写用例脚本了&#xff0c;但光进行操作可能还不够&#xff0c;有时候也需要对预期结果进行判断。 常用 这里介绍几个常用断言的使用方法&#xff0c;可以一定程度…

Vue3组件库开发 之Button(1)

需求分析&#xff1a; Button 组件大部分关注样式&#xff0c;没有交互 根本分析可以得到具体的属性列表&#xff1a; type:不同的样式(Default,Primary,Danger,Info,Success,Warning) plain:样式的不同展现模式boolean round:圆角boolean circle:圆形按钮&#xff0c;适合图标…

React入门 - 07(说一说 JSX 中的语法细节)

本章内容 目录 1、js 表达式2、列表渲染3、条件渲染4、className5、jsx 中的样式处理6、dangeouslySetInnerHTML7、htmlFor8、使用 jsx 的注意事项 上一节内容我们完成了一个简单的TodoList案例。到现在为止我们已经知道怎么在 JSX中使用 “js 表达式”和”列表渲染“了&#…

蓝桥杯 最长递增

输入 7 5 2 4 1 3 7 2 输出 3 思路 这个思路也很简单&#xff0c;后面大于前面&#xff0c;长度加一。当后面不大于前面的时候&#xff0c;就是一个新的递增序列了&#xff0c;递增序列的长度最小为1。 代码 #include <iostream> using namespace std; int main() {in…

Nginx初体验

文章目录 定义正向代理 & 反向代理安装与尝试 之前没怎么用过代理服务器Nginx&#xff0c;主要也是因为没有架构知识&#xff0c;根本不会去部署相关的机器。但是最近公司内部在调试的时候&#xff0c;经常用本机去充当Ngnix代理服务器&#xff0c;由于对这块知识掌握得还不…

leetcode—搜索二维矩阵II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,2…

【计算机网络】网络层——详解IP协议

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】 本专栏旨在分享学习计算机网络的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 &#x1f431;一、I…

第29集《佛法修学概要》

丁三、声闻乘 分二&#xff1a;戊一、释义&#xff1b;戊二、四谛法&#xff1b;戊三、结示 请大家打开讲义第八十二页。我们看丁三&#xff0c;声闻乘。 在祖师大德的判教当中&#xff0c;把我们整个大乘的成佛之道分成了三个部分&#xff1a;第一个是安乐道&#xff0c;第…

【链路层】点对点协议 PPP

目录 1、PPP协议的特点 2、PPP协议的组成和帧格式 3、PPP协议的工作状态 目前使用得最广泛的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)。 1、PPP协议的特点 我们知道&#xff0c;互联网用户通常都要连接到某个 ISP 才能接入到互联网。PPP 协议就是用户计算机…

全罐喂养是什么意思?适合猫咪全罐喂养的猫罐头推荐

猫咪全罐喂养的风一直挺大的&#xff0c;但是有好多养猫人一直不知道全罐喂养是什么意思&#xff0c;作为铲龄6年的宠物店店长&#xff0c;从早几年就开始全罐喂养了&#xff0c;对各个品牌的猫罐头也都很熟悉。 作为铲屎官&#xff0c;我们都想要给我猫猫吃的更好&#xff0c…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-16 Robust Controller非线性鲁棒控制器

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-16 Robust Controller非线性鲁棒控制器 1. Slide Control 滑膜控制2 High Gain High Frequency3. 三种鲁棒控制器的比较如何分析控制器 Robust Control : tp achieve rob…

鸿蒙开发笔记(九):渲染控制,if/else,ForEach,LazyForEach

ArkUI通过自定义组件的build()函数和builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了使用系统组件外&#xff0c;还可以使用渲染控制语句来辅助UI的构建&#xff0c;这些渲染控制语句包括控制组件是否显示的条件渲染语句&#xff0c;基于数组数据…