CN100543698C - 一种分布式软件系统的集成测试系统及方法 - Google Patents
一种分布式软件系统的集成测试系统及方法 Download PDFInfo
- Publication number
- CN100543698C CN100543698C CNB2007101237705A CN200710123770A CN100543698C CN 100543698 C CN100543698 C CN 100543698C CN B2007101237705 A CNB2007101237705 A CN B2007101237705A CN 200710123770 A CN200710123770 A CN 200710123770A CN 100543698 C CN100543698 C CN 100543698C
- Authority
- CN
- China
- Prior art keywords
- test
- module
- client
- sut
- system under
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式软件系统的集成测试系统及方法,该系统包括测试服务器、至少一测试客户端和至少一测试代理者;测试服务器分别与测试客户端、测试代理者相连接,用于根据测试信息对外部的被测系统进行测试,并将测试结果反馈给测试客户端;测试客户端用于收发测试信息,控制测试服务器进行测试,并接收测试结果;测试代理者还通过被测系统的接口与被测系统相连接,用于监视通过接口的收发报文,分别与测试服务器、被测系统交互,适配并收发测试报文及其响应报文。适用于测试第二代分布式计算技术实现的分布式软件系统,提高了提高测试工具的扩展性和集成测试的效率,有利于实施各类型的集成测试,确保了软件产品的质量。
Description
技术领域
本发明涉及软件测试领域,尤其涉及的是,对第二代分布式计算技术的分布式软件系统的集成测试,提供了一种新的集成测试系统和方法。
背景技术
分布式计算技术(DC,Distributed Computing)从产生到现在,大致有三个发展阶段:1)第一代(80年代中~90年代):主要是提出了经典的C/S计算模型,利用传统的计算概念和设计解决了信息共享的问题;2)第二代(90年代至今):主要是将传统的两层C/S计算模型改进为面向对象的多层C/S计算模型,利用融合了面向对象技术的分布式对象计算技术(DOC,Distributed Object Computing)解决了异构环境下的互操作问题,并成为软构件开发的核心技术。3)第三代(2000年以后):提出了自主的多Agent计算模型,利用智能代理技术构建面向Agent的拟人化交互环境,主要是为了解决智能化的协同工作问题,第三代方法目前还处于概念验证阶段,尚未得到广泛应用。
采用第一代分布式计算技术实现的分布式软件系统如图1所示,常用的测试方法是让测试工具桥接到客户与服务器的通讯连接之中,对接口报文进行监视或模拟,针对客户与服务器之间的这个子系统级别接口进行测试。客户与服务器通过网络应用编程接口直接相连,客户与服务器需要关注网络通讯的细节;客户包含了大量的业务逻辑,其实现也严重地依赖于服务器的数据存储及组织方式;服务器提供的服务是基于过程的,所有服务都集成在一个进程当中。组成系统的各个模块耦合非常紧密,无法以独立进程的运行,彼此之间的接口也缺乏规范性。因此,此类系统的可测性比较差,集成测试的手段也非常有限。
采用第二代分布式计算技术实现的分布式软件系统:客户与服务器的通讯采用中间件实现;整个系统可以由任意数量的、可独立执行的服务进程和客户进程组成,这些进程可以分布在不同的计算机上。在面向对象的多层C/S计算模型中,由服务器创建和维护的远程对象(RO,Remote Object)不仅能够被访问,而且也可能作为其他对象的客户。从上述特点的描述中可以看出,第二代系统的复杂度增加了许多,第一代系统采用的集成测试方法已经无法满足第二代系统了,比如:第二代系统的通讯细节已经由中间件封装了,测试工具很难以桥接通讯连接的方式接入被测系统;第二代系统的复杂度更大,待测接口也不仅仅是子系统级别的,还包括对象、模块等级别的。第二代系统的测试环境更加复杂,比如多用户并发访问等。第二代系统在集成测试中有以下优越性。
1)边界清晰:以对象的概念组织、管理分布在网络上的各种资源,每一个远程对象都定义了清晰的访问接口。任何服务的提供和访问是基于接口的。集成测试所关注就是被测系统的各种接口,其中包括远程对象之间的接口、功能模块之间的接口、以及子系统之间的接口。
2)服务自治:组成系统的各个远程对象或功能模块都可以分布部署、单独运行,这不仅有利于平衡负载的分布,也有利于降低系统的耦合。服务自治的特点非常有利于开发、部署集成测试所需的测试驱动和测试桩。
3)配置灵活:通过配置来决定系统由哪些对象组成、以及对象之间的关系,即通过配置策略定制服务的特性。配置灵活的特点为实施增殖式的集成测试(自顶向下方式、自底向上方式、混合增殖方式)提供便利。
4)平台无关:跨异构环境(不同机型、不同操作系统、不同网络协议)运行,远程对象的地理位置、系统平台、编程语言等属性对客户都是透明的。平台无关的特点为集成测试工具的技术实现提供了较大的自由度。
目前,第二代分布式计算技术领域有几种主流的技术标准:对象管理组(OMG,Object Management Group)的公共对象请求代理体系结构(CORBA,Common Object Request Broker Architecture)、Microsoft公司的组件对象模型/分布组件对象模型(COM/DCOM,Component ObjectModel/Distributed COM)标准、Sun公司的Java远程方法调用(Java RMI,Java Remote Method Invocation)和Java企业柄(EJB,Enterprise JavaBeans)技术。这几者在实现原理上非常相似,而且发展趋势也是在采用不同技术实现的分布式软件系统之间实现互容互通。第二代系统的工作原理如图2所示,具体说明如下。
1)在对外提供服务之前,远程对象需要对外发布一个逻辑名称,该逻辑名称与远程对象的引用存在一一对应的关系。客户通过远程对象的逻辑名称获取到远程对象的引用,即远程对象在客户侧的存根(Stub)。
2)Stub具有和远程对象相同的接口,客户按照远程对象的接口调用Stub对应的接口。
3)Stub把被调接口的名称和请求报文等信息打包成特定格式的数据包,并交给客户侧的基础架构通过网络发送给服务器。基础架构,即实现了CORBA、COM/DCOM、JMI(Java Metadata Interface,Java元数据接口)/EJB等技术标准的中间件,例如,对象请求代理(ORB,Object RequestBroker)
4)服务器侧的基础架构接收到数据包之后会派发给远程对象在服务器侧的框架(Skeleton),Skeleton将会从数据包解出被调接口的名称和请求报文等信息,然后用调用远程对象对应的接口。
5)如果远程对象执行完请求操作之后有应答报文,那它会将应答报文传递给Skeleton。
6)Skeleton将会把应答报文打包成特定格式的数据包,然后交给服务器侧的基础架构,通过网络发送给客户。
7)客户侧的基础架构接收到数据包之后会派发给Stub,Stub将会从数据包解出应答报文等信息,然后传递给客户。
但是,现有技术缺乏对于第二代分布式计算技术实现的分布式软件系统的集成测试工具及方法,因此,现有技术存在缺陷,需要改进。
发明内容
本发明的目的在于提供一种分布式软件系统的集成测试系统及方法,用于测试第二代分布式计算技术实现的分布式软件系统,从而提高集成测试的效率,确保软件产品的质量。
本发明的技术方案如下:
一种分布式软件系统的集成测试系统,其中,包括测试服务器、至少一测试客户端和至少一测试代理者;所述测试服务器分别与所述测试客户端、所述测试代理者相连接,用于根据测试信息对外部的被测系统进行测试,并将测试结果反馈给所述测试客户端;其中,所述测试信息包括控制指令、测试要求、测试连接、测试报文、测试脚本、测试用例;所述测试客户端用于收发所述测试信息,控制所述测试服务器进行测试,并接收所述测试结果;所述测试代理者还通过所述被测系统的接口与所述被测系统相连接,用于监视通过所述接口的收发报文,分别与所述测试服务器、所述被测系统交互,适配并收发所述测试报文及其响应报文。
所述测试代理者包括监视模块、收发模块、适配模块、接口模块、判断模块和处理模块,收发模块收到测试服务器的测试报文,通过处理模块调用判断模块判断所述测试报文的格式是否正确、所述测试报文是否可用,否则调用适配模块适配修改所述测试报文的格式,或者丢弃所述测试报文,监视模块监视通过接口模块接收的所述收发报文,通过处理模块调用判断模块判断所述收发报文是否可用,是则根据测试要求处理所述收发报文。
所述的集成测试系统,其中,所述测试客户端至少包括客户端接收模块、发送模块、执行模块、监控模块和分析模块,客户端接收模块接收所述测试信息,通过发送模块发送到测试服务器的服务器接收模块;执行模块根据控制指令控制测试服务器执行测试;监控模块监控测试过程,用户查看测试执行的进展,并在需要时根据用户的控制指令中断测试的执行;分析模块分析评估测试结果,如果存在测试报告时,分析模块分析评估测试报告,在此基础上对测试结果进行分析和评估。
所述的集成测试系统,其中,所述测试服务器至少包括服务器接收模块、控制模块、转发模块、执行模块、存取模块和分析模块,服务器接收模块接收所述收发报文、所述测试报文及其响应报文,从而得到测试结果,通过存取模块存储所述测试信息,存储所述收发报文以及所述测试报文的响应报文;通过分析模块分析收发报文、测试信息及其响应报文的具体内容,分别调用执行模块、转发模块进行具体操作,根据所述测试信息,通过执行模块执行所述测试用例;根据所述测试信息,通过转发模块发送所述测试报文到所述测试代理者;或者,通过转发模块发送所述测试结果到测试客户端的客户端接收模块。
所述的集成测试系统,其中,所述测试服务器还包括报告模块,用于根据所述测试结果生成测试报告,并通过所述转发模块发送到所述测试客户端。
一种分布式软件系统的集成测试方法,用于包括测试服务器、至少一测试客户端和至少一测试代理者的集成测试系统,其包括以下步骤:A1、配置并启动所述测试代理者、所述测试客户端、所述测试服务器,所述测试服务器分别与所述测试客户端、所述测试代理者建立连接,所述测试代理者通过被测系统的接口与所述被测系统相连接,将所述测试代理者配置到所述被测系统中;A2、通过所述测试客户端输入测试信息;其中,所述测试信息包括控制指令、测试要求、测试连接、测试报文、测试脚本、测试用例;A3、所述测试服务器发送所述测试信息到所述测试代理者;A4、所述测试代理者适配所述测试信息中的所述测试报文,通过外部的被测系统的接口发送到所述被测系统进行测试,并接收所述被测系统对所述测试报文的响应报文;A5、所述测试服务器将所述测试代理者的测试结果反馈给所述测试客户端。
所述的集成测试方法,其中,步骤A4还包括步骤A41:所述测试代理者监视通过所述被测系统的接口的收发报文,发送该收发报文到所述测试服务器。
所述的集成测试方法,其中,步骤A41之后还执行步骤A42:所述测试代理者判断所述收发报文可用,则根据所述测试要求对其进行处理。
所述的集成测试方法,其中,步骤A4之前还执行以下步骤:B1、所述测试代理者连接到所述被测系统服务器端的接口;B2、所述测试代理者对外发布引用时,采用所述被测系统服务器端的对外发布引用的第一逻辑名称;B3、所述被测系统服务器端采用第二逻辑名称对外发布引用;B4、所述测试代理者采用第二逻辑名称发起对所述被测系统服务器端的调用。
所述的集成测试方法,其中,步骤A5具体包括以下步骤:所述测试服务器根据所述测试代理者的测试结果生成测试报告,反馈给所述测试客户端。
采用上述方案,本发明可以为不同类型的被测接口开发不同的TA,作为连接TS与SUT的适配器,降低TC、TS与被测系统的相关性,提高测试工具的扩展性;TA接入SUT的方式可以支持各个层次接口的集成测试,这非常有利于实施自顶向下、自底向上、混合增殖等类型的集成测试;通过多TC、多TA同时在线测试的功能可以构建出分布式软件系统的多用户并发的测试环境,这非常符合分布式软件系统的集成测试需求。
附图说明
图1为现有技术的第一代分布式软件系统的集成测试示意图;
图2为现有技术的第二代分布式软件系统的结构示意图;
图3为本发明装置的第二代分布式软件系统的集成测试系统的结构示意图;
图4为本发明方法的流程图;
图5为本发明方法的一种实施方式示意图。
具体实施方式
以下结合附图和较佳实施例,对本发明进行详细说明。
如图3所示,本发明提供了一种分布式软件系统的集成测试系统,其包括测试服务器、至少一测试客户端和至少一测试代理者;其中,测试客户端和测试代理者并非一一对应的关系。
测试服务器(TS,Test Server),是本发明系统的功能中枢,其管理与测试客户端、测试代理者的连接,支持多测试客户端、多测试代理者同时在线测试,例如,负责测试报文的转发,测试用例的执行,测试报告的生成,以及测试数据在文件系统或数据库系统中的存取等。所述测试服务器分别与所述测试客户端、所述测试代理者采用通讯方式连接,用于根据测试信息对外部的被测系统进行测试,并将测试结果反馈给所述测试客户端;其中,所述测试信息至少包括控制指令、测试要求、测试连接、测试报文、测试脚本、测试用例其中之一。当然,根据实际需要,所述测试信息可以包括上述多项或全部信息。
测试客户端(TC,Test Client),采用人机交互界面,供用户构造测试数据,执行测试操作,监控测试过程,以及评估测试报告。例如,根据测试用例,构造监视被测接口的测试用例、构造模拟被测接口驱动的测试用例或构造模拟被测接口桩的测试用例等;所述测试客户端用于收发所述测试信息,并且,根据所述测试信息中的控制指令,控制所述测试服务器进行测试,并接收所述测试结果。
更好的是,所述测试服务器根据所述测试代理者的测试结果生成测试报告,反馈给所述测试客户端。例如,所述测试服务器还包括报告模块,用于根据所述测试结果生成测试报告,并通过所述转发模块发送到所述测试客户端。
测试代理者(TA,Test Agent),接入到被测系统(SUT,System UnderTest)当中,监视被测接口当中的报文,以及将模拟报文(即测试报文)注入到接口当中。作为连接TS与SUT的适配器,负责适配和中转TS与SUT之间的交互报文。所述测试代理者还通过所述被测系统的接口与所述被测系统相连接,用于监视通过所述接口的收发报文,分别与所述测试服务器、所述被测系统交互,适配并收发所述测试报文及其响应报文。
具体地说,所述测试客户端至少包括用于接收所述测试信息的客户端接收模块、用于发送所述测试信息的发送模块、用于执行测试的执行模块、用于监控测试过程的监控模块、用于分析评估测试结果的分析模块其中之一。客户端接收模块接收所述测试信息,通过发送模块发送到测试服务器的服务器接收模块;执行模块根据控制指令控制测试服务器执行测试,例如,执行本次测试所需的所述测试用例;监控模块监控测试过程,用户可以查看测试执行的进展并在需要时,根据用户的控制指令中断测试的执行;分析模块分析评估测试结果,如果存在测试报告时,分析模块分析评估测试报告,在此基础上对测试结果进行分析和评估。
所述测试服务器至少包括用于接收所述收发报文、所述测试报文及其响应报文和其它测试信息的服务器接收模块、用于控制所述测试的控制模块、用于发送所述测试报文和所述测试结果的转发模块、用于执行所述测试用例的执行模块、用于存取所述测试信息的存取模块、用于分析所述收发报文、所述测试报文及其响应报文和其它测试信息的分析模块其中之一。
其中,服务器接收模块接收所述收发报文、所述测试报文及其响应报文和其它测试信息,从而得到测试结果,通过存取模块可以存储所述测试信息,甚至存储所述收发报文以及所述测试报文的响应报文;通过分析模块分析收发报文、测试信息及其响应报文的具体内容,分别调用执行模块、转发模块等进行具体操作,例如,根据所述测试信息,通过执行模块执行所述测试用例;或者,根据所述测试信息,通过转发模块发送所述测试报文到所述测试代理者;或者,通过转发模块发送所述测试结果到测试客户端的客户端接收模块。还可以通过上述的报告模块生成测试报告,通过转发模块发送所述测试报告到测试客户端的客户端接收模块。
所述测试代理者包括用于监视所述收发报文的监视模块、用于收发所述测试报文及其响应报文和其它测试信息的收发模块、用于适配所述测试报文的适配模块、用于接收所述收发报文并对外发布引用的接口模块、用于判断所述收发报文、所述测试报文及其响应报文和其它测试信息是否可用的判断模块、用于处理所述收发报文、所述测试报文及其响应报文和其它测试信息的处理模块。
收发模块收到测试服务器的测试报文,通过处理模块调用判断模块判断所述测试报文的格式是否正确、所述测试报文是否可用,否则需要调用适配模块适配修改所述测试报文的格式,或者丢弃所述测试报文。监视模块监视通过接口模块接收的所述收发报文,通过处理模块调用判断模块判断所述收发报文是否可用,是则根据测试要求处理所述收发报文。
如图4所示,本发明还提供了一种分布式软件系统的集成测试方法,用于包括测试服务器、至少一测试客户端和至少一测试代理者的集成测试系统,其包括以下步骤。
A1、配置并启动所述测试代理者、所述测试客户端、所述测试服务器,相互建立连接;例如,配置TA、TS、TC的启动参数,并将TA配置到SUT当中,让其能够监视被测接口当中的报文,以及将模拟报文注入到被测接口当中;从而搭建了测试环境。需要说明的是,TA一般随SUT一起启动,SUT、TS、TC启动顺序可以不分先后,并且,在TA与TS、TS与TC之间建立通讯连接。
A2、通过所述测试客户端输入测试信息;其中,所述测试信息包括控制指令、测试要求、测试连接、测试报文、测试脚本、测试用例。
例如,在TC中构造监视被测接口的测试用例;在TC中构造模拟被测接口驱动的测试用例;在TC中构造模拟被测接口桩的测试用例等。需要说明的是,上述构造各测试用例的步骤可以单独执行也可以分别执行,每个构造测试用例的步骤可以操作多次,操作顺序不分先后。
然后,在TC中选择本次执行所需的测试用例,执行测试用例;例如,在TC中启动测试执行,并且可以在TC中查看测试执行的过程,同时,根据过程信息可以决定是否在TC中中断测试执行。
客户端接收所述测试信息,发送到测试服务器;并可以根据控制指令控制测试服务器执行测试,例如,执行本次测试所需的所述测试用例;同时监控测试过程,用户可以查看测试执行的进展并在需要时,根据用户的控制指令中断测试的执行;之后分析评估测试结果,如果存在测试报告时,可以分析评估测试报告,在此基础上对测试结果进行分析和评估。
A3、所述测试服务器发送所述测试信息到所述测试代理者。其中,包括了需测试的测试报文,以及控制测试进行的控制指令等。
测试服务器接收所述收发报文、所述测试报文及其响应报文和其它测试信息,从而得到测试结果;并且可以存储所述测试信息,甚至存储所述收发报文以及所述测试报文的响应报文;通过分析收发报文、测试信息及其响应报文的具体内容,执行所述测试用例,或者,发送所述测试报文到所述测试代理者,或者,发送所述测试结果到测试客户端。还可以生成测试报告,发送到测试客户端。
A4、所述测试代理者适配所述测试信息中的所述测试报文,通过外部的被测系统的接口发送到所述被测系统进行测试,并接收所述被测系统对所述测试报文的响应报文。
测试代理者收到测试服务器的测试报文,判断所述测试报文的格式是否正确、所述测试报文是否可用,否则需要适配修改所述测试报文的格式,或者丢弃所述测试报文。还可以监视通过通过所述接口的所述收发报文,判断所述收发报文是否可用,是则根据测试要求处理所述收发报文。
在步骤A4之前还可以执行以下步骤,将TA配置到SUT当中。B1、所述测试代理者连接到所述被测系统服务器端的接口;B2、所述测试代理者对外发布引用时,采用所述被测系统服务器端的对外发布引用的第一逻辑名称;B3、所述被测系统服务器端采用第二逻辑名称对外发布引用;B4、所述测试代理者采用第二逻辑名称发起对所述被测系统服务器端的调用。
具体地说,TA接入SUT的方法是本发明的关键内容之一,具体技术实现说明如下:由于任何一个远程对象RO都会对外发一个逻辑名称X,X与RO的引用之间存在着一一对应的关系。为了访问RO,客户首先需要通过X获取到RO的引用,然后再通过RO的引用去访问RO。这样,TA可以通过以下几个步骤接入到SUT当中:
1)TA实现RO的接口,这可以使TA成为SUT当中的另一个远程对象;
2)TA盗用RO的逻辑名称X对外发布引用;
3)RO改用另一个逻辑名称Y对外发布引用;
4)TA记录下RO新的逻辑名称Y,以便于TA发起对RO的调用。
当客户继续用逻辑名称X获取引用时,它将会得到TA的引用。由于TA也实现了与RO同样的接口,因此客户可以照常访问TA引用的接口。通过TA的引用,客户的请求报文将会被传递到TA,此时TA就可以截获到请求报文了。在截获到请求报文之后,TA可以根据测试要求对其进行特定的处理。然后,TA可以通过逻辑名称Y和处理后的请求报文去调用RO。如果RO执行完请求操作之后有应答报文,那RO也会将应答报文返回给TA。同样,TA可以根据测试要求对应答报文进行特定的处理,然后再返回给客户。
并且,在执行步骤A4时还可以执行步骤A41:所述测试代理者监视通过所述被测系统的接口的收发报文,发送到所述测试服务器。在骤A41之后还可以执行步骤A42:所述测试代理者判断所述收发报文可用,则根据所述测试要求对其进行处理。
A5、所述测试服务器将所述测试代理者的测试结果反馈给所述测试客户端。例如,步骤A5具体可以包括以下步骤:所述测试服务器根据所述测试代理者的测试结果生成测试报告,反馈给所述测试客户端。在TC中查看TS生成的测试报告;并且分析、评估测试结果。
如图5所示,下面通过光传输网络管理系统T3的集成测试实施例来进一步说明本发明所述集成测试方法的实施细节。T3是采用CORBA技术开发一个分布式软件系统,用于管理和维护光传输网络。T3服务器中的远程对象是通过ORB(Object Request Broker,对象请求代理),采用IIOP(InternetInter-ORB Protocol,网际网路ORB交换协定)连接,向CORBA命名服务(Naming Service)注册逻辑名称的方式对外发布自身引用的。通过配置文件(context.xml),T3服务器可以静态配置由哪些远程对象组成,以及指定远程对象向Naming Service注册时所用的逻辑名称。
此实施例的测试目标是告警组件AlarmServant实现的接口T3:Command,接口T3:Command在IDL文件中的定义如下:
module T3
{
interface Command:Base::Base_I
{
void Set(in Base::T3Header header,in Base::T3Buf body)
raises(Base::GeneralException);//---方法1
Base::T3Buf Get(in Base::T3Header header,in Base::T3Buf body)
raises(Base::GeneralException);//---方法2
};
};
该接口声明了两个方法Set和Get,其中Set是一个无应答的方法,而Get是一个带应答的方法。通过调用该接口中的这两个方法,T3客户端可以设置AlarmServant的工作模式以及查询光传输网络产生的各种告警信息。
AlarmServant在配置文件(context.xml)配置的逻辑名称为“Alarm”。为了接入到T3系统中截获接口T3:Command中报文,或将模拟报文注入到接口T3:Command中,TA采用编程语言C++实现了该接口,并以动态连接库(TestAgent.dll)的形式发布到T3的服务器目录中。接下来就可以开始测试了:
1)搭建测试环境:
a)将TA配置进T3系统:在配置文件(context.xml)增加TA相关的信息,并将TA的逻辑名称配置为“Alarm”,将AlarmServant的逻辑名称修改成“Real-Alarm”,同时指定TA的配置文件为“TestAgent.xml”。这样T3服务器启动的时候会自动装载TA,并让TA成为T3服务器中的一个远程对象。具体配置信息的如下:
<servant id="Alarm">
<class>T3.Context.Servant.TestAgent</class>
<config-file>TestAgent.xml</config-file>
</servant>
<servant id="Real-Alarm">
<class>T3.Context.Servant.AlarmServant</class>
<config-file>AlarmServant.xml</config-file>
</servant>
b)配置TA、TS、TC的启动参数:在TA的配置文件(TestAgent.xml)中记录AlarmServant的新逻辑名称“Real-Alarm”,并配置TS使用的绑定地址。在TS的配置文件(TestServer.xml)中设置自身的绑定地址、测试数据的存储方式等信息;在TC的配置文件(TestClient.xml)中配置TS使用的绑定地址。
c)启动T3(TA与T3服务器一起启动)、TS、TC,启动顺序不分先后。
d)在TA与TS、TS与TC之间建立通讯连接。
2)构造测试用例,下述a)、b)、c)子步骤可单选或多选,每个子步骤可以操作多次,操作顺序不分先后:
a)在TC中构造监视被测接口的测试用例:此类用例主要由测试脚本构成,用户可以通过TC的脚本编辑器、用例编辑器来创建测试用例。测试脚本主要是指定TA监视被测接口T3:Command中哪类报文。
b)在TC中构造模拟被测接口驱动的测试用例:此类用例主要由模拟请求报文和测试脚本两部分构成,用户可以通过TC的报文编辑器、脚本编辑器、用例编辑器来创建测试用例。模拟请求报文将作为调用AlarmServant接口T3:Command的请求报文。测试脚本主要是让TA在指定的时机将模拟请求报文发送给AlarmServant。另外,此类用例还可以具备监视被测接口的功能。
c)在TC中构造模拟被测接口桩的测试用例:此类用例主要由模拟应答报文和测试脚本两部分构成,用户可以通过TC的报文编辑器、脚本编辑器、用例编辑器来创建测试用例。模拟应答报文将作为T3客户端调用AlarmServant接口T3:Command的应答报文。测试脚本主要是让TA在指定的时机将模拟应答报文发送给T3客户端。另外,此类用例还可以具备监视被测接口的功能。
3)执行测试用例:
a)在TC中选择本次执行所需的测试用例:此实施例挑选了监视、驱动、桩三个用例。监视用例的作用是将AlarmServant接口T3:Command中的所有报文都抄送给TS。驱动用例的作用是模拟调用AlarmServant的接口方法Set,设置AlarmServant的告警过滤条件。桩用例的作用是在T3客户端调用AlarmServant的接口方法Get查询当前告警时给出模拟告警信息。
b)在TC中启动测试执行,TC将会把测试用例的相关信息发送给TS,TS将会分别执行这三个测试用例。执行过程中TS会将进度信息发送给TC显示,执行完成或中断后TS会生成测试报告。
c)在TC中查看测试执行的过程:当监视用例开始执行后,用户可以操作T3客户端的查询历史告警功能,此时TC会将查询历史告警的请求报文和应答报文都显示给用户查看。当驱动用例执行完成后,用户可以操作T3客户端的查询告警过滤条件功能,用户可以通过TC中显示的报文信息来判断驱动用例是否执行成功。当桩用例开始执行后,用户可以操作T3客户端的查询当前告警功能,此时T3客户端中显示的当前告警将会是用户之前构造的模拟告警。另外,用户可以根据过程信息决定是否进行步骤d)操作。
d)在TC中中断测试执行,此子步骤为可选子步骤。
4)评估测试结果:
a)在TC中查看TS生成的测试报告:用户可以在测试报告中看到整个测试过程中监视到的所有接口报文,以及发送接收时间等信息。
b)评估测试结果:用户可以通过验证监视到的接口报文的完整性和正确性来判断T3系统是否通过测试。
这样,采用本发明系统和方法可以为不同类型的被测接口开发不同的TA,作为连接TS与SUT的适配器,降低TC、TS与被测系统的相关性,提高测试工具的扩展性;并且,TA接入SUT的方式可以支持各个层次接口的集成测试,这非常有利于实施自顶向下、自底向上、混合增殖等类型的集成测试;而且,通过多TC、多TA同时在线测试的功能可以构建出分布式软件系统的多用户并发的测试环境,这非常符合分布式软件系统的集成测试需求。适用于测试第二代分布式计算技术实现的分布式软件系统,并且提高了集成测试的效率,确保了软件产品的质量。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (9)
1、一种分布式软件系统的集成测试系统,其特征在于,包括测试服务器、至少一测试客户端和至少一测试代理者;
所述测试服务器分别与所述测试客户端、所述测试代理者相连接,用于根据测试信息对外部的被测系统进行测试,并将测试结果反馈给所述测试客户端;其中,所述测试信息包括控制指令、测试要求、测试连接、测试报文、测试脚本、测试用例;
所述测试客户端用于收发所述测试信息,控制所述测试服务器进行测试,并接收所述测试结果;
所述测试代理者还通过所述被测系统的接口与所述被测系统相连接,用于监视通过所述接口的收发报文,分别与所述测试服务器、所述被测系统交互,适配并收发所述测试报文及其响应报文;
所述测试代理者包括监视模块、收发模块、适配模块、接口模块、判断模块和处理模块,收发模块收到测试服务器的测试报文,通过处理模块调用判断模块判断所述测试报文的格式是否正确、所述测试报文是否可用,否则调用适配模块适配修改所述测试报文的格式,或者丢弃所述测试报文,监视模块监视通过接口模块接收的所述收发报文,通过处理模块调用判断模块判断所述收发报文是否可用,是则根据测试要求处理所述收发报文。
2、根据权利要求1所述的集成测试系统,其特征在于,所述测试客户端包括客户端接收模块、发送模块、执行模块和监控模块、分析模块;客户端接收模块接收所述测试信息,通过发送模块发送到测试服务器的服务器接收模块;执行模块根据控制指令控制测试服务器执行测试;监控模块监控测试过程,用户查看测试执行的进展,并在需要时根据用户的控制指令中断测试的执行;分析模块分析评估测试结果,如果存在测试报告时,分析模块分析评估测试报告,在此基础上对测试结果进行分析和评估。
3、根据权利要求2所述的集成测试系统,其特征在于,所述测试服务器包括服务器接收模块、控制模块、转发模块、执行模块、存取模块和分析模块,服务器接收模块接收所述收发报文、所述测试报文及其响应报文,从而得到测试结果,通过存取模块存储所述测试信息,存储所述收发报文以及所述测试报文的响应报文;通过分析模块分析收发报文、测试信息及其响应报文的具体内容,分别调用执行模块、转发模块进行具体操作,根据所述测试信息,通过执行模块执行所述测试用例;根据所述测试信息,通过转发模块发送所述测试报文到所述测试代理者;或者,通过转发模块发送所述测试结果到测试客户端的客户端接收模块。
4、根据权利要求3所述的集成测试系统,其特征在于,所述测试服务器还包括报告模块,用于根据所述测试结果生成测试报告,并通过所述转发模块发送到所述测试客户端。
5、一种分布式软件系统的集成测试方法,用于包括测试服务器、至少一测试客户端和至少一测试代理者的集成测试系统,其特征在于,包括以下步骤:
A1、配置并启动所述测试代理者、所述测试客户端、所述测试服务器,所述测试服务器分别与所述测试客户端、所述测试代理者建立连接,测试代理者通过被测系统的接口与所述被测系统相连接,将所述测试代理者配置到所述被测系统中;
A2、通过所述测试客户端输入测试信息;其中,所述测试信息包括控制指令、测试要求、测试连接、测试报文、测试脚本、测试用例;
A3、所述测试服务器发送所述测试信息到所述测试代理者;
A4、所述测试代理者适配所述测试信息中的所述测试报文,通过外部的被测系统的接口发送到所述被测系统进行测试,并接收所述被测系统对所述测试报文的响应报文;
A5、所述测试服务器将所述测试代理者的测试结果反馈给所述测试客户端。
6、根据权利要求5所述的集成测试方法,其特征在于,步骤A4还包括步骤A41:所述测试代理者监视通过所述被测系统的接口的收发报文,发送该收发报文到所述测试服务器。
7、根据权利要求6所述的集成测试方法,其特征在于,步骤A41之后还执行步骤A42:所述测试代理者判断所述收发报文可用,则根据所述测试要求对其进行处理。
8、根据权利要求5至7任一所述的集成测试方法,其特征在于,步骤A4之前还执行以下步骤:
B1、所述测试代理者连接到所述被测系统服务器端的接口;
B2、所述测试代理者对外发布引用时,采用所述被测系统服务器端的对外发布引用的第一逻辑名称;
B3、所述被测系统服务器端采用第二逻辑名称对外发布引用;
B4、所述测试代理者采用第二逻辑名称发起对所述被测系统服务器端的调用。
9、根据权利要求8所述的集成测试方法,其特征在于,步骤A5具体包括以下步骤:所述测试服务器根据所述测试代理者的测试结果生成测试报告,反馈给所述测试客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101237705A CN100543698C (zh) | 2007-09-29 | 2007-09-29 | 一种分布式软件系统的集成测试系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101237705A CN100543698C (zh) | 2007-09-29 | 2007-09-29 | 一种分布式软件系统的集成测试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101140541A CN101140541A (zh) | 2008-03-12 |
CN100543698C true CN100543698C (zh) | 2009-09-23 |
Family
ID=39192500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101237705A Expired - Fee Related CN100543698C (zh) | 2007-09-29 | 2007-09-29 | 一种分布式软件系统的集成测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100543698C (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101316202B (zh) * | 2008-07-03 | 2012-10-10 | 中兴通讯股份有限公司 | 嵌入式软件的在线诊断方法和系统、嵌入式软件装置 |
CN101414935B (zh) * | 2008-07-09 | 2011-06-22 | 北京星网锐捷网络技术有限公司 | 测试用例生成方法及系统 |
CN101447892B (zh) * | 2008-11-24 | 2011-12-28 | 中兴通讯股份有限公司 | 分布式测试方法和系统、以及测试服务器 |
CN101483562B (zh) * | 2009-02-19 | 2012-07-18 | 中兴通讯股份有限公司 | 一种例行测试的方法、系统及相关设备 |
CN101727389B (zh) * | 2009-11-23 | 2012-11-14 | 中兴通讯股份有限公司 | 一种分布式综合业务自动化测试系统及方法 |
CN102467442B (zh) * | 2010-11-02 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种软件测试的方法、系统和设备 |
CN102103540A (zh) * | 2011-03-23 | 2011-06-22 | 镇江睿泰信息科技有限公司 | 通用类软件系统的云端测试装置及测试方法 |
CN102141962B (zh) * | 2011-04-07 | 2013-06-19 | 北京航空航天大学 | 一种安全性分布式测试框架系统及其测试方法 |
CN102185734A (zh) * | 2011-04-18 | 2011-09-14 | 华为软件技术有限公司 | 接口自动化测试方法及服务器 |
CN102495799A (zh) * | 2011-12-02 | 2012-06-13 | 刘伟 | 移动终端的自动化测试系统和方法 |
CN103257917B (zh) * | 2012-02-16 | 2016-08-03 | 广州博纳信息技术有限公司 | 软件测评系统管理方法 |
CN103298016B (zh) * | 2012-02-27 | 2016-12-14 | 展讯通信(上海)有限公司 | 移动终端的测试系统 |
US9104813B2 (en) * | 2012-12-15 | 2015-08-11 | International Business Machines Corporation | Software installation method, apparatus and program product |
CN103902446B (zh) * | 2012-12-27 | 2017-04-05 | 北京新媒传信科技有限公司 | 一种网络服务器自动化测试的方法和装置 |
CN104077219B (zh) * | 2013-04-23 | 2015-08-12 | 腾讯科技(深圳)有限公司 | 一种软件测试方法和装置 |
CN104426715B (zh) * | 2013-09-03 | 2018-03-09 | 北京信威通信技术股份有限公司 | 一种分布式测试工具控制方法 |
CN104850491B (zh) * | 2014-02-19 | 2018-09-25 | 深圳中兴网信科技有限公司 | 一种软件测试方法、设备及系统 |
CN104125116A (zh) * | 2014-08-04 | 2014-10-29 | 上海斐讯数据通信技术有限公司 | 一种协议一致性测试方法及系统 |
CN104391787B (zh) * | 2014-11-13 | 2017-04-26 | 华为软件技术有限公司 | 一种针对目标方法的监控、热切入方法及装置 |
CN106055466A (zh) * | 2015-04-13 | 2016-10-26 | 中兴通讯股份有限公司 | 一种实现服务器测试的方法、测试服务器及待测服务器 |
CN105302721B (zh) * | 2015-10-29 | 2018-06-19 | 普元信息技术股份有限公司 | 云计算平台中实现集中模拟服务器集成测试的系统及方法 |
CN105721239A (zh) * | 2016-01-18 | 2016-06-29 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及游戏系统 |
CN106970880B (zh) * | 2017-04-28 | 2021-01-01 | 中国科学院软件研究所 | 一种分布式自动化软件测试方法及系统 |
CN107885658B (zh) * | 2017-10-31 | 2019-06-21 | 平安科技(深圳)有限公司 | 测试前置实现方法、装置、终端设备及存储介质 |
CN108388501B (zh) * | 2018-01-10 | 2021-09-17 | 贝壳找房(北京)科技有限公司 | 一种系统间集成测试方法 |
CN110213119B (zh) * | 2018-03-07 | 2022-02-22 | 财付通支付科技有限公司 | 测试桩生成方法、测试系统、测试方法及设备 |
CN109144866B (zh) * | 2018-08-15 | 2022-08-16 | 广东美的厨房电器制造有限公司 | 基于家用电器的软件测试方法及软件测试装置 |
CN109582588B (zh) * | 2018-12-25 | 2022-02-22 | 迈普通信技术股份有限公司 | 测试用例生成方法、装置及电子设备 |
CN109828914A (zh) * | 2018-12-28 | 2019-05-31 | 宁波瓜瓜农业科技有限公司 | 全流程分布式系统自动化测试方法以及测试系统 |
CN112819605A (zh) * | 2021-01-29 | 2021-05-18 | 山东浪潮通软信息科技有限公司 | 资金结算业务测试方法、装置及计算机可读介质 |
CN113419946B (zh) * | 2021-05-31 | 2023-03-28 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Ice接口测试用例及测试脚本自动生成方法 |
CN117093503B (zh) * | 2023-10-17 | 2024-02-06 | 杭银消费金融股份有限公司 | 一种客户端测试管理方法与系统 |
-
2007
- 2007-09-29 CN CNB2007101237705A patent/CN100543698C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101140541A (zh) | 2008-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100543698C (zh) | 一种分布式软件系统的集成测试系统及方法 | |
EP0648354B1 (en) | Method and system for implementation-independent interface specification | |
Ouyang et al. | Formal semantics and analysis of control flow in WS-BPEL | |
KR100724522B1 (ko) | 서비스 인터페이스 자동 생성 방법, 시스템, 소자, 서비스 실행 엔진 및 컴퓨터 판독가능한 기록 매체 | |
US7020697B1 (en) | Architectures for netcentric computing systems | |
CN101529382B (zh) | 公共组件框架 | |
US7346893B2 (en) | Exchange infrastructure system and method | |
US20060224702A1 (en) | Local workflows in a business process management system | |
US20060080117A1 (en) | Maintaining integrity within an adaptive value chain involving cross enterprise interactions | |
Myerson | The complete book of middleware | |
AU2003231295A8 (en) | Systems and methods for collaborative business plug-ins | |
WO2002093364A2 (en) | General and reusable components for defining net-centric application program architectures | |
Cámara et al. | Formalizing wsbpel business processes using process algebra | |
WO2001033349A2 (en) | Architectures for netcentric computing systems | |
Palma et al. | Soa antipatterns: An approach for their specification and detection | |
Cho et al. | A protocol based approach to specifying interoperability between objects | |
AU2003223040B2 (en) | Exchange infrastructure system and method | |
CN100401259C (zh) | 一种分布式服务系统的服务提供方法 | |
Ezenwoye et al. | Composing aggregate web services in BPEL | |
Umar | The emerging role of the Web for enterprise applications and ASPs | |
JP2002358199A (ja) | コンポーネントシステム及びコンポーネント作成方法 | |
Gannod et al. | Automated support for service-based software development and integration | |
Siegel | An overview of CORBA 3 | |
Dietrich et al. | Formal methods for communication services: meeting the industry expectations | |
Nowostawski et al. | A multi-level approach and infrastructure for agent-oriented software development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090923 Termination date: 20190929 |