什么是持续测试?为什么要持续测试?

news/2025/2/23 15:45:18

测试是软件开发生命周期 (SDLC) 的重要组成部分。SDLC 的每个阶段都应包含测试,以获得更快的反馈并提高产品质量。

我们来聊聊持续测相关话题,如何从持续测试中获得更大的收益。

何谓持续测试

持续测试有助于在软件开发生命周期 (SDLC) 的所有阶段提供更快的质量反馈。在软件开发声明周期中大多数情况下,如果在核心功能逻辑越少做单元测试和自动化测试,那么测试金字塔顶层执行手动探索性测试的压力会非常大,尝尝容易出现质量问题导致项目延期。

这实际上会影响质量,因为在开发完成后发现错误是非常昂贵的。下面是Google修复一个错误的成本,你可以看到当在系统测试阶段发现一个错误时,它的成本高达 5000 美元。

BUG发现阶段花费(美刀)
系统测试5000
集成测试500
编译构建50
单测/自测5

持续测试通过在代码提交到存储库后立即提供早期反馈,来帮助我们评估这种对软件的当前进展的质量。持续测试的主要目标是通过自动化在 SDLC 的所有阶段尽早进行测试,尽可能频繁地进行测试,并更快地获得有关构建的反馈。

使用持续测试,我们可以在所有故障发生后立即介入修复,然后再进入下一阶段,最终有助于节省整体的时间和金钱。

为什么要持续测试

在我之前的一个项目中,我们正在开发一款为 iOS 和 Android 平台开发的移动应用程序。客户希望一切从一开始就实现自动化。任何泄漏到生产中的错误都意味着它将直接影响业务并造成数客户的损失。

我们被要求提出一个自动化计划,在该计划中,将在开发的每个阶段进行测试,以最大限度地降低错误泄漏的风险。因此,我们决定实施测试金字塔并创建一个 CI/CD 管道,在每个阶段连续进行测试。

为了提高产品质量,我们想出了一个计划,在管道的每个阶段都进行测试,一旦出现任何错误信号,就应该在我们进入另一个阶段之前解决它。因此,只要开发人员将代码提交到远程存储库,就会运行以下扫描

  1. 静态代码分析:这将确保遵循最佳编码实践,并在出现任何错误时通过代码坏气味提醒我们。
  2. SecOps 扫描:这将扫描代码和代码中使用的所有库以查找任何安全漏洞,并在出现应注意的漏洞时发出报警。

一旦上述扫描通过,管道将继续前进并在开发环境中运行以下测试:

  1. 单元测试
  2. 集成测试
  3. 系统测试
  4. 端到端测试

上述所有测试将确保代码按预期完美运行。

如果上述任何测试失败,管道将中断并发出预警。提交代码的开发人员有责任修复那些相应的失败测试。这不是玩指责游戏,而是找到破坏构建的提交并修复它。该团队将向开发人员提供帮助以解决问题。

上述所有测试成功通过后,构建将部署到 QA 环境,在 QA 环境中,作为回归测试的一部分,端到端自动化测试将再次在测试构建上运行。一旦端到端自动化测试通过测试构建,需要将选择构建并执行手动探索性测试以发现更多的缺陷。它最终将被部署到验收环境,测试人员团队将在那里进行进一步的测试,最后,构建将部署到生产环境中。

静态代码分析和 SecOps 扫描帮助我们实施最佳编码实践,并通过更新到最新版本或丢弃和使用不太容易出现漏洞的库并经常更新它们来修复易受攻击的库,从而使代码不太容易出现安全问题风险。

虽然我们也在手动完成的探索性测试中发现了问题,但这些问题并不那么严重,大多数问题在初始阶段本身就得到了解决,这为我们提供了更快的反馈。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

SDLC 生命周期中的持续测试

  • 需求变更频繁:随着需求的频繁变更,也需要更改代码,并且我们所做的每一次更改都涉及风险。这里涉及两个风险,更改后的代码是否会按预期工作,另一个是此更改是否会影响现有代码。通过持续测试,我们可以通过设置一个自动化管道来解决这两种风险,该管道将运行单元、集成和最终的自动化回归测试。
  • 持续集成:随着敏捷开发的实施,持续集成得到了广泛的欢迎,开发人员尽可能多地将他们的代码合并到主分支,以使其做好生产准备。在合并发生之前,代码通过在管道中对构建运行自动化测试。如果出现故障,则代码不会合并且会发出预警。
  • 准备好生产:通过持续测试,我们可以做好生产准备,因为一旦开发人员提交代码,我们所有的检查和测试就会在自动化管道上运行。
  • 减少人为错误:在回归测试的情况下,如果编写了自动化测试,它可以作为该功能的文档证明,并有助于减少测试中的人为错误。

持续测试的优势

  • 快速反馈:在传统的软件开发过程中,团队必须等待测试人员的反馈,在开发人员完成功能编写后,测试人员将手动测试构建。在测试人员的反馈之后,他们不得不返工以修复耗时且成本更高的问题。通过持续测试,我们可以更快地获得对新提交代码的反馈,从而节省时间和金钱。
  • 质量融入产品:通过在自动化管道中运行所有测试,从单元、集成、功能、安全、性能和端到端用户,我们可以确保质量融入产品本身并且需要不用担心将其发布到生产环境。
  • 减少错误泄漏:持续测试通过为我们提供有关软件故障的及时更新,有助于消除构建中出现错误的机会。
  • 最小化风险:它还有助于发现风险、解决风险并提高产品质量。

