什么是QAOps? 以及为什么它适合您的Web应用程序?

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

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

QAOps框架简介

简而言之,QAOps旨在改善软件交付过程,使其更快,更稳定,而又不影响您的网站或Web应用程序的质量。 从技术上讲,QAOps框架将QA流程集成到软件操作中,以形成更加无缝和集成的软件操作模型。 QAOps框架将质量检查流程,自动化和质量检查报告仪表板与软件开发生命周期(SDLC)流程集成在一起。 简而言之,QAOps接受了来自DevOps的持续测试 (如CI / CD)的核心思想,并将孤立的团队召集在一起,共同进行管线工作,并将其应用于QA流程。

QAOps的定义

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

  • 引入QAOps框架的主要思想是将DevOps中的连续测试与持续集成(CI)/连续部署(CD)管道集成在一起,而不是无限期地执行软件测试。
  • QAOps框架增强了QA工程师和开发人员之间的协作。 因此,质量保证工程师必须与软件开发人员,操作人员以及CI / CD流程中涉及的每个人紧密合作。

QAOps框架的基本实践

QAOps解决了测试团队和质量保证团队之间最常见的纠纷。 通过QAOps练习,测试人员可以“预期”质量保证团队已经解决的问题,反之亦然。 QAOps在组织的不同部门之间带来合作。 QAOps利用以下高级测试实践将QAOps的概念付诸实践–

1.自动化测试

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

成功发布自动化测试的17个主要好处

自动化测试最明显的类型将是回归测试用例。 他们浪费了测试人员的时间,可以有效地用于构建自动化测试用例。 同样,产品中常用的功能也应自动执行。 为什么? 随着产品功能和特性的增长,您不希望最常用的功能失败并给用户带来不良的体验!

让我们考虑一个用户故事,以更好地理解这一点。 网络测试员Andrew,主要负责确保Web应用程序的浏览器兼容性。 身处测试领域的安德鲁(Andrew)意识到,如何进行费时的手动跨浏览器测试是多么的困难。 在数百个浏览器和OS组合上一一测试一个Web应用程序或一个网页,可能会在发布窗口中消耗大量时间和带宽。

https://cdn.lambdatest.com/assets_black_theme/images/videos/realtime-video.webm

更不用说,测试相同的数十种或数百种浏览器+操作系统组合一定会在一段时间后让Andrew变得单调乏味。 安德鲁还意识到,如果每周都要花全部时间在相同的测试脚本和组合上执行手动浏览器兼容性测试,那么发现独特的测试用例将有些令人期待。 那么安德鲁能做什么?

这正是自动化跨浏览器测试可以帮助他的地方。 借助Selenium等开源框架,自动化测试可以成为Andrew按计划完成测试周期的生命线。 但是,Andrew仍需要找出要自动化的测试用例,因为他无法自动化所有操作。

从头开始进行自动化测试将需要一个完整的计划和文档编制阶段。 但是,一旦这一阶段结束,并且Andrew拥有了合适的测试套件以及正确的自动化跨浏览器测试工具,那么前进的道路将会非常令人愉快。

2.并行测试

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

让我们继续我们在自动跨浏览器测试示例中考虑的Andrew的故事。

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

Selenium WebDriver教程,用于跨浏览器测试

现在,他在Selenium网格上实现了他的测试套件,以利用Selenium的并行测试 。 使用Selenium Grid功能,Andrew能够同时运行多个测试用例。 这使他的整体测试执行减少了几倍,使他能够按时完成测试要求。

阅读更多:并行测试如何立即改善您的工作流程

并行测试需要更大的硬件和基础架构,以及更多的CPU才能同时运行测试。 但是,与因产品交付延迟而造成的收入损失相比,在不干扰交付管道的情况下快速获得结果的好处绝对值得投资。 在现代技术中,企业可以利用基于云的跨浏览器测试工具,例如LambdaTest,它提供了可扩展的基础结构来执行并行测试。

3.测试可扩展性

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

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

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

让我们徘徊在安德鲁为克服可伸缩性问题所做的工作上?

随着Andrew的Web应用程序为其自身添加了越来越多的功能。 跨浏览器测试清单也为他扩展了,因为现在很少有使用CSS Subgrid或其他新引入CSS属性配置的功能,这些功能并未为大多数浏览器所广泛接受。

作为解决方法,开发人员为这些问题设置了后备,而Andrew的责任是确保这些新的应用解决方法能够与现有应用正常运行。

