什么是回归测试?

什么是回归测试?

回归测试被定义为一种软件测试类型,以确认最近的程序或代码更改未对现有功能产生不利影响。

回归测试只不过是全部或部分选择已执行的测试用例,然后重新执行以确保现有功能正常运行。

进行此测试是为了确保新代码更改不会对现有功能产生副作用。这样可以确保在完成最新代码更改后,旧代码仍然可以使用。

需要回归测试

如果存在以下情况,则需要进行回归测试:

  • 需求变更和代码根据需求进行修改
  • 新功能已添加到软件中
  • 缺陷修复
  • 性能问题修复

如何进行回归测试

软件维护是一项活动,其中包括增强,纠错,优化和删除现有功能。这些修改可能会导致系统无法正常工作。因此,回归测试变得必要。可以使用以下技术执行回归测试:

  • format,png
  • 重新测试全部

这是用于回归测试的方法之一,在该方法中,应重新执行现有测试用例或套件中的所有测试。这是非常昂贵的,因为它需要大量的时间和资源。

同时,我也准备了一份软件测试视频教程(含面试、接口、性能、自动化等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

B站封神的接口测试教程,30天练完70个项目实战(含自动化测试、性能测试),学完即就业,永久白嫖!

回归测试选择

与其重新执行整个测试套件,不如选择一部分测试套件来运行。

所选的测试用例可以分类为1)可重复使用的测试用例2)过时的测试用例。

可重用的测试用例可用于后续的回归循环中。

过时的测试用例不能在后续的周期中使用。

测试用例的优先级

根据业务影响,关键和常用功能对测试用例进行优先级排序。根据优先级选择测试用例将大大减少回归测试套件。

选择测试用例进行回归测试

从行业数据中发现,客户报告的大量缺陷是由于最后一刻的错误修复造成的副作用,因此选择测试用例进行回归测试不是一件容易的事,而是一门艺术。可以通过选择以下测试用例来完成有效的回归测试

经常有缺陷的测试用例

  • 对用户常使用的功能
  • 验证产品核心功能的测试用例
  • 经历了更多和最新变化的功能测试用例
  • 所有集成测试用例
  • 所有复杂的测试用例
  • 边值测试用例
  • 成功的测试用例样本
  • 故障测试用例样本

回归测试工具

如果您的软件进行频繁更改,则回归测试成本将上升。

在这种情况下,手动执行测试用例会增加测试执行时间和成本。

在这种情况下,自动化回归测试用例是明智的选择。

自动化程度取决于在连续的回归循环中仍可重复使用的测试用例的数量。

以下是在软件工程中用于功能测试和回归测试的最重要工具。

Ranorex Studio:具有内置Selenium WebDriver的台式机,Web和移动应用程序的多合一回归测试自动化。包括完整的IDE以及用于无代码自动化的工具。

Selenium:这是一个用于自动化Web应用程序的开源工具。Selenium可用于基于浏览器的回归测试。

Quick Test Professional(QTP):HP Quick Test Professional是旨在自动化功能和回归测试用例的自动化软件。它使用VBScript语言进行自动化。它是一个数据驱动的基于关键字的工具。

Rational Functional Tester(RFT):IBM的Rational Functional Tester是一种Java工具,用于自动化软件应用程序的测试用例。这主要用于自动化回归测试用例,并且还与Rational Test Manager集成。

回归测试和配置管理

在不断修改代码的敏捷环境中,回归测试期间的配置管理变得势在必行。为了确保有效的回归测试,请注意以下几点:

  • 正在回归测试的代码应在配置管理工具下。
  • 在回归测试阶段,不得更改任何代码。回归测试代码必须不受开发人员更改的影响。
  • 用于回归测试的数据库必须是隔离的。不允许更改数据库。

重新测试和回归测试之间的区别

重新测试意味着再次测试功能或错误以确保代码已修复。如果未修复,则需要重新打开缺陷。如果已修复,则关闭缺陷。

