DevOps 测试策略的各种实践

2022-05-04   出处: perfecto  作/译者:perfecto官网/skyler

DevOps 在企业中显的尤其重要。如果我们能制定一个好的测试策略就能够离成功更进一步。

什么是 DevOps 测试策略?

DevOps 测试策略必须专注于持续测试。测试不能是 DevOps or Agile ,除非它是连续的。

DevOps 的一个重要组成部分是持续集成/持续交付(CI/CD)。在CI和CD之间,应该是持续测试。

如果不进行持续测试,将会出现:

  • 缺陷的泄漏
  • 软件延期交付
  • 客户不满意

DevOps测试策略的好处

以下是可以从一个强有力的战略中预期到的一些好处。

提供更快的反馈

提供更快的反馈。我们都不希望看到开发人员不得不回到他们在1-2周前编写的代码中去修复一个bug。我们希望他们得到更快的反馈,这样他们就可以立即解决问题。我们可以更快地释放投入到其他工作。

覆盖更多平台

通过实施扩展自动化测试的策略来覆盖更多的平台。这可能具有挑战性,因为移动和网络平台都是分离的。但是,当我们使用正确的测试自动化工具时,可以确保在更快的时间内覆盖更多的平台。

减少测试执行时间限制

最后,减少测试执行的时间限制。执行时间需要更短。当我们大规模并行运行,并使用正确的工具时,我们可以加快上线的时间。

我们如何确保一个可靠的战略,从而体验到好处?要做到这点,我们需要遵循 DevOps best practices。

开发DevOps测试策略的最佳实践

对于大多数组织来说,理想的状态是持续测试。但是组织正在努力寻找测试自动化的坚实基础。 以下是我们制定测试策略的最佳实践。

进行规模的自动化测试

为了建立一个成功的DevOps测试策略,需要在 Web 和移动设备上扩展测试自动化。

扩展Web测试

有三种扩展web测试的方式:

  • DIY (e.g., Selenium Grid in-house)
  • 容器化计算 (e.g., using Docker and Selenium)
  • 云 (e.g., Selenium Grid with Perfecto)

扩展移动测试

同样,有三种扩展移动测试的方式:

  • DIY
  • Crowdsourcing
  • Cloud testing labs (e.g., Perfecto)

有两种主要的解决方案可用于扩展 Web 和移动(以及跨浏览器)的测试自动化。 一种选择是使用开源框架(e.g., Cucumber)。另一种选择是无代码(e.g., Selenium)。

自动化所有测试类型

要制定一个成功的策略,需要跨所有测试类型实现自动化。这包括功能测试和非功能测试,包括性能、可访问性和单元代码覆盖率。

维护稳定的测试自动化套件

CI内部和CI外部的自动化是敏捷和DevOps的核心。确保自动化持续增加价值 -> 并满足上述目标 -> 需要一个稳定的测试自动化套件。

自动化套件必要时进行不断的审查、审核、维护和重构。

随着产品代码的更改,测试也会随之更改。确保团队正在研究测试场景并在需要时对其进行更新。

使用支持框架

战略的另一个重要步骤是使用支持框架。

以下是使用支持框架的示例:

  • 提供测试结构 (BDD/ATDD) (Mocha, Jasmine, Jest, Cucumber)
  • 提供断言功能 (Chai, Jasmine, Jest, Unexpected)
  • 生成,显示和观察测试结果 (Mocha, Jasmine, Jest, Karma)
  • 生成代码覆盖率报告 (Istanbul, Jest, Blanket)
  • 提供一个浏览器或者类似浏览器的环境,可以控制场景执行,UI测试等 (Protractor, Nightwatch, Phantom, Casper, Selenium, WebDriver.io, TestCafe)
  • 提供 mocks, spies, and stubs (Sinon, Jasmine, enzyme, Jest, testdouble)

依靠企业级实验室

为了快速发布高质量的产品,团队应依靠强大的实验室:

  • 这可以扩展。
  • 这是安全的。
  • 这对于所有类型的测试都是可用的。
  • 这是所有最新移动和网络平台的最新版本。

此外,这样的实验室应该能够支持所有先进的自动化能力。这包括团队需要自动化的音频、位置、图像和其他数字相关功能。

使用高级报告和分析

每个测试活动的核心都有一份测试报告。报告越详细、越有可操作性,开发人员就越能更快地找出故障的根本原因并向前推进。

确保使用强大的报告平台作为整个测试活动的一部分。

使用Headless Browsers

Headless Browsers在web应用的测试策略中扮演着重要的角色。这些是开发人员友好的工具。使用headless Browsers可以帮助开发人员向测试工程师提供更稳定的版本。此外,headless Browsers — 例如:Google Puppeteer —是免费的。

开发人员不需要设置Selenium Grid。他们可以直接把Puppeteer部署到他们的环境中。从那里,开发人员可以用JavaScript进行一些性能审计、可访问性测试和一些单元测试。

这在扩展测试自动化方面发挥了重要的作用,因此可以成功实施 DevOps 测试策略。

让整个团队参与测试

如果没有整个团队的参与,DevOps测试策略是不会成功的。

为了对每个pull请求和代码更改进行大规模的自动化测试,你需要:

  • 业务测试人员进行探索性和结构化的手工测试——利用无代码自动化测试。
  • 测试中的软件开发人员(SDET)创建基于功能和非功能代码的自动化测试脚本(via Selenium, Appium等)
  • 软件开发人员创建单元并构建验收测试

测试先驱:数字赢家如何应对测试自动化

是什么让领先公司在测试自动化领域脱颖而出?在本次章节中,解决方案工程师Johnny Lam将利用他与全球领先企业(从财富500强到初创公司)并肩工作的经验,来制定、实施和执行他们的测试自动化计划。他们采取了哪些措施来加快测试的速度,并以经济有效的方式扩大测试的规模?在这个环节中得到答案。

成功实施 DevOps 测试策略所需的工具

要在DevOps测试策略中取得成功,需要的不仅仅是最佳实践。更加需要合适的工具。

以下是需要的一些工具的对比表:

比较适用于DevOps测试策略的工具

Selenium / Appium WebDriver
支持的开发语言 Java, C#, JavaScript, Python, Ruby, Objective C
支持的平台 Chrome, Safari, Firefox, Edge, IE, iOS, Android
支持的测试框架 Mocha JS, Jest, other superset on top of Selenium (Protractor, WebDriverIO, etc.)
设置和执行 下载相关驱动,设置系统网络和当前执行速度
集成 大量集成(CI/CD、报告、可视化测试、云供应商)
测试范围 端到端, 安全测试, 单元测试
成熟度, 文档, 支持 强大的社区、多种绑定、最佳实践
需要技能 需要编码技能 (面向 SDET)
云计算和大规模执行 Perfecto 完全支持 Selenium 和 WebDriver 的配置;本地执行需要设置 Selenium Grid
XCUITest / Espresso / Headless / Cypress
支持的开发语言 Objective C, Java, JavaScript
支持的平台 Chrome, Electron
支持的测试框架 不支持
设置和执行 Embedded into IDEs, IDEs, headless bundles a browser in the FW
集成 CI/CD
测试范围 UI测试, 单元测试
成熟度, 文档, 支持 良好的文档和代码示例
需要技能 面向开发
云计算和大规模执行 Built-in Chrome/Firefox browsers in headless;Perfecto Cloud 支持 Espresso/XCUITest
Codeless
支持的开发语言 无关紧要,仅基于记录和回放
支持的平台 全部
支持的测试框架 底层Selenium WebDriver Api的专有UI
设置和执行 主要是SaaS/浏览器插件安装
集成 有限范围内的
测试范围 功能测试, UI测试
成熟度, 文档, 支持 需要加强,有限的
需要技能 无需编码技能(面向业务测试人员)
云计算和大规模执行 Perfecto 支持云端的无代码
BDD
支持的开发语言 Java, Ruby, JavaScript, Kotlin
支持的平台 全部
支持的测试框架 Junit, Selenium, Appium
设置和执行 开源, Maven/Gradle/TestNG
集成 大量 + APIs (e.g., rest assured)
测试范围 功能测试
成熟度, 文档, 支持 强大的社区, 文档, 采用
需要技能 需要代码中的步骤定义开发/场景中没有代码(业务测试人员和SDETs的混合)
云计算和大规模执行 Perfecto Quantum是一个web/mobile BDD框架

与Perfecto一起使用DevOps测试工具

使用Perfecto,可以扩展web和移动设备的测试自动化。您将能够跨浏览器进行测试,并获得最佳测试覆盖率。利用Perfecto的基于云的实验室来自动化最复杂的测试场景。

另外,Perfecto集成了DevOps工具链,包括像Jenkins这样的CI/CD工具。

因此,你将能够:

  • 提供更快的反馈。
  • 覆盖更多的平台。
  • 减少测试执行的时间限制。

想要了解Perfecto将如何帮助您构建和执行测试策略。从今天开始,free 14-day trial。

相关内容

-The Evolution of Waterfall to Agile & DevOps
-What Is Continuous Testing?
-Cloud Testing Is More Critical Than Ever

========================================================================================
最后,感谢阅读。

{测试窝原创译文,译者李媛媛。}


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
256° /2568 人阅读/0 条评论 发表评论

登录 后发表评论