Want to see Parasoft in action? Sign up for our Monthly Demos! See Demos & Events >>
Want to see Parasoft in action? Sign up for our Monthly Demos! See Demos & Events >>
服务虚拟化正在成为我们客户测试策略的关键组成部分,因此,我们往往会收到很多关于它的问题。以下是一些解释。
简而言之,服务虚拟化使团队可以轻松访问阻碍开发和测试的受约束组件。这通常表现为环境约束,在此环境中需要技术上超出测试范围的组件以实现完整的端到端功能。
借助服务虚拟化,您可以通过模拟这些下游依赖项并使用模拟行为替换功能来消除这些约束。 如果操作正确,系统的行为就像实际组件可用一样。
因此,您可以通过提供对精确模拟测试环境的随时访问来消除调度约束。您还可以通过提供对不断演变、不可用或难以访问的依赖系统的快速访问来消除流程瓶颈。正如Wikipedia的服务虚拟化条目所述,这些依赖系统可能是:
Wikipedia的条目继续很好地描述了这一点:
它不是虚拟化整个系统,而是仅虚拟化对执行开发和测试任务至关重要的依赖行为的特定部分。这提供了足够的应用程序逻辑,以便开发人员或测试人员获得他们需要的东西,而无需等待实际服务完成并随时可用。
例如,不是虚拟化整个数据库(并执行所有关联的测试数据管理以及为每个测试会话设置数据库),而是监视应用程序如何与数据库交互,然后模拟相关的数据库行为(传递给数据库的SQL查询,返回的相应结果集等等)。
为了快速保障质量,必须能够不受限制地访问可信赖且真实的测试环境。重要的是要认识到一个完整的测试环境包括被测应用程序 (AUT) 及其所有依赖组件,如 API、第三方服务、数据库、应用程序和其他端点。
服务虚拟化使开发测试团队能够访问完整的测试环境,包括所有关键的依赖系统组件,并以 分阶段测试环境无法实现的方式更改这些依赖组件的行为,从而使您能够更早、更快、更完整地进行测试。它还允许您隔离应用程序的不同层以进行调试和性能测试。
随着当今快节奏的迭代开发周期,开发测试团队需要提前访问完整的测试环境,以便:
服务虚拟化可以提供对测试环境中缺少或受限制的任何依赖组件的访问:第三方服务、API、数据库、大型机、ESB 和使用常见消息传递协议进行通信的其他组件。服务虚拟化的主要候选组件包括以下两者的依赖组件:
例如,内部服务可能很容易从分阶段的测试环境中访问并且易于配置。另一方面,复杂的消息队列在分阶段测试环境中可能更难运行起来,并且配置测试更具挑战性。在最极端的情况下,大型机或 ERP 系统将具有与开发测试访问相关的多个约束,以及对配置它以进行测试的能力的明显限制。利用服务虚拟化可确保按需访问测试环境。它消除了访问限制,并减少了与重复配置相关的成本。团队可以无限制地进行虚拟测试。
服务虚拟化还使您能够控制依赖组件的行为。更改与 AUT 的每个依赖组件关联的网络或硬件的配置非常困难。面对阶段性测试环境,表现出比生产中更慢的性能也是很常见的。
使用服务虚拟化,您可以更好地控制依赖项的响应方式。这使您可以按需访问更广泛的依赖行为(就像飞行模拟器一样)。因此,您可以更快、更准确地评估候选版本的风险。
例如,可以模拟不同的依赖关系行为,以便:
虚拟服务不需要总是使用真实系统中的实际数据进行响应。实际上,从虚拟服务提供意外数据有很多好处。虚拟服务与其数据源分离,从而可以更灵活地生成适合不同团队需求的响应数据,例如:
通过模拟这些类型情况下的不同服务数据,您可以在测试中获得更大的灵活性。
当然,我们在这里只涉及到表面。在团队中部署服务虚拟化有很多好处。采用服务虚拟化的尖端测试实践的企业报告缺陷更少,测试覆盖率更高,测试执行率更高,测试时间大大减少
温馨提示:您可以在此处免费下载Parasoft的企业服务虚拟化解决方案:https://software.parasoft.com/virtualize/community-edition/
Jeff Peeples是Parasoft的高级产品经理,领导SOAtest,Virtualize和CTP的功能平台方向。 Jeff在为企业行业(包括能源、金融技术和旅游/酒店)定义解决方案和开发路线图方面具有丰富的经验。