QAOps 是指通过使用 DevOps 思维方式来保持软件质量。DevOps 指软件开发(Dev)和 IT 运维(Ops),并在开发和 IT 运营之间建立关系。 将 DevOps 引入业务实践的目的是改善两个业务部门之间的协作。

质量保证(QA)在交付高质量软件产品中扮演着重要角色。如果可以将软件开发和软件运营整合在一起,那么组织有可能将软件质量保证和软件运营整合为一种模式,这为 DevOps 带来了新的内容,称为 QAOps 框架。

QAOps 框架简介

简而言之,QAOps 旨在改善软件交付过程,在保障软件质量的前提下,使其更快、更稳定。从技术上讲,QAOps 框架将质量检查流程,自动化和质量检查报告仪表板与软件开发生命周期(SDLC)流程集成在一起。QAOps 接受了来自 DevOps 的持续测试(如 CI / CD)的核心思想,并将孤立的团队召集在一起,共同进行工作流,并将其应用于 QA 流程。

QAOps 的定义

虽然没有正式的 QAOps 定义,但是可以基于这两个原理来定义该技术。

QAOps 框架的基本实践

QAOps 解决了测试团队和质量保证团队之间最常见的纠纷。QAOps 在组织的不同部门之间带来合作。QAOps 利用以下高级测试实践将 QAOps 的概念付诸实践。

自动化测试

这是 QAOps 框架的主要支柱之一。自动化测试意味着在技术和工具的帮助下进行测试,无需花费太多人力。质量保证工程师必须在构建自动化框架之前详细研究产品并了解其中业务和技术方案。根据产品和实际开发的不同阶段,质量检查工程师可以决定哪些测试可以成功自动化,以帮助节省时间并以采取有效的方式测试功能。

自动化测试最明显的类型将是回归测试用例。测试工程师可以有效地用于构建自动化测试用例。同样,产品中常用的功能也应自动执行。

例如测试工程师还需要负责确保 Web 应用程序的浏览器兼容性。如何进行费时的手动跨浏览器测试是多么的困难。在数个浏览器和 OS 组合上一一测试一个 Web 应用程序或一个网页,可能会在发布过程中中消耗大量时间和人力。

更不用说,测试相同的数十种或数百种浏览器 + 操作系统组合一定会在一段时间后让测试工程师的工作变得单调乏味。如果每次迭代都要花全部时间在相同的测试脚本和组合上执行手动浏览器兼容性测试,那么编写探索性测试的难度大大增加。

这正是自动化跨浏览器测试可以施展拳脚他的地方。借助 Selenium 等开源框架,自动化测试可以帮助测试工程师按计划完成测试。但是,仍需要找出要自动化的测试用例,因为他无法自动化所有操作。
从头开始进行自动化测试将需要一个完整的计划和文档编制阶段。但是,一旦这一阶段结束,并且当测试工程师拥有了合适的测试套件以及正确的自动化跨浏览器测试工具,那么前进的道路将会非常顺畅和富有成效。

并行测试

作为 QAOps 框架的一部分,测试应快速运行(与交付并行)。放慢测试速度将直接影响交付过程。引入自动化测试肯定会加快测试过程,但不能仅仅以串行方式运行。为了克服此问题,对于测试工程师而言,一次性运行多个测试而不是一个接一个地运行是很比较重要的。

实现了自动化测试优于手动跨浏览器测试的好处,测试工程师提出了多个自动化测试脚本来覆盖其 Web 应用程序的不同模块。但是,出现了另一个他还没有准备好解决的问题!使用 Selenium WebDriver 自动化了测试方案,以实现浏览器兼容性。Selenium WebDriver 一次只能执行一个测试用例,其他测试脚本必需排队等待。结果,由于串行执行测试脚本,测试周期仍然会有所延迟。

现在,Selenium 已经可以实现了他的测试需求。利用 Selenium 的并行测试,使用 Selenium Grid 功能,测试工程师能够同时在不同浏览器上运行多个测试用例。这使他的整体测试执行时间减少了几倍,使测试效率以倍提升。

测试可扩展性

在 Web 应用程序上线之后,可能会收到用户的反馈,提出建议并考虑在即将到来的迭代中纳入新功能。在每个发行周期之后,应用程序将继续扩展,便随而来的就是扩展测试需求!对于从 CI / CD 管道提交的每个新构建,必须计算和验证新代码更改对已经运行的代码的连锁反应。因此,在基础架构投资方面,必需将可伸缩性测试保留。

可伸缩性测试还可以通过修改测试配置来帮助测试各种条件下的应用程序性能。测试结果显示了应用程序对不同负载的响应的情况。测试例程应该可以通过 CI / CD 管道进行扩展。有时,CI / CD 管道会根据项目要求进展伸缩拓展。在这些时间内,测试还应该与 CI / CD 同步。可伸缩性测试可帮助质量检查工程师揭示与 Web 应用程序性能相关的挑战。

作为标准 QAOps 惯例,QA 团队必须具有可伸缩的基础结构来执行测试并在需要时提高测试速度以保障软件发布质量。

将 Dev&Ops&QA 集成

实现 QAOps 框架的最终实践是使 QA 成为 CI / CD 流程的一部分。将开发和 IT 运维与 QA 集成的最简单方法之一是使开发人员编写测试用例,并让 IT 运维工程师通过 QA 团队协助来识别 Web 应用程序中潜在的 BUG。这为开发人员和质量检查工程师提供了绝佳的机会,可以进行协作并清晰地了解完整的质量检查流程。这也不意味着 QA 工程师可以摆脱这些过程而保持闲置状态。不同利益相关者之间的这种协作只会使开发和测试的整个过程更加高效。

QAOps 框架的生命周期

QAOps 旨在通过 CI / CD 管道上的工具设置正确的平台,以确保测试和验证了新建的代码。设置测试平台的过程涉及三个主要步骤。质量保证下的过程对我们所有人来说都很熟悉,因为它们类似于自动化测试生命周期中涉及的主要步骤,以确保应用程序的稳定发布。

触发

QA 测试的重要方面之一是:只要在 CI / CD 管道中对应用程序功能进行更改,就触发自动化测试的执行,单必需基于功能上的更改才能触发测试。否则,在测试应用程序不需要的区域(没有更改)时将浪费时间影响项目构建速度。测试数量越多,运行测试和输出结果的时间就越多。为了平衡这种情况,对于企业来说,将测试映射到要构建项目的功能很重要。

因此,应该精心设计触发步骤,并将其映射到自动化测试生命周期中。这是 QAOps 流程的第一步。

执行

QAOps 流程的下一步是执行。触发步骤之后,将不同的功能执行不同的测试。如前所述,确保测试并行运行以节省时间并产生更快的结果很重要。要实现并行测试,请确保您拥有可以根据需要扩展和分配负载的基础架构。此外,请确保在 DevOps 环境中进行连续测试的可用性很高,以避免在 QAOps 生命周期内出现任何不必要的测试问题。

报告

触发并执行测试后,将启动生成报告。报告模块将显示测试结果。正确设计报告模块以使 QAOps 过程高效是很重要的。完善的报告模块设计应提供快速的摘要信息以及详细的信息。这将对任何查看报告的人都有帮助。此外,报告模块最好能够存储以前运行的测试的历史记录,以便各个涉众可以比较结果。

QAOps 用武之地

尽管 QAOps 框架在自动化测试的帮助下功能更强大,但它并不排斥对应用程序执行手动测试的可能性。手动测试对于保障应用程序的详细信息非常有用,因为很多测试用例只能通过手动测试来实现。除跨浏览器测试以外的部分特定类型的测试,QAOps 框架可能很少,几乎难有立锥之地。

功能探索性测试

此测试可确保在遇到意外情况时应用程序是否按预期运行。不会预先创建测试用例,因为这种类型的测试主要基于测试人员的 “独立思维”。经验丰富的测试工程师重现了潜在的应用程序崩溃情况,并使用此技术发现了错误。

这是功能探索性测试的一些优点。

使用 QAOps,可以很好地建立 QA 和运营团队之间的协作。通过对操作有更好的了解,质量检查人员可以进一步深入进行野外探索性测试。

回归测试

当已经开发了软件并且想要发布具有新功能或对现有功能的增强的更新时,回归测试将发挥重要作用。此时,QAOps 将有助于测试工程师查看新添加的信息是否对现有产品造成了任何故障。

在敏捷软件开发模型中,回归测试通常被视为一个过程,在现有过程中增加了额外的开销。QAOps 可以很好地解决此问题,因为该过程非常容易且负担对于企业来说可以接受。

组织内使用 QAOps

QAOps 似乎与 DevOps 类似,但它不需要在工作场所进行彻底的变革。该框架有助于开发人员和测试人员相互协作,共同努力以更快地获得结果或在发布之前彻底测试应用程序的新部分并保障未修改部分的质量,从而保障软件发版的总体质量。

但是要做到这一点,将 QAOps 的价值传达给关键决策者和利益相关者(尤其是技术团队)非常重要。他们必须了解实施 QAOps 框架背后所可能产生的巨大价值。这样,它可以帮助组织的其他成员(开发人员,测试工程师,IT 运维等)了解需求并相应地工作。要花时间让利益相关者相信这个新模式;但是,一旦成功,公司将就会从实施 QAOps 框架的过程中了解到 QAOps 模型的重要性。

QAOps 可以称为 DevOps 中的连续测试吗?

在通用的 DevOps 方法中,开发人员和测试人员都扮演着至关重要的角色。QA 的角色将开发团队和 IT 运维结合在一起。当我们谈论质量检查时,它不仅是简单的测试,还包括 DevOps 中的连续测试!具有在 DevOps 中进行连续测试的能力的组织可以使他们相互协作,以最快的速度交付最佳的应用程序,故而在 DevOps 方法中将 QAOps 称为 “连续测试” 就足够了。

让我们看看组织如何在 DevOps 中接受跨不同业务功能的连续测试。

总结

QAOps 也可以称为 DevOps 中的连续测试,也可以理解其为 “正确设计和实施”。这使软件团队有信心在不影响质量的前提下加快产品发版时间。



↙↙↙阅读原文可查看相关链接,并与作者交流