他必须考虑扩大其Selenium Grid,以在更多的旧版和最新浏览器,浏览器版本,适用于Windows和macOS以及适用于Android和iOS的操作系统上进行测试。 事实证明,如果他继续将这些设备添加到自己的内部Selenium Grid基础设施中,他可能最终会在经理的办公桌上付巨额账单。 在小型企业中工作时,他无法前往基于云的设备实验室或基础架构提供商(例如RackSpace或AWS设备场)。 那他能做什么?

他寻找更多选择,并登陆LambdaTest,后者为他提供了一个在线Selenium Grid ,可以根据自己的需求进行扩展。 LambdaTest为他提供了在云上托管的计算机,只需单击鼠标即可启动,从而使他现在消除了维护内部基础结构的麻烦。 关于LambdaTest Selenium Grid最好的部分是它不仅提供了旧版浏览器版本,而且还更新了最新的浏览器版本。 这节省了他的时间,精力和维护自己的Selenium Grid带来的头痛。

将Dev&Ops与QA集成

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

回到我们的测试自动化专家安德鲁(Andrew),他决定提前进行QAOps,并与他的经理和利益相关者分享了他的观点。 他意识到,编写测试用例越早,进入市场的发布就越快。 他建议实施左移测试,以将QAOps框架纳入其企业。 自从CI / CD管道迁移之后捕获的异常数量显着减少以来。

QAOps框架的生命周期

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

QAOps流程包含三个独特的步骤- 触发,执行和报告。

1.触发

QA测试的重要方面之一是,只要在CI / CD管道中对应用程序功能进行更改,就触发正确的测试。 仅应基于功能上的更改来触发测试。 否则,在测试应用程序不需要的区域(没有更改)时将浪费宝贵的时间,否则可能会错过关键区域。 简而言之,测试数量越多,运行测试和共享结果的时间就越多。 为了平衡这种情况,对于企业来说,将测试映射到要构建的功能很重要。

因此,应该精心计划触发步骤,并将其映射到自动化测试生命周期中。 这是QAOps流程的第一步,如果一切顺利,整个团队可以对产品发布充满信心。

2.执行

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

3.报告

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

重要的是,您必须在企业中正确实施QAOps流程,以确保不仅从正在从事的项目中受益,而且从组织中的其他项目中受益。

在哪里可以使用QAOps?

如前所述,尽管QAOps框架在自动浏览器测试的帮助下功能更强大,但它并不排除对应用程序执行手动测试的可能性。 手动跨浏览器测试对于提供有关Web应用程序的详细信息非常有用,不要忘记,您需要唯一的测试用例,而这些用例只能通过手动测试来实现。

话虽如此,让我们研究除跨浏览器测试以外的特定类型的测试,在这些测试中,QAOps框架可能很少。

功能探索性测试

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

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

  • 它是一种特殊的测试方法,旨在发现Web应用程序中的错误。
  • 与脚本代码相比,测试人员的认知思维。
  • 根据用户当前执行的操作来决定下一步的操作。
  • 帮助测试人员深入研究应用程序的最小区域,并覆盖不同的边缘情况。

当必须测试关键应用程序并且团队中有经验丰富的测试人员时,可以在组织中使用功能性探索测试。 对于新测试人员来说,这也是一条很好的学习曲线,因为他们可以从完全不同的角度看待应用程序。

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

回归测试

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

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

地理位置测试

每个产品开发公司,甚至是一个简单的事实,如果您正在开发Web应用程序,则必须知道它是否适合特定位置。 例如,您要为西班牙开发B2C Web应用程序,然后必须通过来自西班牙的各种GeoIP的不同浏览器进行测试。 为什么? 这听起来可能有些令人震惊,但是由于国家/地区的互联网标准和政策,您的Web应用程序在不同的GeoIP上呈现的方式可能会有所不同。

在QAOps的帮助下,您的质量检查团队可以与运营团队合作,以更加熟悉这些互联网标准。 这样,他们将能够从一开始就以正确的方向驱动测试周期,而不必在黑暗中徘徊并稍后自己解决。

如何在组织内使用QAOps?

QAOps似乎与DevOps类似,但它不需要在工作场所进行彻底的文化变革。 该框架有助于开发人员和测试人员相互协作,共同努力以更快地获得结果和/或在发布之前彻底测试应用程序的新部分。

