DevOps 中的持续测试
什么是持续测试?
DevOps 中的持续测试是一种软件测试类型,它涉及在软件开发生命周期的每个阶段进行软件测试。持续测试的目标是通过尽早和频繁地测试,在持续交付过程的每个步骤评估软件质量。
DevOps 中的持续测试过程涉及开发人员、DevOps、QA 和操作系统等利益相关者。
持续测试有何不同?

旧的测试方式是以移交为中心。软件从一个团队移交到另一个团队。一个项目将有明确的开发和 QA 阶段。QA 团队总是需要更多时间来确保质量。目标是质量应优先于项目进度。
然而,企业希望更快地将软件交付给最终用户。软件越新,就越能更好地进行市场推广,并增加公司的收入潜力。因此,一种新的测试方式应运而生。
持续意味着不间断地进行测试。在持续 DevOps 流程中,软件更改(发布候选版本)不断地从开发移到测试再到部署。
代码不断地开发、交付、测试和部署。
例如,每当开发人员将代码检入到像 Jenkins 这样的源代码服务器时,自动化的一组单元测试就会在持续过程中执行。如果测试失败,构建将被拒绝,并通知开发人员。如果构建通过测试,它将被部署到性能、QA 服务器进行详尽的功能和负载测试。测试并行运行。如果测试通过,软件将部署到生产环境。
持续测试是持续开发、集成和部署周期中的一个小小环节。
软件开发与过去不同,我们已将开发周期从数月缩短到数周。当前的测试栈(见上图)倾向于 UI 测试。但目标是拥有越来越多的自动化单元测试。
持续测试与自动化测试有何不同?
自动化测试与持续测试
参数 | 自动化测试 | 持续测试 |
---|---|---|
定义 | 自动化测试是使用工具或软件来自动化任务的过程。 | 它是一种软件测试方法,专注于实现持续质量和改进。 |
目的 | 一组相似或重复的任务,机器可以更快、错误更少地执行。 | 持续测试过程有助于发现风险、解决风险并提高产品质量。 |
前提条件 | 测试自动化可以在不集成持续测试的情况下实现。 | 没有测试自动化,就无法实施持续测试。 |
时间管理 | 软件发布可能需要数月到数年。 | 软件发布可能每周到每小时发布一次。 |
反馈 | 每次发布测试后定期反馈。 | 每个阶段的反馈都需要即时。 |
历史 | 自动化测试已进行了数十年,以加快测试过程。 | 持续测试是一个相对较新的概念。 |
如何进行持续测试
- 使用工具从用户故事/需求生成自动化测试套件
- 创建测试环境。
- 复制并匿名化生产数据以创建测试数据集
- 使用服务虚拟化测试 API
- 并行性能测试
持续测试工具
以下是精选的最佳持续测试工具列表
1) QuerySurge
QuerySurge 是智能数据测试解决方案,是首个用于持续数据测试的全 DevOps 解决方案。主要功能包括具有 60 多个调用的强大 API、详细的数据智能和数据分析、无缝集成到 DevOps 管道以进行持续测试,以及快速验证大量数据。
2) Jenkins
Jenkins 是一个使用 Java 语言编写的持续集成工具。此工具可以通过 GUI 界面或控制台命令进行配置。
下载链接:https://jenkins.io/
3) Travis
Travis 是一个托管在 GitHub 上的持续测试工具。它提供托管和本地部署两种版本。它支持各种不同的语言并提供良好的文档。
下载链接: https://travis-ci.org/
4) Selenium
Selenium 是开源软件测试工具。它支持所有主流浏览器,如 Firefox、Chrome、IE 和 Safari。Selenium WebDriver 用于自动化 Web 应用程序测试。
下载链接: https://www.seleniumhq.org/
持续测试的优点
- 加速软件交付
- 持续测试可提高代码质量
- 它有助于评估精确的业务风险覆盖范围。
- 它无缝集成到 DevOps 流程中
- 有助于在数小时而非数月内创建敏捷可靠的流程。
- 通过持续反馈机制加速上市时间。
- 将传统上孤立的团队融合在一起,以满足现代企业需求。消除开发、测试和运营团队之间的脱节。
- 自动化测试通过为所有相关测试保持相同的配置来帮助实现一致性。
- 强调业务期望以降低业务风险
- 通过服务虚拟化提供无处不在的测试环境访问
持续测试的挑战
- 传统流程限制了开发和 QA 专业人员之间的文化转变。
- 缺乏在敏捷和 DevOps 环境中进行测试的 DevOps 技能和正确工具。
- 异构测试环境永远无法反映生产环境。
- 传统的测试流程和定义松散的测试数据管理。
- 较长的代码集成周期导致集成问题和延迟缺陷修复
- 不足和无效的资源和测试环境
- 复杂的应用程序架构和业务逻辑限制了 DevOps 的采用。
结论
- 在软件工程中,持续测试是一个尽早测试、频繁测试、随处测试和自动化的过程。
- 旧的测试方式是以移交为中心。软件从一个团队移交到另一个团队
- Jenkins、Travis 和 Selenium 是流行的持续测试和集成工具。
- 持续测试根据交付管道的每个阶段提供可操作的反馈。
- 持续测试有助于提高代码质量
- 传统流程限制了开发和 QA 专业人员之间的文化转变。
- 较长的代码集成周期导致集成问题和延迟缺陷修复