本文工作:
SOA定义三种角色支持Web Service的发布和使用,分别是:provider,requestor和discovery service。provider是Web Service的提供者,requestor是Web Service的请求者,discovery service负责解析requestor的服务请求,查询复合需求的Web Service返回给requestor。
provider以XML文档的形式,描述服务的接口以及操作,discovery service依据这些信息查找复合需求的Web Service。然而,有些时候可能出现Web Service的功能实现与描述不符的情况,因此discovery service需要在注册Web Service之前,对Web Service的功能实现进行测试。
本文则设计了一套Conformance Testing方法,用于测试Web Service的功能实现,以验证是否与静态的功能描述相一致。
这篇文章与Security Policy测试无关,而是对Web Service的描述和实现一致性的测试,但是我想从中找到可以借鉴之处。主要关注两个方面:
第一,作者如何描述Web Service的行为(这可以对应到Security Policy中对规则的描述);
第二,如何从行为描述生成测试(这对应到从Security Policy描述生成测试);
对于第一个问题,作者采用Graph transformation描述Web Service的行为。所谓Graph transformation即用图形化的方法描述行为,是相对逻辑或代数的表达形式而言的,优点是直观并且容易用UML等建模语言描述。本文中作者使用Kaplan提出的Δ-grammars标记表达Graph transformation(简单的调研了下Δ-grammars,感觉我们不大可能用到,因此没有深入研究)。
对于第二个问题,作者采用partition testing的方法,从Web Service的静态功能描述(WSDL)生成测试用例。WSDL定义了Web Service的输入参数以及某一个功能对应的input domain,因而借鉴domain-based的方法,可以生成能够触发每一个功能的测试输入。
之后将生成的测试用例代入Web Service执行,比较Graph transformation描述的Web Service行为与实际运行的行为是否一致,以此判定Web Service是否完全实现了声明的功能。
本文贡献:
1、提出了观点:discovery service注册Web Service之前,要对Web Service的功能进行测试,以检测是否真正实现了声明的功能;
2、基于Δ-grammars对Web Service进行行为描述,作为测试的比对标准;
3、将partition testing方法引入到Web Service测试中,基于domain-based方法生成测试用例。