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