DevOps 中的持续测试是什么(定义、好处、工具)?
持续测试
DevOps 中的持续测试是一种软件测试,它需要在软件开发生命周期的每个阶段测试程序。持续测试的目的是通过及时和频繁地检查,在持续交付流程的每个阶段评估软件质量。
在 DevOps 中,持续测试阶段包括开发人员、DevOps、QA 和操作系统等参与者。
本文将教你 -
什么是持续测试?
持续测试有什么不同?
持续测试与测试自动化有什么区别?
如何进行持续测试
持续测试工具
持续测试的好处
持续测试的挑战
持续测试有什么不同?
传统的测试方法是基于交接的。程序从一个小组传递到另一个小组。程序将具有不同的开发和质量保证阶段。QA 团队一直在寻找额外的验证准确性的时间。目标是让质量优先于项目时间表。
但是,企业希望软件尽快交付给目标消费者。程序越新,越容易销售,公司的收入机会也会随之提高。因此,开发了一种新的测试方法。
持续测试是指定期不间断地完成的测试。在持续 DevOps 周期中,软件修改(候选版本)不断地从开发阶段转移到测试阶段再到部署阶段。
代码在不断地编写、提供、评估和发布。
例如,每当程序员在源代码服务器(如 Jenkins)中验证代码时,都会在持续循环中执行一组自动的单元测试。如果测试失败,则丢弃开发并提醒程序员。如果版本满足要求,则将其发送到性能和 QA 服务器以进行操作和压力测试。测试是并行进行的。如果测试成功,则将程序投入生产。
持续测试是持续开发、集成和部署周期中的一个小型组件。
持续测试与测试自动化有什么区别?
测试自动化与持续测试
| 参数 | 测试自动化 | 持续测试 |
|---|---|---|
| 定义 | 测试自动化是指使用技术或程序来自动执行操作。 | 它是一个软件测试框架,其目标是维护和改进性能和质量。 |
| 目的 | 一系列计算机可以更快地执行且错误更少的类似或重复的动作。 | 持续测试方法有助于识别风险、解决风险并提高产品质量。 |
| 先决条件 | 无需使用持续测试即可实现测试自动化。 | 如果没有测试自动化,则无法实现持续测试。 |
| 时间 | 软件开发可能需要从一个月到几年不等的时间。 | 软件发布的频率可以从每周到每小时不等。 |
| 反馈 | 在每个版本的测试后,都会按固定时间表提供反馈。 | 在每个级别,响应都必须快速。 |
| 历史 | 多年来,自动化测试通常用于加快测试过程。 | 持续测试是一个更新的概念。 |
如何进行持续测试
利用资源从客户叙述中创建测试自动化套件
创建测试环境。
复制和匿名化生产数据以构建测试数据床。
使用服务虚拟化来测试 API。
并行性能测试
持续测试工具
以下是一些精选的最佳持续测试工具 -
QuerySurge
QuerySurge 是一款智能数据测试工具,也是第一个用于持续数据测试的全面 DevOps 工具。重要功能包括具有 60 多个调用的全面 API、广泛的数据智能和分析、与 DevOps 工作流程的无缝集成以进行定期筛选,以及能够快速验证海量数据的能力。
Jenkins
Jenkins 是一个使用 Java 编程语言创建的持续集成工具。可以使用图形用户界面或控制台指令来设置此实用程序。
Travis
Travis 是一个托管在 GitHub 上的持续测试平台。它提供在线和本地选项。它支持多种语言并提供全面信息。
Selenium
Selenium 是一个开放且免费的软件测试框架。它与所有主要浏览器兼容,包括 Firefox、Chrome、Internet Explorer 和 Safari。Selenium WebDriver 是一个 Web 应用程序测试自动化工具。
持续测试的好处
加快软件的发布速度。
持续测试提高了代码质量。
它有助于确定精确的业务风险保护。
它与 DevOps 流程无缝协作。
寻求在数小时而不是数月内加强有效且可靠的程序。
通过持续的反馈系统,它缩短了上市时间。
为了满足现代企业的需求,历史上分离的团队被合并在一起。消除了生产、测试和运营团队之间的差距。
通过对所有相关测试使用相同的设置,测试自动化有助于实现一致性。
促进组织需求以降低业务风险。
服务虚拟化实现了对测试环境的通用访问。
持续测试的挑战
旧方法正在扼杀开发和质量保证专家之间的文化变革。
在敏捷和 DevOps 上下文中,缺乏 DevOps 专业知识和合适的测试工具。
异构测试设置永远无法准确地反映生产环境。
传统的测试程序和定义不明确的测试数据管理。
较长的代码集成周期会导致集成问题和延迟的错误修复。
有限且不足的材料和测试环境
复杂的应用程序架构和业务规则阻碍了 DevOps 的采用。
结论
持续测试是一种软件工程技术,它涉及更早地测试、更频繁地测试、更广泛地测试以及自动化。
传统的测试方法是基于交接的。Jenkins、Travis 和 Selenium 是突出的持续测试和集成技术,它们从一个小组传递到另一个小组。
持续测试在交付流程的每个级别提供性能见解。
持续测试有助于提高代码质量。
旧方法正在扼杀开发和质量保证专家之间的文化变革。
较长的代码集成周期会导致集成问题和延迟的错误修复。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP