彩票走势图

最大化微服务测试投资回报率的3种策略

原创|使用教程|编辑:郑恭琳|2021-03-01 14:00:08.613|阅读 123 次

概述:微服务致力于将传统的单片应用程序分解为小型的,可伸缩的,可单独部署的服务。一些微服务体系结构在反应性环境中运行,在该环境中,服务可以异步通信而不会阻塞答复。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

微服务致力于将传统的单片应用程序分解为小型的,可伸缩的,可单独部署的服务。一些微服务体系结构在反应性环境中运行,在该环境中,服务可以异步通信而不会阻塞答复。

当系统的某些部分出现故障或行为异常时,这些基于微服务的环境不太容易出现故障。对于完整功能,仍然需要所有依赖项的正确操作,但是此方法的主要优点是它提供的去耦。

微服务是独立的,这意味着它们可以根据需要进行单独部署,扩展和更改。这允许快速迭代。但是,为了实现更快的迭代和可靠的服务,现在更加关注API——面向公众的API和依赖关系内部使用的API

在测试微服务时,会出现大量新挑战。


微服务测试的新挑战

向微服务的转变为软件团队带来了新的挑战,降低了过渡时的投资回报率。

API层进行更多交互以实现自动化 

微服务之间的相互依赖性要求在API层的幕后进行更多的切换和交互。充分的测试要求我们不仅了解这些交互,而且能够隔离它们并进行测试。

平行发展的障碍

微服务在修改和重新部署方面很敏捷,但是测试它们的复杂性减慢了并行开发的速度。这种复杂性是由于服务之间的大量交互。它使测试环境变得复杂,并且使人们无法理解正在发生的事情。

对传统测试方法的影响

微服务与传统测试不一致,传统测试通常依赖于同步请求/回复交互。微服务有时会部署在具有新协议和消息格式以及异步通信的反应性,事件驱动的体系结构中。

更多潜在故障点

增加的交互作用和依赖性增加了潜在的故障点。并且由于服务的响应性,新事件流可能会乱序触发并崩溃。

开发障碍

转向微服务架构有很多好处,但付出的代价往往使开发团队无法实现创收功能的实现。除非消除测试和并行开发障碍,否则很难实现真正的ROI


充分利用微服务测试的三种策略

为了使微服务测试的投资回报率最大化,请遵循以下策略:

  • 通过AI提高功能性API测试覆盖范围的质量,以确保已部署的服务满足要求。

  • 使复杂的,事件驱动的工作流程自动化,以加快测试速度。

  • 改善测试环境,提高测试的可靠性和稳定性。

通过AI增加功能性API测试的覆盖率

缺乏代码和测试覆盖范围是质量,安全性和客户体验的问题。如果仅部分测试了部署的服务,则发现错误的是客户!覆盖范围的扩大意味着更多的测试。为了实现这一目标,需要测试自动化以利用现有的Selenium UI测试快速创建功能来加速功能测试。

除此之外,自动进行需要在服务之间交换数据的API序列的验证至关重要。这些API序列中的大多数都是基于自动UI测试中API流量的“记录”。可以克隆并转化这些API序列以增加测试覆盖率。

测试自动化程度的提高通过确定故障点来减少解决问题的时间。

减少“调试”测试失败所花费的时间意味着更多的时间测试功能。

自动化的API测试是用于非功能测试的平台,因为可以使用相同的测试资产和测试框架来自动进行真实的序列以进行负载和性能测试。 

自动化复杂的,事件驱动的工作流程

功能测试范围的增加要求测试数据的更多排列。测试自动化通过直接通过API提供端到端方案的大量数据排列来提供帮助。

测试数据管理是测试自动化的关键功能。它需要保留测试数据的安全性(如果基于生产数据)和数据的参数化,以支持新的复杂场景。

为了验证正确的行为,需要对服务交互的可见性。要使事件驱动的体系结构具有可见性,那就是服务虚拟化。虚拟化通过成为集成在一起的各种应用程序中间的代理而有所帮助。例如,通过创建虚拟服务来模拟旧数据库,可以监视来自旧系统和被测试微服务的请求。

监视事件驱动的体系结构中的交互的功能非常有用。当数据在系统之间移动时,服务虚拟化使我们能够自动验证那些复杂的工作流程。断言放置在虚拟化服务中,以确保正确的请求/响应事务,从而可以监视和验证复杂的事件驱动的交互。

稳定,隔离和左移微服务测试

服务虚拟化使服务模拟更上一层楼。它模拟了API交互的复杂,有状态的行为,以使功能测试自动化与难以管理的下游依赖关系保持稳定和隔离。可以为每个开发人员和测试人员复制此虚拟化的稳定测试环境,从而消除了现实环境的复杂性,同时保留了测试所需的行为。这进一步实现了对微服务清单的连续验证,包括作为CI/CD/DevOps管道一部分的客户端系统测试。


改进测试策略的业务影响

在许多组织中,测试是头等大事。换句话说,与API或单元测试相比,手动或UI测试花费了更多的测试时间和精力。这些组织知道他们需要更好的覆盖范围,但是UI测试更容易理解和定义(用户界面更直观)。结果,较少的技术(和较便宜的)资源可以进行测试。

软件组织通常希望使他们当前正在执行的测试自动化(主要是UI测试)。尽管这样做有帮助,但UI自动化不稳定且需要不断维护。另外,UI级别上遇到的大多数问题都是API层上的错误的结果。缺乏对潜在活动和交互的可见性意味着浪费时间确定根本原因。

愿意进行测试转换的组织可以通过结合使用自上而下和自下而上的方法来进行测试,从而获得经过更好测试的产品,并节省时间和金钱。一种新的测试策略具有很高的ROI,因为经过充分验证的API可以减少UI的不稳定性,这意味着更好的客户体验。 

现在可以通过减少测试创建时间来实现更高级别的测试覆盖率。在API级别上增加对交互的可见性意味着减少了平均修复时间。开发人员将更快地发现更多问题。这是一项双赢的项目,只需相对少量的投资即可获得较高的投资回报率。


概括

这三种策略通过利用AI驱动的测试创建,API测试自动化和服务虚拟化,从根本上简化了测试创建过程。在不影响产品进度的情况下,通过更好的代码覆盖率来改进测试,从而产生更好的微服务。采用这些策略有助于软件团队实现他们想要在测试中实现的投资回报率。 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP