随着网络技术的不断发展,大量分布式系统被部署在网络中,常见的如Web应用、Web Service等。分布式系统不同于一般软件系统,它通常由物理分布的多个子系统组成,这些子系统通过相互间的协作完成计算任务,具有物理分布、并发访问、时序敏感、平台异构等特点。此外,分布式系统中的诸多子系统在触发方式、工作方式等方面往往也不属于同一类型,比如,通过网络协议传递消息的子系统和利用本地接口进行方法调用的子系统等。 因此,对分布式系统的测试也不同于一般软件系统的测试,需要采用分布式测试。

  一、什么是分布式测试

  分布式测试是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试。

  二、分布式测试系统的特点

  分布式测试系统是传统网络化测试系统的进一步发展,具有以下主要特点:

  (1)网络化。网络化的目的是实现多个测试节点间基本的互连、互通功能,实现资源共享,是分布式测试系统的底层支撑结构。

  (2)分布性。分布式测试系统不仅在地域上分布,而且在计算上也应是分布的。这对测试系统提出了一些更高的要求,如测试子系统间协同工作、整体视图、负载均衡、具有可扩展性和高可用性等。同时,分布式测试系统对用户具有位置透明性,测试信息“唾手可得”。

  (3)开放性。开放性包含四个方面的特征,即可移植性、可互操作性、可伸缩性、易获得性。分布式测试系统能够采用各种COTS(Commercial-Off-The-Shelf,商业上现成的产品和技术)软/硬件模块,给系统的构造带来诸多便利。

  (4)实时性。分布式测试系统本质上是一个实时系统,任务间协同工作处理各种测试信息都必须是实时的,对过程之间的同步、操作的时限有着严格要求。

  (5)动态性。测试系统可以动态地运行操作,支持测试过程中的所有的管理和测试活动,能灵活地根据测试实施方案,进行测试过程对象和活动的映射。

  (6)处理不确定性。分布式测试环境的初始状态是确定的、已知的,但随着系统的运行,各种动态实体在环境中变化,同时对环境产生影响,使得环境也发生某些变化,这种动态变化带来了不确定性,分布式测试系统必须具有处理这种不确定性的能力。

  (7)容错能力强,可靠性高、安全性好。