回归测试意味着对您的软件应用程序进行代码更改时对其进行测试,以确保新代码不会影响软件的其他部分。

回归测试中的挑战

  • format,png
  • 以下是进行回归测试的主要测试问题:
  • 随着连续的回归运行,测试套件变得相当大。由于时间和预算的限制,无法执行整个回归测试套件
  • 在最大程度地覆盖测试范围的同时最小化测试套件仍然是一个挑战
  • 确定回归测试的频率,即在每次修改或每个内部版本更新之后,或在修复了许多错误之后,都是一个挑战。

 总结

一种有效的回归策略,可以节省组织的时间和金钱。根据银行领域的一项案例研究,回归可节省多达60%的错误修复时间(回归测试可能会捕获这些错误)和40%的金钱。

PS:如需软件测试学习资料,可在公众号(互联网杂货铺),后台回复1,小编后面会逐步完善自己收藏的资料。

整理不易,给个关注点个赞吧,谢谢各位大佬!

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

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

相关文章

计数排序与基数排序

计数排序与基数排序 计数排序 计数排序:使用一个数组记录序列中每一个数字出现的次数,将该数组的下标作为实际数据,元素的值作为数据出现的次数。例如对于序列[3,0,1,1,3,3,0,2],统计的结果为: 0出现的次数&#xf…

Go面试题

一、Go 1、nil是否一定相等 package mainimport ("fmt" )func main(){var x *int nilvar y interface{} xfmt.Println(xy) //truefmt.Println(xnil) //truefmt.Println(ynil) //false } 2、Go会不会回收线程 package mainimport ("fmt"&quo…

XMLHttpRequest介绍

目录 一、介绍1.创建 XMLHttpRequest2.初始化3.发送请求4.获取响应5.响应类型 二、发送GET请求示例三、发送POST请求示例四、发送POST请求下载文件示例五、发送POST请求上传文件示例 一、介绍 1.创建 XMLHttpRequest let xhr new XMLHttpRequest();2.初始化 xhr.open(metho…

Redis模块二:缓存分类 + Redis模块三:常见缓存(应用)

缓存大致可以分为两大类:1)本地缓存 2)分布式缓存 目录 本地缓存 分布式缓存 常见缓存的使用 本地缓存:Spring Cache 分布式缓存:Redis 本地缓存 本地缓存也叫单机缓存,也就是说可以应⽤在单机环…

MySQL(2) Explain

1、概念 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 2、使用 在 select 语句之前增加 explain 关键字 ,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL 在…

ffmpeg编译 Error: operand type mismatch for `shr‘

错误如下: D:\msys2\tmp\ccUxvBjQ.s: Assembler messages: D:\msys2\tmp\ccUxvBjQ.s:345: Error: operand type mismatch for shr D:\msys2\tmp\ccUxvBjQ.s:410: Error: operand type mismatch for shr D:\msys2\tmp\ccUxvBjQ.s:470: Error: operand type mismatch…

[JAVAee]Spring项目的创建与基本使用

目录 Spring项目的创建 Spring中Bean对象的存储与获取 存储Bean对象 获取并使用Bean对象 getBean方法的重载 本文章介绍了Spring项目创建与使用的过程与一定的注意事项. Spring项目的创建 首先在IDEA中,新建一个Maven 第二步,在pom.xml中写入spring的依赖. pom.xml是mav…

情侣飞行棋 情侣小游戏 2023 抖音

飞行棋网站地址:https://effect.guoyaxue.top/fxq/index.html#/ 以及各种新版来袭: 以及各种情侣小游戏合集 https://fxnew.guoyaxue.top/#/

hive 创建 s3 外表

背景 有个比较大的技术侧需求: 将数据从 HDFS 迁移到 s3。当然在真正迁移之前,还需要验证迁移到 s3 的数据,和上层查询器(hive、presto 之间的兼容性) 这里我们对一张业务表的数据做个简单的迁移测试 验证 数据迁移 为了让 h…

【微信小程序】swiper的使用

1.swiper的基本使用 <jxz-header></jxz-header> <view class"banner"><swiperprevious-margin"30rpx"autoplayinterval"2000"indicator-dotsindicator-color"rgba(0,0,0,0.3)"indicator-active-color"#bda…

文心一言:如何根据关键词找到想用的Python函数

在Python中&#xff0c;你可以通过以下几种方式来根据关键词找到想用的函数&#xff1a; 使用内置函数dir()和help()&#xff1a; dir()函数可以列出一个模块或对象中可用的属性和方法。help()函数则可以提供有关Python的任何函数、类、模块或关键字的详细信息。 例如&#…

一百七十九、Linux——Linux报错No package epel-release available

一、目的 在Linux中配置Xmanager服务时&#xff0c;执行脚本时Linux报错No package epel-release available 二、解决措施 &#xff08;一&#xff09;第一步&#xff0c;# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm &#xff08;二&…

uniapp项目实践总结(十七)实现滚动触底加载

导语&#xff1a;在日测的开发过程中&#xff0c;经常会碰到页面需要渲染大量数据的情况&#xff0c;这时候就需要用到滚动加载功能&#xff0c;下面总结一下方法。 目录 原理分析实战演练案例展示 原理分析 使用scrolltolower事件来监听滚动到底部&#xff0c;然后加载下一…

idea之maven的安装与配置

我们到maven的官网里下载maven&#xff0c;地址&#xff1a;https://maven.apache.org/download.cgi下载完成后解压即可配置环境变量 此电脑–>右键–>属性–>高级系统设置–>环境变量–>系统变量&#xff08;S&#xff09;–>新建一个系统变量 变量名&…

第一百四十七回 自定义组件一

文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了跟手指移动的小球相关的内容&#xff0c;本章回中将介绍 自定义组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 在项目中有些内容无法通过现有的组件来实现&#xff0c;因此需要自定义组件&#xf…

HashMap:hashCode()和equals()方法的正确实习

确保自定义对象作为键时正确实现hashCode()和equals()方法是非常重要的&#xff0c;因为这两个方法直接影响着对象在哈希表&#xff08;如HashMap&#xff09;中的存储和检索。 下面进一步解释为什么这两个方法如此重要&#xff1a; hashCode()方法&#xff1a;这个方法返回一…

【计算机网络】 粘包问题

文章目录 为什么会产生粘包问题&#xff1f;解决办法先发包大小再发包内容代码示例 为什么会产生粘包问题&#xff1f; tcp是数据流传输&#xff0c;是一种没有边界的&#xff0c;可以合并的传输数据方式。合并就要能拆开&#xff0c;拆不开就是粘包。 解决办法 设置标志位&a…

共享股东模式:实体门店的新型股东模式机遇与挑战并存

在传统的经营模式中&#xff0c;经营者通常需要独自承担企业的风险和责任&#xff0c;同时也需要投入大量的人力和资金。对很多创业者而言&#xff0c;这是一项巨大的挑战。有没有一种方法能够使创业者们在共享资源和利益的同时分担风险和责任呢&#xff1f; 共享股东模式是一…

Spring MongoDB

首先创建数据实体&#xff0c;Document(collection "name") 建立一个一对多的关系时&#xff0c; DocumentReference 导致数据库仅仅存储条目的Id&#xff0c;称为手动索引关系。 也有其它的方法在MongoDB中创建关系。 接下来创建Controller。 RestController …

短效代理IP与长效代理IP:应用场景与选择方法

随着互联网的迅速发展&#xff0c;越来越多的网站开始采取反爬虫措施&#xff0c;以保护自己的数据安全。而作为一种常见的反爬虫工具&#xff0c;代理IP也被广泛应用。代理IP分为短效代理IP和长效代理IP两种类型&#xff0c;本文将介绍它们的区别和应用场景。 一、短效代理IP …