软件测试中的服务虚拟化技术
软件测试中的服务虚拟化技术
集成测试需要依赖外部环境
可控的服务虚拟化平台
模拟测试所需的交互
自动消息验证
受控的服务虚拟化
与测试数据管理平台集成
使用虚拟服务的好处
保障持续集成和持续测试
避免延迟
减少费用
提高软件测试自动化率
支持的服务虚拟化技术
集成测试需要依赖外部环境
要成功执行集成测试,每次执行自动化测试套件时,所有与被测试系统相关其他外部系统必须同时具有适当的配置、功能和运行数据。然而,对于分布式系统的集成测试而言,这是一个经常面临的难题:
-
80%的测试团队的测试工作受到测试环境的约束
-
企业级应用平均会和其他超过50多个应用有依赖关系
-
只有56%的待测应用的依赖项,可以在测试过程中被可靠地访问
-
超过75%的开发人员和测试人员会在工作中,需要访问不受控的第三方依赖项
-
为单个测试运行配置适当的测试数据可能需要数周的时间,而且该测试数据仅对单个测试运行有效
造成这些问题的原因,往往来自于以下这些因素:
-
不可靠、不断演化发展或尚未完成第三方依赖应用
-
超出您的控制范围的依赖外部应用或服务(例如,由另一公司或部门负责)
-
外部服务仅在特定的条件下,才能满足当前测试的需求在测试环境中实现相关服务非常困难
-
不同团队,都需要这些服务,并需要不同的服务响应
-
这些外围服务用于自动回归测试时,限制太多,或执行成本太高
-
多个外部服务不易控制,无法实现特定的状态组合,即使服务是虚拟的
如何为您的测试提供稳定的外部依赖环境,以便测试工作能够完整、可靠、连续地执行,这是一个我们需要面对的问题。
可控的服务虚拟化平台
模拟测试所需的交互
服务虚拟化平台模拟执行测试所需的外围组件的行为,并记录待测应用和其受所需依赖的外部模拟系统之间的消息交换,通过监听它们的“会话”,自动学习预期的交互。面向对象的消息建模消除或缓解了传统方法的“维护陷阱”。
自动消息验证
.复杂的业务流程通常涉及数千条(如果有幸不是数百万条)消息。手动检查这些消息根本不可行。服务虚拟化平台可以自动标记格式不正确或发送顺序不正确的消息。
受控的服务虚拟化
测试驱动的服务虚拟化,是一种新的服务虚拟化方法,可以按照测试人员的需求,简单地创建和管理服务虚拟化场景,帮助您快速模拟测试所需的准确行为,控制多个依赖的虚拟服务,完成特定的状态组合,这允许更广泛的团队维护服务虚拟化场景。
与测试数据管理平台集成
可以帮助您将恰当的数据,填充到虚拟服务中,实现自动化测试和持续测试。这使您不必为每次测试运行查找新数据。如果数据集已更新,可以一次单击即可实现修改所有实例。
使用虚拟服务的好处
保障持续集成和持续测试
服务虚拟化可以保障您,在无法正确访问、配置或控制被测应用的依赖环境时,也可以自动执行测试。通过模拟这些依赖关系,可以确保测试在每次执行时都会具有适当的、稳定的待测系统依赖环境,保证持续测试每次都能完整、可靠和准确地执行。
避免延迟
通过模拟与尚未实现或仍在演进中的依赖组件的交互,可以在被测程序就绪时,及时开始测试。这使您可以在最快、最容易和费用最低的时候,及早发现缺陷。
减少费用
许多现代分布式应用程序都需要和负责访问或交易的,收费的第三方服务交互。服务虚拟化允许您模拟执行测试所需的行为,允许您将自动化测试集成到持续测试中,又可以不会因为多次执行测试而产生过高的费用。
提高软件测试自动化率
测试人员可以访问和控制虚拟服务,有助于测试团队利用虚拟服务,完成更复杂的自动化测试。
支持的服务虚拟化技术
描述语言 |
传输协议 |
消息格式 |
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 |