但是,要做到这一点,将QAOps的价值传达给关键决策者和利益相关者(尤其是技术团队)非常重要。 他们必须了解实施QAOps框架背后的价值。 这样,它可以帮助组织的其他成员(开发人员,测试工程师,IT运营经理等)了解需求并相应地工作。 要花时间让利益相关者相信这个新框架; 但是,一旦到位,公司将开始意识到在实践中实施QAOps框架的重要性。

QAOps框架–不同的思想流派?

关于QAOps的概念有不同的思想流派。 虽然这是一个相对较新的术语,但有些人甚至质疑该术语是否有效。 Reddit上的一个帖子说:“ QAOps不是一件事,它永远不可能是一件事”。 质量检查是DevOps流程的一部分,仅在质量检查一词后添加“ Ops”一词是没有意义的。 DevOps涵盖了开发以及运营的各个方面,如果质量保证是开发流程的一部分,它将被纳入开发周期。 另一方面,各种软件测试社区都将社交媒体标签用于QAOps。

QAOps也是在2018年硒会议上提出的一项提案。

即使存在关于是否应存在QAOps术语的争论,从业务角度来看,对于公司而言,了解QA测试的重要性也很重要。 在当今的DevOps时代,QAOps有助于凸显质量保证工程师面临的挑战,并展示保持质量保证测试与DevOps流程保持一致的重要性。 QAOps极大地帮助了测试工程师与开发(CI / CD)管道保持一致。

如前所述,QAOps将花时间进入组织并成为DevOps流程的一部分。 利益相关者必须向关键决策者解释该框架的好处和价值,并使其了解组织对组织的重要性。 引入框架后,该框架将强调自动化软件测试和质量保证对交付高质量应用程序的重要性。

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

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

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

  • 应该配置一个持续集成环境(带有CI / CD),以便开发人员和测试人员对代码执行测试。
  • 开发团队必须通过测试应用程序中内置的每个新功能来执行连续测试。 他们必须测试应用程序的功能,性能,界面的易用性。 为此目的最好的工具之一是硒。 他们必须构建积极的测试用例,以确保所构建功能的每个极端情况。 自开发者以来,是最好的人,他是详细了解整个功能的最佳人选。
  • 同时,质量保证团队还必须开始测试新功能,以保持开发流程的正常进行。
  • 由质量检查团队完成测试并给出批准之后,IT运营团队必须执行Web应用程序的部署并提供批准。 仅在签署后,才应开始发布过程。
  • 同样,在发布活动之后,IT运营团队应密切关注Web应用程序,以确保一切正常。 他们必须监视应用程序的各个方面,以确保效率。

通过将持续测试流程集成到SDLC流程中,企业可以实现成功的产品交付周期。

最佳实践

根据以往的经验,并听取了许多人关于不同组织之间DevOps实践的经验,这里提供了一组最佳实践,以将持续测试作为DevOps流程的一部分。

  • 连续测试过程应集成到软件开发生命周期中。 这有助于企业降低风险并确保更快的产品发布和上市时间。
  • 组织中的所有团队(开发人员,IT运营人员,质量保证人员)都应该成为整个发布周期的一部分。 他们必须确保在整个发行过程中进行有效的协作和沟通。
  • CI / CD应该定期进行,最好每天进行一次。 每个人的工作都必须合并到发布管道中。 这有助于在早期发现缺陷并在为时已晚之前纠正它们。
  • 质量团队应成为发布计划,需求收集过程的一部分。 如果质量团队与开发团队一起在开发过程中提供重要的意见,将会更加有效。
  • 在发布过程中,应按定义的时间间隔定义和衡量每个团队的指标。
  • 质量检查测试工程师应利用自动化工具和脚本来使尽可能多的测试自动化。 开发新功能时,应对现有功能执行深度回归测试,以确保不破坏现有功能。
  • 开发人员必须像测试人员一样开始思考,而测试人员必须反过来(例如,修复代码)。 这使得组织中的每个人都对产品的整体质量负责。

包起来

QAOps,DevOps中的连续测试,我们也可以称其为“正确设计和实施”,无疑为加快软件交付铺平了道路。 这使开发团队有信心在不影响质量的前提下加快产品上市时间。 从上方重申同样的观点,将QAOps投入运营需要使企业的利益相关者深信不疑。 一旦您超过了这个阶段,就应该可以顺利前进了。

翻译自: https://www.javacodegeeks.com/2019/12/what-is-qaops-and-why-it-matters-for-your-web-application.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值