Skip to content

DevOps 中持续测试的关键

如果你在实际工作中正在运用 DevOps,那么您很有可能了解持续测试。在这篇博文中,我们来看一下持续测试(continuous testing),从而了解为什么它在 DevOps 中扮演着关键角色,以及为什么自动化测试在支持可持续性方面是必不可少的。

DevOps、 CI/CD 和 Agile 都是近年来在 QA 和测试领域得到广泛关注的方法和途径。它们的出现是为了使测试更加精简,并使企业能够快速提供质量。

DevOps、 CI/CD 和 Agile 是不同的,但它们有着相同的目的和目标,即通过灵活的交付模式来提供高质量的产品,这种交付模式能够快速反馈闭环和即时响应,使企业能够比以往任何时候都更快地适应市场变化。

在这篇博文中,我们将重点定义持续测试和 DevOps,并解释它们是如何相互交织在一起的。我们将回答以下问题:

  • 什么是 CI/CD
  • 什么是连续测试?
  • 什么是 DevOps?
  • 在 DevOps 中持续测试的作用是什么?

首先,让我们看一下 CI/CD,并分解这个概念,以便理解什么是连续测试,以及为什么要努力进行连续测试。

什么是 CI/CD

CI/CD 代表持续集成和持续交付。实际上,CI/CD 是一个包含一系列工具的流水线,它们共同工作,以高速度交付高质量的软件。根据定义,CI/CD 管道是完全自动化的,不需要人工干预。

正是自动化使得流程的连续性成为可能,因此自动化工具的实现是构建 CI/CD 流水线的先决条件。

CI/CD pipeline 流水线由以下几部分组成:

  • 持续集成 (Continuous Integration:CI) 这是流水线的第一部分。当开发人员编写他们的代码并将其提交给代码存储库时,将立即并持续地对其进行集成,然后推进构建。

  • 持续测试(Continuous Testing) 在 CI/CD 中,这被认为是 CI 的一部分。一旦代码构建完成,就会自动对其进行测试,如果代码出现故障,开发人员会立即得到通知。

  • 持续开发(Continuous Development) 持续集成和持续测试共同构成了持续开发。

  • 持续交付(Continuous Delivery) 在代码构建和测试完成之后,它会被推送到交付阶段。这个阶段,部署之前需要人工评定。

  • 持续部署(Continuous Deploy)
    在持续交付中,有些还自动化了一直到部署的整个过程的流程,在这种情况下,CD 代表持续部署。

在这篇文章中,我们将关注这个流水线中的持续测试环节。

什么是连续测试?

编写代码有点像盖房子: 你从基础开始,然后逐步建立起来。测试就像是确保用于建筑的材料是稳定的,不会断裂。

那么,当你开始建造二楼的时候,你意识到用来支撑一楼墙壁的木框架不够坚固,会发生什么呢?

你必须重新开始。

但是如果你在建造一楼的时候发现了有缺陷的木框架呢?

如果这样的话,修复起来就会容易得多,也会快得多。这就是为什么尽可能接近构建的测试是非常重要的——特别是如果你想避免浪费不必要的开发人员资源或者把宝贵的时间扔出窗口。

尽早捕获 bug 意味着可以在大回滚时节省宝贵的时间和资源。这就是为什么团队努力持续测试,而不是在周期结束时测试。

当然,您需要更多的资源和能力来更频繁地进行测试。

如果你独自建造一座房子,你可能会倾向于跳过测试,因为这会花费你很长时间,而且你可能会认为地基不完善的风险很低。

然而,即使是最小的错误也可能使房子倒塌。所以为了消除风险,我们可以做一个小小的投资: 自动化。自动化机器人一旦安装完毕,就可以为您进行测试,并让您以与以前相同的速度继续进行构建工作,但风险要低得多。

这就是为什么自动化是实现连续测试的关键。

拓展阅读:如何通过自动化测试实现持续交付。

那么为什么持续测试是 DevOps 的关键组成部分呢?

正如本文开头所提到的,DevOps 还旨在通过灵活和敏捷的交付模型快速交付高质量的产品。

质量来自于广度和深度的更多测试,速度来自于频率和连续性。这正是测试自动化所提供的。

让我们更仔细地研究一下 DevOps,以便更好地理解使持续测试成为关键的优先级。

什么是 DevOps?

DevOps 是开发和运营的缩写。由于这两个部门之间需要更好的协作,因此建立了这一机制。不仅仅是一种心态,而是一个职位头衔,它的作用是确保这种合作。

正如我们在这篇关于 DevOps 的博文中所写的:

DevOps has emerged in connection with the agile movement as a result of the need to increase the frequency and speed of product releases while maintaining or improving a certain standard of quality.

DevOps 的出现与敏捷运动有关,因为需要在保持或提高某种质量标准的同时,增加产品发布的频率和速度。

DevOps 鼓励团队之间从开发到部署的协作和沟通,并要求整个管道的自动化,以便实现灵活性和连续性,这是目前快速交付高质量产品所必需的。

简单地说,持续测试可以实现 DevOps 的主要目标: 快速交付质量。

当谈到 DevOps 作为一项工作时,DevOps 的角色就是构建 CI/CD 管道,以确保软件从开发到发布都保持高质量,并且在管道中快速、灵活地移动。

因此,DevOps 的任务还包括找到并实现测试自动化工具,这些工具将帮助它们实现持续测试,以及其他用于剩余管道的自动化工具。

持续测试在 DevOps 中的作用

总之,DevOps 团队的角色是构建 CI/CD 管道,从而在整个软件开发生命周期中实现自动化,以便交付频繁、可靠的软件。

连续测试是 CI/CD 流水线的重要组成部分,可以通过测试自动化的方式实现。

您可以在我们的白皮书: DevOps 和测试自动化中了解更多关于 DevOps 的角色,测试自动化的重要性,以及如何开始构建您的 DevOps 管道的信息。

https://www.leapwork.com/download-paper-devops-test-automation

参考博文:https://www.leapwork.com/blog/continuous-testing-in-devops