论文部分内容阅读
摘要:分布式系统诞生于20世纪70年代,它是建立在汇集之上的程序系统。在现代电脑应用中,已经从早期的以主机为核心转变为以汇集为核心,从而加大了对分布式系统的应用和发展,分布式系统已经成为构建应用的主要选择。随着搜索业务架构和策略越来越复杂,越来越多的搜索模块都是以分布式系统的方式进行构建的,以达到优化模块性能,并提高资源利用率及提高异常容错能力的目的。分布式系统具有很多新的特征,比如并发性、故障独立性、缺乏全局时钟性、异构性、安全性、可扩展性和透明性等。加上近年来分布式系统规模的不断扩大,给分布式系统的测试提出了更高的要求,使得很难将单模块测试方法应用到基于分布式系统的模块测试中。
关键词:分布式系统;测试;技术研究
一、分布式系统测试概述
1.1分布式系统概述。
分布式系统是一个将程序组件分布在电脑上,并通过消息传递进行协调的系统。这一定义覆盖了所有有效地部署了电脑的系统,例如比较熟悉并被广泛使用的因特网、企业内部网等。基于分布式系统的定义,分布式系统存在以下主要特征:
(1)缺乏全局时钟。当分布式系统中的组件需要协同工作时,仅仅是通过消息的交换来协调它们之间动作的一致性,因此紧密地协调经常依赖于组件动作发生时对时间达成共识。但是,由于电脑同步时钟的准确性会受到限制,这也导致了分布组件之间对于各自组件动作发生的时间难以达成共识。
(2)故障独立性。所有的电脑系统都可能发生故障,分布式系统故障的发生总是基于程序的故障,而程序故障会隔离与之互联的电脑,但这并不意味着故障组件以外的组件会停止运行。也就是说系统的每个组件会单独地出现故障,而其它组件仍然能够正常运行,通常其它正常运行的组件无法检测出是程序故障还是组件故障。
(3)异构性。分布式系统是基于多种不同的操作系统、电脑硬件和编程语言进行构造的。因此分布式系统主要存在五方面的异构性,包括操作系统、电脑硬件、编程语言以及软体开发者。
1.2分布式系统模型。
引入系统体系结构的目的是针对系统的可靠性、可使用性、可管理性和可扩展性,使用给定的方法和组件进行系统架构的设计,以确保系统满足设计和扩展的需求。分布式系统体系结构模型定义了系统内部组件映射的方式以及它们之间进行协同工作的信息方式,是一种反映了体系结构中各个组件之间协同工作,并最终满足系统需求的架构模型。
1.3分布式系统运行方式。
目前,分布式系统普遍采用层次结构的运行方式,这种层次分为四层结构:操作系统、信息平台、编译器及支撑系统以及分布式系统模块。其中操作系统层主要是为分布式系统提供一个运行环境,进行底层支持。考虑到不同的电脑上可能使用不同的操作系統,所以这一层可能是异构的。信息平台层是由各种信息协议构成的,通过使双方都采用TCP/IP协议或PVM等,以达到屏蔽底层操作系统不同的目的,使得分布式系统成为一个各组件相互协作的有机整体。
二、分布式系统测试
2.1软体测试技术。
如何有效的保障程序质量一直是软体产业的重要课题,尤其是在程序应用领域越来越广泛的背景下。在开发过程中难免会出现程序错误,若能较早地发现并排除这些错误,就可以减少因后期排除错误而带来的巨大成本,同时也可以较大地提高程序开发过程中的效率。因此,程序测试在整个程序开发生命周期中是不可或缺的。具体可将测试方法划分为以下几类:①黑盒测试:又称为功能测试,它从用户角度出发,针对程序接口以及用户界面等进行测试,通常不去考虑程序内部的结构和特性;同时根据产品规格说明书中的定义,去验证是否实现了产品所应该具有的功能;②白盒测试:和黑盒测试不同,白盒测试需要深入到程序的内部代码层次,对程序的每一个条件、每一行语句或者每一个分支都需要进行测试,通常需要达到一定的代码覆盖率;③灰盒测试:灰盒测试是介于黑盒测试与白盒测试之间的一种测试方法,一方面关注的是对于特定的输入能否产生正确的输出,另一方面也关注程序内部的实现,但是灰盒测试只是会通过一些表征性的现象、标志以及事件来判断内部的运行状态,不像白盒测试需进行详细和完整的测试。
2.2分布式系统测试特点。
分布式系统具有很多传统软体不具有的特性,例如物理设备上的分布性,逻辑系统上的整体性和透明性,这些特性给分布式系统的测试提出了很多要求,使得分布式系统的测试具有组件集成化、部署成本高等特点。
三、分布式系统测试存在的问题
3.1可靠性测试中存在的问题。
结合分布式系统的特点,可以将可靠性测试范畴定义为:分布式系统内通行链路和节点独立失效;模拟异常发生,并对异常发生时机进行控制;分布式系统模块调度和负载均衡策略可靠性测试;分布式系统中消息时序以及数据不一致时测试。分布式系统的可靠性风险由多个方面因素导致,有模块程序本身、运维等因素,因此发生异常是在所难免的。分布式系统可靠性测试的目标是在发生异常时,保证分布式系统本身容错机制的健全性,提供快速合理的预案措施,尽可能减小损失。
3.2性能测试中存在的问题。
分布式系统环境下性能测试的含义包括两个方面:第一,依托在真实分布式环境内的模块性能测试,包括常规性能测试、极限性能预估;第二,针对整个分布式系统的性能瓶颈分析和评估。在分布式系统环境下,尤其是模块所处的环境越来越复杂的背景下,搭建分布式系统环境消耗的机器资源很大,无法满足每个项目都需独立搭建环境的要求,因此需要一个公共的稳定后端环境来提供服务。
结语:
随着信息技术的不断发展,分布式系统的应用越来越广,对于分布式系统的质量要求越来越高,而分布式系统具有高稳定性、高可扩展性、高可用性、高并发性、高可管理性及数据一致性等多种特性。正是因为这些重要的特性,相对集中式系统而言,分布式系统的测试过程变得越来越复杂和困难,尤其是分布式系统中的性能测试和可靠性测试。分布式系统涉及方面很多,可以从不同角度和层次展开。
参考文献:
[1]唐利.分布式系统测试方法及应用实践研究[J].电脑知识与技术,2018,14(07):73-74+77.
关键词:分布式系统;测试;技术研究
一、分布式系统测试概述
1.1分布式系统概述。
分布式系统是一个将程序组件分布在电脑上,并通过消息传递进行协调的系统。这一定义覆盖了所有有效地部署了电脑的系统,例如比较熟悉并被广泛使用的因特网、企业内部网等。基于分布式系统的定义,分布式系统存在以下主要特征:
(1)缺乏全局时钟。当分布式系统中的组件需要协同工作时,仅仅是通过消息的交换来协调它们之间动作的一致性,因此紧密地协调经常依赖于组件动作发生时对时间达成共识。但是,由于电脑同步时钟的准确性会受到限制,这也导致了分布组件之间对于各自组件动作发生的时间难以达成共识。
(2)故障独立性。所有的电脑系统都可能发生故障,分布式系统故障的发生总是基于程序的故障,而程序故障会隔离与之互联的电脑,但这并不意味着故障组件以外的组件会停止运行。也就是说系统的每个组件会单独地出现故障,而其它组件仍然能够正常运行,通常其它正常运行的组件无法检测出是程序故障还是组件故障。
(3)异构性。分布式系统是基于多种不同的操作系统、电脑硬件和编程语言进行构造的。因此分布式系统主要存在五方面的异构性,包括操作系统、电脑硬件、编程语言以及软体开发者。
1.2分布式系统模型。
引入系统体系结构的目的是针对系统的可靠性、可使用性、可管理性和可扩展性,使用给定的方法和组件进行系统架构的设计,以确保系统满足设计和扩展的需求。分布式系统体系结构模型定义了系统内部组件映射的方式以及它们之间进行协同工作的信息方式,是一种反映了体系结构中各个组件之间协同工作,并最终满足系统需求的架构模型。
1.3分布式系统运行方式。
目前,分布式系统普遍采用层次结构的运行方式,这种层次分为四层结构:操作系统、信息平台、编译器及支撑系统以及分布式系统模块。其中操作系统层主要是为分布式系统提供一个运行环境,进行底层支持。考虑到不同的电脑上可能使用不同的操作系統,所以这一层可能是异构的。信息平台层是由各种信息协议构成的,通过使双方都采用TCP/IP协议或PVM等,以达到屏蔽底层操作系统不同的目的,使得分布式系统成为一个各组件相互协作的有机整体。
二、分布式系统测试
2.1软体测试技术。
如何有效的保障程序质量一直是软体产业的重要课题,尤其是在程序应用领域越来越广泛的背景下。在开发过程中难免会出现程序错误,若能较早地发现并排除这些错误,就可以减少因后期排除错误而带来的巨大成本,同时也可以较大地提高程序开发过程中的效率。因此,程序测试在整个程序开发生命周期中是不可或缺的。具体可将测试方法划分为以下几类:①黑盒测试:又称为功能测试,它从用户角度出发,针对程序接口以及用户界面等进行测试,通常不去考虑程序内部的结构和特性;同时根据产品规格说明书中的定义,去验证是否实现了产品所应该具有的功能;②白盒测试:和黑盒测试不同,白盒测试需要深入到程序的内部代码层次,对程序的每一个条件、每一行语句或者每一个分支都需要进行测试,通常需要达到一定的代码覆盖率;③灰盒测试:灰盒测试是介于黑盒测试与白盒测试之间的一种测试方法,一方面关注的是对于特定的输入能否产生正确的输出,另一方面也关注程序内部的实现,但是灰盒测试只是会通过一些表征性的现象、标志以及事件来判断内部的运行状态,不像白盒测试需进行详细和完整的测试。
2.2分布式系统测试特点。
分布式系统具有很多传统软体不具有的特性,例如物理设备上的分布性,逻辑系统上的整体性和透明性,这些特性给分布式系统的测试提出了很多要求,使得分布式系统的测试具有组件集成化、部署成本高等特点。
三、分布式系统测试存在的问题
3.1可靠性测试中存在的问题。
结合分布式系统的特点,可以将可靠性测试范畴定义为:分布式系统内通行链路和节点独立失效;模拟异常发生,并对异常发生时机进行控制;分布式系统模块调度和负载均衡策略可靠性测试;分布式系统中消息时序以及数据不一致时测试。分布式系统的可靠性风险由多个方面因素导致,有模块程序本身、运维等因素,因此发生异常是在所难免的。分布式系统可靠性测试的目标是在发生异常时,保证分布式系统本身容错机制的健全性,提供快速合理的预案措施,尽可能减小损失。
3.2性能测试中存在的问题。
分布式系统环境下性能测试的含义包括两个方面:第一,依托在真实分布式环境内的模块性能测试,包括常规性能测试、极限性能预估;第二,针对整个分布式系统的性能瓶颈分析和评估。在分布式系统环境下,尤其是模块所处的环境越来越复杂的背景下,搭建分布式系统环境消耗的机器资源很大,无法满足每个项目都需独立搭建环境的要求,因此需要一个公共的稳定后端环境来提供服务。
结语:
随着信息技术的不断发展,分布式系统的应用越来越广,对于分布式系统的质量要求越来越高,而分布式系统具有高稳定性、高可扩展性、高可用性、高并发性、高可管理性及数据一致性等多种特性。正是因为这些重要的特性,相对集中式系统而言,分布式系统的测试过程变得越来越复杂和困难,尤其是分布式系统中的性能测试和可靠性测试。分布式系统涉及方面很多,可以从不同角度和层次展开。
参考文献:
[1]唐利.分布式系统测试方法及应用实践研究[J].电脑知识与技术,2018,14(07):73-74+77.