首页 > 其他分享 >为了避免下一次重大中断,我们需要持续测试

为了避免下一次重大中断,我们需要持续测试

时间:2024-10-18 17:48:28浏览次数:8  
标签:CI 中断 组织 CD 避免 测试 软件 CT

自去年 7 月CrowdStrike/Microsoft大规模中断以来的几个月里,我们了解到了很多问题所在。一家大型网络安全提供商为其广泛部署的企业端点保护产品推出了一个有缺陷的更新。尽管(错误地)批准发布,但该更新导致全球的 Windows 系统崩溃,并阻止它们从重启中自然恢复。短短几分钟内,全球850 万台设备就出现了可怕的“蓝屏死机”现象。许多设备会持续数小时。 

我们可以吸取这次事件的几个重要教训,但让我们集中讨论其中两个。

首先,即使是善意的软件更新也可能导致灾难性的中断,从而中断业务连续性。在这种情况下,全球数千家组织不得不停止运营。金融公司、政府机构和航空公司受到的影响尤其严重,数千个航班被取消,无数商业交易中断。仅财富 500 强企业的直接损失就将超过 50 亿美元。

第二个重要教训:主动、全面的测试仍然无可替代。随着企业软件堆栈变得越来越复杂和相互依赖,我们不能假设任何新的更新或版本发布(无论是内部产品还是组织可能使用的数百个第三方组件)都可以安全部署。然而,我们可以做的是确保主动、自动化的测试嵌入到变更管理工具中。这不会消除软件冲突。但有效实施后,持续测试 (CT) 可确保当更新失败时,您早在影响用户之前就知道它。 

自动化的前景和风险 

在技术行业之外使用“DevOps”一词,大多数人都不知道你在说什么。然而,持续集成/持续交付 (CI/CD) 模型的出现以及通过持续软件更新不断扩展产品功能的能力是革命性的。根据独立的 DevOps 调查,采用最先进 CI/CD 实践的组织比没有采用 CI/CD 实践的组织部署频率高 208 倍,交付周期快 106 倍。 

但与此同时,软件变更的自动化就像驾驶一级方程式赛车。速度越快,一旦出现问题,后果就越严重。简而言之,软件交付速度越快,实施有效的安全措施就越重要。首先要进行主动、全面的测试,该测试与 DevOps 工具链紧密集成,并作为 CI/CD 管道的一部分自动执行。 

不幸的是,没有单一、标准化的方法来实施 CI/CD,不同的组织采用的方法也大不相同。在很多情况下,DevOps 的测试元素没有得到应有的重视。测试用例不够全面,或者没有尽早或频繁地进行——尤其是考虑到遗漏严重问题的弊端。归根结底,您处理 CT 的方式可能会成就或破坏您的 CI/CD 实施。 

持续测试内部 

有效的 CT 框架将测试直接嵌入到交付管道中,并在整个软件生命周期(从早期开发到发布)中自动调用测试用例。这样的框架采用了更大的测试池,并且比标准 QA 测试更频繁地执行测试。它根据预定义要求建立多个通过/失败数据点。并且它与 CI/CD 管道完全协调和集成,理想情况下是通过基于云的实验室和可以根据需要弹性扩展的测试基础设施。  

当组织采用持续自动化测试时,他们可以立即获得有关新软件更新或版本发布的反馈,并更好地识别潜在的冲突和风险。通过构建 CI/CD 的 CT 组件,组织可以:

尽早发现问题:大规模中断不仅仅是由恶意攻击造成的。正如 CrowdStrike 事件所表明的那样,简单的错误(在本例中,用于执行验证检查的工具出现故障)可能会造成灾难性的后果。当组织拥有大量可重复的测试,并在整个交付管道中自动重复执行时,他们可以在投入生产之前就发现大多数问题。 

提高 IT 系统的稳定性和安全性:当组织实现自动化测试时,他们获得了监控性能和更准确地检测潜在问题的新功能。例如,通过捕获网络性能和安全态势的基线 KPI,他们可以快速识别这些 KPI 在变化后何时出现偏差。 

加快交付时间:自动化测试,尤其是通过按需实验室即服务 (LaaS) 和测试即服务 (TaaS) 解决方案实施时,可以立即提高敏捷性。组织可以在任何时间和地点扩展测试资源,并更快地推送更新,而不会产生不必要的风险。 

提高整体效率:有效实施 CT 的组织不仅行动更快,而且工作效率更高,质量和合规性也更好。他们还可以通过避免监管罚款和诉讼、在开发周期早期发现问题来节省大量成本。 

设想有效的持续测试 (CT) 

有多少家公司就有多少种 DevOps 框架,因此每个 CI/CD 管道都是独一无二的。尽管如此,有效的 CT 实施具有共同的核心要素。最成功的软件组织采用的测试是:

全面:有效的 CT 流程始于大量可重复的测试,并自动在多个短周期内执行这些测试。按照这种思路,组织应该能够快速启动可能部署软件的各种操作系统,以验证影响和质量。  

受控:组织应仅在充分控制的情况下部署更新,以确保所有更改都经过授权、有意图且按预期执行。该原则应适用于软件堆栈的所有第三方元素以及内部产品,以减轻供应链风险。 

持续性:自动化测试应贯穿整个软件交付流程,一旦实施,就应通过主动测试进行验证。通过在实际负载下使用模拟流量测试补丁和版本更新,组织可以在实施后阶段更快地发现问题,以免影响用户和客户。

展望未来

大多数企业软件每年更新两到三次的时代已经一去不复返。我们正式进入了一个勇敢的新 DevOps 世界,组织可以不断为用户和客户提供更具创新性的软件功能。但如果我们想充分实现这种新发现的敏捷性带来的好处,我们别无选择,只能确保我们尽可能安全、负责任地实施软件交付管道。确保您没有忽视 CI/CD 的 CT 方面。 

标签:CI,中断,组织,CD,避免,测试,软件,CT
From: https://blog.csdn.net/qq_29607687/article/details/143059525

相关文章

  • js 中断循环的几种方式
    在JavaScript中,`forEach`方法是用来遍历数组的元素,并且它不能被中断或退出。如果你需要在满足某个条件时中断循环,你可以考虑使用其他循环结构,比如`for`循环、`for...of`循环或者`while`循环。下面是一些替代方案:1.**使用`for`循环**:```javascriptletarray=......
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-3-启动浏览器(详细教程)
    1.简介 通过前边两篇文章跟随宏哥学习想必到这里已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动两大浏览器。按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome。但是微软已经在Win10中不维护IE浏览器了,用Edge浏览器代替或者兼容IE模式的浏览器,因此宏哥这......
  • 优秀图书推荐《单元测试:原则、模式和实践》与要点解析
    一.单元测试历史背景     单元测试在软件开发中已经存在了几十年,但直到21世纪初,它才成为软件开发过程中的一个标准实践。随着敏捷开发方法的兴起,单元测试变得更加重要,因为它支持快速迭代和持续集成。VladimirKhorikov的书《单元测试:原则、模式和实践UnitTesting:Principl......
  • 高压1500kW 海洋平台测试交流干式负载箱的应用
    海洋平台是石油和天然气勘探开发的重要设施,其稳定性、安全性和可靠性对整个生产过程至关重要。为了确保海洋平台的正常运行,需要对其进行定期的检测和维护。在这个过程中,高压1500kW交流干式负载箱发挥着重要的作用。高压1500kW交流干式负载箱是一种能够模拟实际负载的设备,主要用于......
  • Burp Suite Professional 2024.9 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
    BurpSuiteProfessional2024.9formacOSx64&ARM64-领先的Web渗透测试软件世界排名第一的Web渗透测试工具包请访问原文链接:https://sysin.org/blog/burp-suite-pro-mac/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBurpSuiteProfessionalTheworld......
  • 黑白盒测试的特点和优缺点及比较
    黑盒和白盒是软件测试中的两种基本测试方法,它们在测试的角度和方法上有显著区别。黑盒测试定义黑盒测试是一种不考虑内部实现细节的测试方法。测试人员只关注输入和输出,而不需要了解程序的内部结构和逻辑。特点关注输入和输出:测试人员根据功能说明书或需求文档,设计测试用......
  • 安全测试的漏洞类型
    目录一、安全测试的定义二、安全测试的分类1、静态扫描2、内存扫描3、动态安全测试三、安全测试主要关注哪些方面的漏洞漏洞一:SQL注入漏洞二:XSS 漏洞三:暴力破解漏洞四:文件包含文件上传漏洞漏洞五:越权漏洞漏洞六:信息泄露四、预防XSS预防暴力破解预防文件上传......
  • pix2pix模型测试时不使用model.eval()
    目录pix2pix特殊之处理论基础:model.eval()、model.train()、withtorch.no_grad()model.eval()、model.train()withtorch.no_grad()实际操作参考资料pix2pix特殊之处pix2pix模型在测试时与众不同的特点:1、使用dropout,引入随机性,否则容易无论什么输入都生成一样的图2、使用Bat......
  • Junit单元测试—Maven
    JUnit单元测试常用注解测试顺序大概流程//第一步:创建测试类,测试类的类名一般是:被测试类类名+TestpublicclassMathUtilsTest{/*第二步:为了保证每个方法独立,为测试的每个方法单独创建测试方法测试方法要求(规格):(1)不能......
  • 面试汇总-测试用例设计
    微信发红包UI1、发红包的界面有无错别字2、发红包的界面是否排版合理3、发红包的界面颜色搭配是否合理功能测试1、红包金额输入框是否只能输入数字和小数,小数位数是否有限制2、红包个数输入框是否只能输入数字3、红包金额框的最大输入数字是否最多200,除特殊节假日最高输入500;......