随着语义Web服务本体推理和自动发现的技术日臻成熟,如何自动验证所发现服务的可信度就成为一个亟待解决的问题,其任务就是测试服务是否满足了用户的目标需求。由于运行环境的动态性,针对语义Web服务的测试更加困难。本项目基于最新Web服务本体模型WSMO(Web Service Modeling Ontology)开展语义Web服务测试技术的研究。传统测试数据生成技术主要是面向服务提供者。本项目首先研究面向用户目标的测试数据生成技术,并结合基于WSMO服务描述的本体数据挖掘技术来自动生成测试数据。其次,研究所获得测试数据质量评估方法。利用软件监控调试技术运行测试数据,评估结果再经机器学习方法分析,为产生更高质量的测试数据提供反馈。基于WSMO的语义Web服务测试研究是一个崭新的课题,可为语义Web服务的可信度保证等方面提供支持。
goal-based testing;high dimensional clustering;model checking;mutation analysis;semantic web service testing
传统Web 服务测试主要面向服务提供者。由于Web 服务建模本体(WSMO)的用户目标为用户需求与Web服务之间提供了一个形式化的接口,我们利用WSMO开展面向用户目标的语义Web 服务测试技术研究,在以下三个方面取得了一定的进展。 面向本体学习的聚类分析 为了充分学习本体库中各种高维的概念、实体数据之间的分类关系,我们选择了面向高维数据的聚类分析进行重点研究。高维聚类首先要选择一个距离度量来衡量高维对象的相似度,再选择一个聚类模型来优化。针对第一个问题,我们通过观察一组广泛用于高维聚类的距离度量在K-means聚类过程的表现,发现了它们影响聚类优化过程的原理,揭示了算法对度量不敏感的原因,从而为以后聚类实践应用提供了有效指导。针对第二个问题,我们选择使用超图来表示本体这种半结构化的数据,把本体学习的问题转化成超图划分的问题。提出了一种基于环的超边定义框架,并在其基础上设计了两种新定义基于共享近邻和共享逆近邻。实验表明基于共享(逆)近邻的超图划分结果不仅更好,而且在时间、空间上的计算代价也小很多。 测试数据生成 WSMO目标描述定义了人们需要Web 服务解决的问题。然而直接从WSMO目标描述产生测试用例比较困难,且缺乏相应的测试验证工具的支持。我们提出一种基于模型检测的测试数据生成方法。首先定义一系列WSML到B的转换规则,把以WSML描述的目标规范翻译成B语言相应模型;再根据覆盖率等准则计算出陷阱性质;接下来应用诸如ProB等模型检测器产生反例;最后通过定义一系列B到WSML的转换规则,把以B语言描述的反例翻译成WSML的测试数据。由于有大量的测试验证工具库支持B语言,我们提出的B、WSML之间的转换规则将在基于B语言的Web服务测试平台开发中发挥作用。 测试数据评估 为了测试结果公正,测试数据的生成和评估这两部分需要独立。由于之前使用描述规范来产生测试数据,我们选择使用一种基于代码变异的方法来评估测试数据。具体地,根据原Web服务的JAVA代码,利用一套变异操作得到一系列Web服务实现的变异版本,再用它们评估测试数据,并进一步得出精简的测试集。另一方面,测试评估需要把功能覆盖率、接口覆盖率等单项指标结果加权合并成单一的数值以便比较。为此,我们提出一种基于线性转换的加权综合方案。该方案不仅直观灵活,而且应用于常见合并函数时具有更加令人满意的性质。