随着对高质量软件的需求不断增长,以及以数字化为核心的经济蓬勃发展,持续测试被认为是一个重要方面。 软件公司需要对 SDLC 中每天发生的频繁变化做出响应,而持续测试就是答案。

持续测试的重要类型

  • 单元测试:这涉及单独测试一段实现某个功能的代码。基本上测试为该功能编写用例覆盖每个方法。此测试的主要目的是检查代码是否按预期工作,这意味着代码的所有功能、输入、输出和性能都符合预期。
  • 集成测试:这涉及一起测试两个模块。此测试的目的是检查两个组件之间的集成是否正常工作。
  • 回归测试:这是使用最广泛的测试,用于检查应用程序的现有功能在最近添加或修改代码存储库后是否按预期工作,
  • 端到端测试:添加这些测试是为了检查软件的端到端工作。这些测试的目的是检查最终用户是否能够端到端地使用应用程序。

云服务平台的作用

在当今快节奏的世界中,软件可以在多个平台上运行,从浏览器到手机和平板电脑。当我们将应用程序发布到生产环境时,我们需要确保它按预期在所有需要的平台上运行,并修复我们发现不工作的地方。

然而要做到这一点,我们需要在相应的设备/浏览器上对其进行测试,以确保它可以无忧无虑地工作。这是可能的,但会花费金钱和时间,因为我们必须购买硬件并提供所需的资源以使其工作。从雇用工程师到建立基础设施。

当我们不断测试时,在不同的浏览器及其各自的版本或具有不同操作系统版本的不同移动设备上执行并行运行,这些服务通过为我们提供所需的设备、浏览器/操作系统及其各种版本来帮助我们持续测试,所以我们及早发现错误并使用早期反馈修复所需的问题并阻止错误泄漏。

结论

质量是软件的重要组成部分,需要在软件中体现。持续测试通过在软件开发生命周期的每个阶段实施测试来帮助我们构建正确的产品。

我们需要为我们构建的每个功能做好生产准备,有必要通过快速失败策略获得快速反馈。有多种可用的测试类型可以帮助我们使用自动化管道实施持续测试。

END今天的分享就到此结束了!点赞关注不迷路~!

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

相关文章

解决高风险代码:Unreleased Resource: Streams

Abstract 程序可能无法成功释放某一项系统资源。 Explanation 程序可能无法成功释放某一项系统资源。 资源泄露至少有两种常见的原因: - 错误状况及其他异常情况。 - 未明确程序的哪一部份负责释放资源。 大部分 Unreleased Resource 问题只…

【OS】操作系统总复习笔记

操作系统总复习 文章目录 操作系统总复习一、考试题型1. 论述分析题2. 计算题3. 应用题 二、操作系统引论(第1章)2.1 操作系统的发展过程2.2 操作系统定义2.3 操作系统的基本特性2.3.1 并发2.3.2 共享2.3.3 虚拟2.3.4 异步 2.4 OS的功能2.5 OS结构2.5 习…

ShardingSphere入门概念

ShardingSphere Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。 Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数…

k8s-1.24.0版本部署

基础配置[三台centos] 1.关闭防火墙与selinux systemctl stop firewalld systemctl disable firewalld sed -i ‘s/enforcing/disabled/’ /etc/selinux/config setenforce 0 2.添加host记录 cat >>/etc/hosts <<EOF 192.168.180.190 k8s-master 192.168.180.180 k…

椋鸟C语言笔记#26:数据在内存中的存储(大小端字节序)、浮点数的存储(IEEE754)

萌新的学习笔记&#xff0c;写错了恳请斧正。 目录 大小端字节序 什么是大小端 写一个判断大小端的程序 浮点数在内存中的存储&#xff08;IEEE 754规则&#xff09; 引入 存储规则解释 读取规则解释 1.阶码不全为0或全为1&#xff08;规格化数&#xff09; 2.阶码全为…

一文入门GDAL

GDAL主要用于读取&转换数据。 一 Raster Drivers GDAL提供了一系列对栅格文件类型的驱动&#xff0c;常见的如BMP、GIF、JPEG、PNG等&#xff0c;详见官网&#xff0c;不全部列出。 二 Vector Drivers GDAL也提供了一系列对矢量文件类型的驱动&#xff0c;常见的如CAD、…

基于Java+Swing+mysql学生选课成绩信息管理系统

基于JavaSwingmysql学生选课成绩信息管理系统 一、系统介绍二、功能展示三、项目相关3.1 乱码问题3.2 如何将GBK编码系统修改为UTF-8编码的系统&#xff1f; 四、其它1.其他系统实现 五、源码下载 一、系统介绍 学生教师信息管理、年级班级信息管理、课程信息管理、选课、成绩…

Windows Server C盘空间不足怎么办?

Windows Server 2016/2019/2022中占用C盘空间的主要内容为&#xff1a;分页文件、休眠文件、临时文件、备份文件、浏览器下载文件等&#xff0c;随着计算机使用时间的增长&#xff0c;这些文件也会逐渐增多&#xff0c;从而导致C盘驱动器爆满而导致系统运行缓慢而崩溃。那么&am…