软件测试中的服务虚拟化技术

软件测试中的服务虚拟化技术

集成测试需要依赖外部环境

可控的服务虚拟化平台

模拟测试所需的交互

自动消息验证

受控的服务虚拟化

与测试数据管理平台集成

使用虚拟服务的好处

保障持续集成和持续测试

避免延迟

减少费用

提高软件测试自动化率

支持的服务虚拟化技术

集成测试需要依赖外部环境

 

要成功执行集成测试,每次执行自动化测试套件时,所有与被测试系统相关其他外部系统必须同时具有适当的配置、功能和运行数据。然而,对于分布式系统的集成测试而言,这是一个经常面临的难题:

 

  • 80%的测试团队的测试工作受到测试环境的约束

  • 企业级应用平均会和其他超过50多个应用有依赖关系

  • 只有56%的待测应用的依赖项,可以在测试过程中被可靠地访问

  • 超过75%的开发人员和测试人员会在工作中,需要访问不受控的第三方依赖项

  • 为单个测试运行配置适当的测试数据可能需要数周的时间,而且该测试数据仅对单个测试运行有效

造成这些问题的原因,往往来自于以下这些因素:

  • 不可靠、不断演化发展或尚未完成第三方依赖应用

  • 超出您的控制范围的依赖外部应用或服务(例如,由另一公司或部门负责)

  • 外部服务仅在特定的条件下,才能满足当前测试的需求在测试环境中实现相关服务非常困难

  • 不同团队,都需要这些服务,并需要不同的服务响应

  • 这些外围服务用于自动回归测试时,限制太多,或执行成本太高

  • 多个外部服务不易控制,无法实现特定的状态组合,即使服务是虚拟的

如何为您的测试提供稳定的外部依赖环境,以便测试工作能够完整、可靠、连续地执行,这是一个我们需要面对的问题。

软件测试中的服务虚拟化技术_软件测试

 

 

可控的服务虚拟化平台

 

软件测试中的服务虚拟化技术_软件测试_02

 

模拟测试所需的交互

服务虚拟化平台模拟执行测试所需的外围组件的行为,并记录待测应用和其受所需依赖的外部模拟系统之间的消息交换,通过监听它们的“会话”,自动学习预期的交互。面向对象的消息建模消除或缓解了传统方法的“维护陷阱”。

自动消息验证

.复杂的业务流程通常涉及数千条(如果有幸不是数百万条)消息。手动检查这些消息根本不可行。服务虚拟化平台可以自动标记格式不正确或发送顺序不正确的消息。

受控的服务虚拟化

测试驱动的服务虚拟化,是一种新的服务虚拟化方法,可以按照测试人员的需求,简单地创建和管理服务虚拟化场景,帮助您快速模拟测试所需的准确行为,控制多个依赖的虚拟服务,完成特定的状态组合,这允许更广泛的团队维护服务虚拟化场景。

 

测试数据管理平台集成

可以帮助您将恰当的数据,填充到虚拟服务中,实现自动化测试和持续测试。这使您不必为每次测试运行查找新数据。如果数据集已更新,可以一次单击即可实现修改所有实例。

 

使用虚拟服务的好处

 

保障持续集成和持续测试

服务虚拟化可以保障您,在无法正确访问、配置或控制被测应用的依赖环境时,也可以自动执行测试。通过模拟这些依赖关系,可以确保测试在每次执行时都会具有适当的、稳定的待测系统依赖环境,保证持续测试每次都能完整、可靠和准确地执行。

 

避免延迟

通过模拟与尚未实现或仍在演进中的依赖组件的交互,可以在被测程序就绪时,及时开始测试。这使您可以在最快、最容易和费用最低的时候,及早发现缺陷。

减少费用

许多现代分布式应用程序都需要和负责访问或交易的,收费的第三方服务交互。服务虚拟化允许您模拟执行测试所需的行为,允许您将自动化测试集成到持续测试中,又可以不会因为多次执行测试而产生过高的费用。

提高软件测试自动化率

测试人员可以访问和控制虚拟服务,有助于测试团队利用虚拟服务,完成更复杂的自动化测试。

 

 

支持的服务虚拟化技术

描述语言

传输协议

消息格式

WSDL

XSD

WADL

JSON Schema

Swagger

RAML

OData Definition

CopyBooks

 

HTTP(s) \  JMS

Rabbit MQ

Active MQ

TIBCO EMS

AMQP (Advanced Message Queueing Protocol)

IBM MQ

OData Standard Protocol

MLLP

MS MQ

KAFKA

sFTP

Windows File System Folders

XML

JSON

Text

URL-Encoded Parameters

Form-Data

Binary Content

Multipart Attachments

MTOM Attachments

HL7v2

HL7 v3

COBOL

 

标准

企业服务总线或网关

 

SOAP

REST

ISO 20022

FIXML

SWIFT

Fixed Length

SEPA

CICS

Tibco

Mulesoft

IBM

Oracle

Microsoft

KAFKA

CICS Mainframe Gateways