测试是软件开发生命周期 (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 扫描帮助我们实施最佳编码实践,并通过更新到最新版本或丢弃和使用不太容易出现漏洞的库并经常更新它们来修复易受攻击的库,从而使代码不太容易出现安全问题风险。

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

SDLC 生命周期中的持续测试

持续测试的优势

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

持续测试的重要类型

云服务平台的作用

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

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

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

结论

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

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


↙↙↙阅读原文可查看相关链接,并与作者交流