Web服务测试与突变测试工具解析
立即解锁
发布时间: 2025-08-22 00:03:39 阅读量: 9 订阅数: 15 


智能系统与计算:软件工程挑战与解决方案
# Web服务测试与突变测试工具解析
## 1. Web服务测试概述
Web服务中用户、提供者、所有者和开发者之间角色的精确分离,以及Web服务的动态特性,给服务系统的测试带来了新挑战。Web服务测试和其他软件测试一样,可在不同级别进行:
- 原子服务测试(单元测试)
- 服务组合测试
- 服务集成与互操作性测试
- 回归测试
- 非功能属性测试
近年来,服务测试备受关注,相关研究涉及不同测试级别,如单元测试、编排测试、集成测试、非功能属性测试和回归测试等。同时,也有研究致力于提高服务和面向服务系统的可测试性。
### 1.1 测试方法分类
不同的Web服务测试方法可分为以下几类:
1. **基于WSDL的测试用例生成**
2. **基于突变的测试用例生成**
3. **测试建模**
4. **基于XML的方法**
### 1.2 测试工具与框架
有不少工具和框架可用于Web服务测试:
- Hanna和Munro提出的框架可测试Web服务的健壮性,通过分析WSDL文档识别可能影响健壮性的故障,从而设计测试用例。
- Bai和Dong的测试框架利用WSDL文档生成测试,包含测试用例生成、测试控制器、测试代理和测试评估器。
- 名为WSDLTest的工具可基于WSDL文档自动测试Web服务,支持WSDL 1.1或WSDL 2.0文档。
### 1.3 Web服务组合测试
单个服务往往无法完全满足用户需求,多个现有服务的组合可能更合适,这种服务集成过程称为Web服务组合(WSC)。虽然Web服务的发现、选择和组合吸引了众多研究者,但WSC测试仍不成熟。
### 1.4 测试类型
根据不同分类,Web服务测试类型包括:
- WSDL文档测试
- SOAP消息测试
- 测试SOA系统的发布特性和绑定
- 测试同步远程过程调用(RPC)和Web服务的异步通知
- 测试SOAP消息的中介能力,监控服务级别协议(SLA)和服务质量(QoS)级别
- Web服务性能测试
此外,Chaos Monkey的测试功能可用于检查已运行的Web服务,该服务会识别运行程序组并随机终止其中一个程序,便于工作人员及时定位和纠正错误,但不适用于服务开发早期。市场上还有一些知名的Web服务测试工具,如HP QuickTest Professional、Parasoft SOAtest、SOAPSonar、SoapUI等。
### 1.5 WSDL介绍
WSDL(Web Services Description Language)基于XML,定义了Web服务及其环境提供的功能,包含服务的详细信息,如所需参数和返回结果。XML Schema描述了服务发送和接收的消息,SOAP消息用于与Web服务通信,由WSDL描述为操作。WSDL指定了接口格式,也能描述服务的交互性。目前W3C推荐WSDL 2.0版本,但WSDL 1.1仍很常见,部分软件仅支持该版本。
一个WSDL文档包含以下部分:
|部分|描述|
|----|----|
|定义|包含其余部分的容器,定义服务名称,声明多个命名空间,包含所有服务元素|
|数据类型|消息中使用的数据类型以XML模式表示,使用简单类型时文档无需类型部分|
|消息|数据的抽象定义,以消息形式呈现,可作为整个文档或映射到方法调用的参数|
|操作|消息操作的抽象定义,如命名方法、消息队列或业务流程|
|端口类型|映射到一个或多个端点的抽象操作集,定义绑定的操作集合|
|绑定|特定端口类型定义的操作和消息的协议和数据格式|
|端口|绑定和网络地址的组合,提供服务通信的目标地址|
|服务|相关端点的集合,将绑定映射到端口|
此外,WSDL规范还定义了文档和导入部分,文档部分包含注释和文档,可包含在任何其他WSDL元素中;导入部分用于导入其他WSDL文档或XML模式。
## 2. Web服务的突变测试
### 2.1 突变测试原理
Web服务突变测试的一般思路是:测试人员提供待测试Web服务的WSDL文档,突变工具应用测试人员选择的突变操作符,为每个突变生成SOAP消息并创建相应客户端,将SOAP消息发送到待测试Web服务,接收响应并呈现给测试人员进行分析。
### 2.2 突变操作符
Siblini和Mansour提出了九个突变操作符:
- Switch Types Complex Type Element (STCE)
- Switch Types Complex Type Attr
0
0
复制全文
相关推荐









