CrowdStrike 的失败如何凸显了左移测试的重要性

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
注册配置 MSE Nacos/ZooKeeper,118元/月
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: CrowdStrike 软件更新失败是一个重要的教训,它让我们认识到早期、自动化和全面的软件测试的重要性。


通过自动化软件测试并将其左移,组织可以显著降低 CrowdStrike 等事件发生的风险。继续阅读,了解采用左移测试方法的强大之处。


测试中偷工减料的风险


CrowdStrike 软件更新失败是一个重要的教训,它让我们认识到早期、自动化和全面的软件测试的重要性。正如我的同事Miroslaw Zielinski在《CrowdStrike 事件中的软件测试见解》中所强调的那样,为了节省时间和金钱而偷工减料可能会导致灾难性的后果。测试不仅仅是一个需要检查的框。它是确保您交付的软件可靠、安全并能够在现实世界中按预期运行的重要组成部分。


虽然这次失败背后有多种因素,但我经常听到组织提出的一个共同挑战是频繁发布更新的持续压力。这种压力往往使优化测试成本和时间成为一个有吸引力的目标。然而,避免 CrowdStrike 失败等事件的关键在于采用全面的、左移的测试方法。


Parasoft 的软件测试(尤其是静态分析)旨在促进这种左移方法。但在深入研究此解决方案之前,让我们先了解左移测试的强大功能。


左移测试的力量


左移测试是现代软件开发中最强大的概念之一,它能够及早发现错误并提高整体代码质量。传统上,测试和调试是在开发周期的最后阶段进行的——在代码编写和集成之后——通常是在初始测试阶段之后。这种方法通常会导致在流程后期发现关键的错误和问题,而修复这些问题要困难得多,而且耗时得多。


通过在实施过程中实施静态分析,工程师可以在编写代码时解决编码问题或合规性违规问题。这种即时反馈使开发人员能够当场纠正问题,从一开始就显著提高代码质量。结果就是大幅减少了缺陷,否则这些缺陷会在开发生命周期的后期才被发现,而修复这些缺陷会变得越来越复杂和昂贵。


例如,如果通过静态分析及早发现缺陷,则可以快速有效地解决该问题。但是,如果同一缺陷直到后来才通过质量保证测试发现,解决过程就会变得更加复杂。涉及的团队成员更多,记录、报告、重现和修复问题的步骤需要更长的时间,从而导致工作量增加和延误。


如果缺陷影响到生产,风险会更高。现场修复缺陷尤其具有挑战性,因为它会直接影响客户,可能需要紧急修补、召回,甚至采取损害控制措施来保护产品的声誉。开发团队必须迅速采取行动修复错误,而 QA 团队需要重新测试解决方案,这增加了流程的复杂性。


回顾 CrowdStrike 事件,我们清楚地知道静态分析对于在开发过程早期识别和解决缺陷、防止代价高昂且具有破坏性的问题影响生产至关重要。


静态分析不仅仅是语法检查


静态分析是一种先进的技术,用于检查源代码以识别潜在错误,例如使用未初始化的变量、空指针取消引用、缓冲区溢出和许多其他编码缺陷,而无需执行代码。


例如,Parasoft 的静态分析引擎不仅限于简单的语法检查。它不仅执行控制流和数据流分析来捕获各种错误和编码问题,而且还通过独特的 AI 和机器学习应用领先于竞争对手。我们的 AI驱动解决方案会在与代码库的历史交互和以前的静态分析结果的背景下审查新的静态分析结果,预测相关性并确定新发现的优先级,以帮助组织更有效地采用静态分析。


静态分析检测的问题类型


以下仅列举了静态分析可以检测到的几种类型的错误或问题。



  • 空指针取消引用。自动检测取消引用 NULL 指针的尝试。


  • 内存泄漏。识别已分配但未正确释放内存的情况。


  • 缓冲区溢出。对于安全来说至关重要,检测写入缓冲区的数据是否超出其可容纳的数据量。


  • 未初始化的变量。标记在初始化之前使用的变量。


  • 无限循环。检测可能永不终止并导致程序挂起的循环。


  • 死代码。查找从未执行过且可以安全删除的代码。


  • 除以零。确定分母可能为零的除法,因为这会导致运行时错误。


  • 语法和类型错误。标记代码中阻止编译的错误。


  • 逻辑错误。捕获代码逻辑中可能导致不正确行为的错误。


  • 安全漏洞。检测已知漏洞库的使用情况和其他安全问题。


  • 违反编码标准。 确保遵守编码标准,这对于在安全关键环境中获得认证至关重要。


在安全关键型开发中,人们会积极寻找并缓解此类编码错误,因为如果系统崩溃或出现故障,可能会造成生命损失。虽然安全概念不是 CrowdStrike 的要求,但软件质量是必需的,他们应该考虑采用MISRA、CERT、CWE等编码标准。


MISRA 等编码标准是由具有多年经验的专家开发的,而 Parasoft 作为MISRA C 和 C++ 2023编码标准的贡献成员,提供了基于这些专业知识的强大静态分析解决方案。


尽管有这些明显的好处,但令人惊讶的是,仍然有很多开发团队没有使用静态分析。采用静态分析对于降低软件测试成本、提高代码质量至关重要。


通过将静态分析纳入其持续集成/持续部署 (CI/CD) 管道,CrowdStrike 可以自动识别导致其软件更新失败的内存访问问题。


将静态分析集成到 CI/CD 管道中


在现代 CI/CD 环境中,开发人员编写并提交代码,从而触发自动构建过程。构建成功完成后,将运行自动测试(包括静态分析)。Parasoft C 和 C++ 测试解决方案(如 C/C++test)可轻松集成到 CI/CD 管道中,并与 Jenkins、GitLab、Bamboo、VS Code、Eclipse 等工具无缝协作。


这种集成可确保持续监控和改进代码质量,开发人员可立即收到有关静态分析发现的任何问题反馈。通过自动执行这些质量检查,组织可以:



  • 防止技术债务累积。


  • 通过在开发早期发现问题来降低测试成本。


  • 在整个开发过程中实现高标准的代码质量。


CrowdStrike 事件的教训


CrowdStrike事件为开发团队提供了宝贵的教训。



  1. 抵制偷工减料的诱惑。快速交付的压力可能会导致质量下降。抵制这种诱惑并优先进行全面测试以防止代价高昂的故障至关重要。


  2. 了解系统的关键性。即使看似不重要的系统在发生故障时也会产生重大影响。了解与软件相关的真正风险是做出有关测试和质量保证的明智决策的关键。


  3. 向安全至关重要的行业学习。汽车和航空航天等行业已经制定了严格的测试标准,软件故障可能会造成生死攸关的后果。采用其中一些最佳实践可以帮助提高软件的可靠性,即使它不是安全至关重要的。


结论


CrowdStrike 软件更新失败凸显了在当今软件开发环境中全面、自动化测试的重要性。组织可以通过利用 Parasoft 的静态分析解决方案以及单元测试、代码覆盖率和其他测试方法显著降低此类事件的风险。我们的工具可帮助团队在管理业务风险的同时保持高标准的软件质量,确保他们的软件可靠、安全且随时可在现实世界中运行。

js
相关文章
|
22天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
14天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
19天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2567 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
17天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
1天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
149 2
|
18天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1564 16
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
2天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
20天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
903 14
|
16天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
674 9
|
14天前
|
存储 监控 调度
云迁移中心CMH:助力企业高效上云实践全解析
随着云计算的发展,企业上云已成为创新发展的关键。然而,企业上云面临诸多挑战,如复杂的应用依赖梳理、成本效益分析等。阿里云推出的云迁移中心(CMH)旨在解决这些问题,提供自动化的系统调研、规划、迁移和割接等功能,简化上云过程。CMH通过评估、准备、迁移和割接四个阶段,帮助企业高效完成数字化转型。未来,CMH将继续提升智能化水平,支持更多行业和复杂环境,助力企业轻松上云。