什么是SOA测试?教程及示例
SOA (面向服务的架构) 测试
SOA测试是对SOA架构风格的测试。在这种测试中,软件组件设计为通过通信协议(通常通过网络)进行通信。它是服务生命周期管理的一个重要方面,因为它能够解决多个SOA服务实现中服务的质量的多个方面。
这是一项复杂的测试,因为复合软件有很多活动部件和互连,这给测试带来了挑战。此测试验证软件的整个多层架构。它测试一组遗留应用程序、定制组件或第三方组件。
SOA
这是一种集成业务应用程序和流程以满足业务需求的方式。它赋予业务流程敏捷性和灵活性。对流程或软件的任何更改或修改都可以定向到特定组件,而不会影响整个系统。在SOA中,软件开发人员要么开发要么购买称为“服务”的程序。
服务
服务是应用程序或业务流程的功能单元。它可以被另一个应用程序或业务流程重复使用。它们易于组装和配置。它们可以被认为是构建块。它们可以构建任何类型的应用程序或软件。此外,它们可以轻松地添加到或从应用程序或业务流程中删除。服务主要由它们执行的功能定义。
Web服务
Web服务是独立的软件组件,可以在网上发布、查找和使用。Web服务通过互联网进行通信。
服务提供商在互联网上发布服务或软件。
用户在Web服务注册表中搜索特定的Web服务。
然后,返回URL(统一资源定位符)和WSDL(Web服务描述语言)。使用它们,服务提供商与请求者通过SOAP消息进行通信。
当用户调用Web服务时,会建立到提供商的HTTP连接。生成SOAP消息以指示提供商调用请求的Web服务逻辑。
提供商以SOAP消息的形式接收响应,该消息嵌入到HTTP响应中。此响应是数据格式,用户应用程序可以读取和理解。
SOA测试
SOA包含许多技术。基于SOA的应用程序具有不同的松散耦合的服务。SOA测试强调以下3个系统层:
**服务层 —** 它包括服务,系统公开的服务从业务功能获得。例如,一个健康应用程序包括体重追踪器、血糖追踪器和血压追踪器。此服务层包含以下服务,这些服务从数据库获取各自的信息:体重追踪器服务、血糖追踪器服务、血压追踪器服务和登录/注册服务。
**流程层 —** 此层包括流程,它是作为一项功能一部分的服务集合。这些流程可能是UI的一部分,例如搜索引擎,或ETL工具的一部分。此层主要强调UI和流程。体重追踪器的UI以及UI和数据库的集成是主要目标。我们考虑以下功能:添加新数据、更新现有数据、构建新追踪器和删除数据。
**消费者层 —** 此层包括UI。基于此级别,SOA软件测试分为以下3个级别:
服务级别
接口级别
端到端级别
对于测试设计和测试执行,分别使用自顶向下方法和自底向上方法。
SOA测试策略
测试计划方法
SOA测试人员应该完全理解软件的架构。
软件必须分解成更小的独立服务。
软件结构必须组织在三个组件下:数据、服务和前端应用程序。
应仔细分析组件,并应概述业务情况。
这些业务情况必须分为常见情况和特定于应用程序的情况。
必须创建和维护可追溯性矩阵,并且所有测试用例都必须追溯到业务情况。
测试执行方法
基于业务情况的数据库测试
分析与系统相关的业务的不同方面。
根据以下内容的集成来制定情况:i)软件的Web服务,ii)Web服务和软件。
根据上述情况设置数据。
必须以覆盖端到端情况的方式设置数据。
存根
创建虚拟接口来测试服务。
通过这些虚拟接口提供输入,并且可以验证输出。
当软件使用接口连接到未经测试的外部服务时,我们可以在集成测试期间创建存根。
回归测试
当有多个版本发布时,对软件进行此测试,以确保系统的稳定性和可用性。
创建一个广泛的回归测试集,涵盖构成软件重要组成部分的服务。
此集合可以在流程的多个版本中重复使用。
服务级别测试
此测试测试组件的功能、安全性和性能以及互操作性。首先,独立测试每个服务。
功能测试 对每个服务执行此测试
确保服务对请求返回正确的响应。
对于带有不正确数据、错误数据等的请求,会收到正确的错误。
评估服务需要在运行时执行的操作的每个请求和响应。
每当服务器、客户端或网络级别出现错误时,都应验证故障消息。
检查响应并确定它们是否采用正确的格式。
确定从响应接收的数据是否与请求的数据相对应。
安全测试 安全测试是SOA应用程序服务级别测试不可或缺的一部分,因为它确保其安全性。安全测试期间涵盖以下内容:
Web服务必须遵循的行业标准,由Web服务安全测试确定。
必须准确运行的安全措施。
文档上的数据加密和数字签名。
验证和授权。
必须测试XML上的漏洞,例如SQL注入、恶意软件、XSS、CSRF等。
防止服务攻击。
性能测试 应该对任何服务执行此测试,因为服务是可重用的,并且许多应用程序可能同时使用同一服务。性能测试考虑以下因素:
应该在极端负载下测试的服务性能和功能。
将服务性能与其集成的应用程序中的单个工作进行比较。
应进行负载测试以验证响应时间、检测瓶颈、验证CPU和内存使用情况,以及预测可扩展性。
集成级别测试
进行服务级别测试以确保各个服务的正常运行,而不是耦合组件的正常运行。
进行集成测试,重点是接口。
此测试涵盖所有可能的业务情况。
在此阶段再次进行非功能测试。通过安全、合规性和性能测试来确保和维护系统的稳定性。
检查通信和网络协议以验证服务之间数据通信的一致性。
端到端测试 此测试确保软件在功能上和非功能上都满足业务需求。它考虑以下方面:
集成后所有服务都按预期运行。
异常处理。
软件的UI。
所有组件中的数据流。
业务流程。
SOA测试中的挑战
服务的接口总是缺乏或短缺。
测试过程贯穿多个系统,因此需要复杂的数据。
应用程序是一组趋于变化的组件。因此,更频繁地需要回归测试。
由于多层架构,很难完全隔离缺陷。
难以预测负载,因为该服务用于各种接口。因此,这使得性能测试计划难以管理。
SOA是一组不同的技术。SOA测试需要具备不同技能的人员,最终会增加计划和执行成本。
由于应用程序是多个服务的集成,因此安全测试也难以执行。此外,验证也相当复杂。
SOA测试工具
SOAP UI − 这款开源工具用于服务测试和API测试。它是一个桌面应用程序,支持许多协议,例如SOAP、REST、HTTP、JMS、AMF、JDBC等。它有助于开发、检查和调用Web服务。SOAP UI还用于负载测试、自动化测试和安全测试。它带有内置的报告工具。
iTKO LISA − 此产品套件为分布式系统的功能测试提供解决方案。它可用于回归测试、集成测试、负载测试和性能测试。它还用于设计和执行测试用例。
HP Service Test − 这是一款功能测试工具,兼容UI和共享服务测试。它可以通过单个脚本实现功能测试和性能测试。它与HP QC集成。它可以管理大量的服务和数据。它支持通过模拟JEE、AXIS和DotNet环境进行互操作性测试。
Parasoft SOA Test − 此分析工具套件是为API和API测试而开发的。它支持Web服务、REST、MQ、JMS、TIBCO、HTTP、XML等。它可以进行功能测试、集成测试、回归测试、安全测试和性能测试。存根可以通过Parasoft Virtualize创建。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP