三、分布式测试系统关键技术

  (1)分布式环境

  对分布式测试而言,测试过程是一种对流程控制要求很高的活动,因此系统需要适时地获取全局状态以正确地指导流程;其次,在测试过程中,系统要能够方便地监视和操纵测试过程。因此,分布式测试系统适合采用集中式的分布式策略,即,由一台中心计算机控制若干台受控计算机的执行,整个测试过程和资源管理由中心来完成,它掌握整个分布式测试环境的状态,从而发出控制命令。

  (2)分布式环境下的节点通信

  分布式测试环境中的活动均带有很强的流程性,某一步操作的失败会导致整个测试流程的中断和异常,因此需要一个稳定的通信环境。同时,通信主要是在中心节点和执行节点之间进行,两种节点的主要工作都集中在测试活动并且在逻辑上中心节点和执行节点相互并发,具有一定的独立性。因此,分布式测试系统相对于提供服务的分布式系统而言,适合用基于消息通信的方式来实现。

  (3)测试任务调度

  分布式测试的优点是测试人员可以事先定制任务执行的时间表,如在指定时间、指定设备上执行指定的测试任务。但同时也面临一个问题,在硬件和软件资源有限的情况下,如何以有效的方式完成测试任务?其中关键的问题是测试调度。分布式测试调度是指把组成测试任务的一组测试用例,分配到分布式测试系统的不同执行节点上,并按照一定的测试时序调度执行,以满足事先制定的测试需求。分布式测试调度方法可分为静态调度、动态调度和混合调度三类。静态调度是指假设系统的拓扑结构和性能参数固定不变,设计调度算法时只考虑当前系统状况,并针对当前状况尽量优化调度性能。动态调度则是指在测试执行过程中,根据系统的运行状况(如执行节点加入或退出、执行节点资源使用情况等),动态地决定各个用例的执行节点和相应的执行时间。动态调度比静态调度更加灵活,但也会带来更多的调度开销,有可能影响终的调度性能。混合调度是静态调度和动态调度二者的组合方法,一般来说,它根据测试用例和系统的特点,对部分用例采取静态调度策略,对另一部分用例则采取动态调度策略。这三种方法各有利弊,需要测试人员根据具体测试情况来选择使用哪种调度方法。

  以上对分布式测试系统的特点和部分关键技术进行了简单分析。随着越来越多的领域活动依赖于分布式应用,分布式测试将受到人们更大的关注,测试系统实现技术也将不断发展成熟,以便快速高效地发现软件中存在的功能和性能缺陷。