反应式系统测试方法

文档序号:6337107阅读:222来源:国知局

专利名称::反应式系统测试方法
技术领域
:本发明涉及测试技术,尤其涉及一种反应式系统测试方法。
背景技术
:目前的反应式系统测试技术,对于测试流程发生变化时,通常需要重新设计修改测试脚本进行适应,不能较好的重用已有的测试脚本,降低了测试工作的效率。另外,在反应式系统测试中,各地厂商需要亲自到达设置测试系统的位置,造成物资运输开销过大,测试费用高昂。因此,需要提出一种可以远程调用的测试流程来解决这一问题。目前远程测试实现方法多种多样,常用的实现方法是通过高级语言远程调用实现,如JavaRMI(JavaRemoteMethodInvocation,Java远程方法调用)或.NetRemoting(.NetRemoting是.NetFramework中一部分,是为远程方法调用设计的编程体系,为分布式系统专门设计的)技术,都有一定的实现语言依赖性。
发明内容本发明的目的旨在至少解决现有技术中的上述问题之一。为此,本发明的实施例提出一种可重构的反应式系统测试方法,以实现已有测试脚本的重用,提高测试工作的效率。根据本发明的一个方面,本发明实施例提出了一种反应式系统测试方法,包括以下步骤a)将测试过程划分成若干个基本测试模块;b)使用测试语言实现基本测试模块;c)使用业务流程语言对基本测试模块进行编排,生成新的测试例;以及d)使用业务流程语言执行器执行所述测试例。根据本发明进一步的实施例,在所述步骤b之后还包括利用Web服务将所述基本测试模块封装为若干个服务的步骤。根据本发明再一步的实施例,远程测试系统和本地客户端利用Web服务接口的方式执行对所述基本测试模块对应的测试过程的远程测试服务,所述远程测试服务包括以下步骤本地客户端在提供远程测试服务的网站上配置测试参数,并控制启动相应的测试例;网站的所述业务流程语言执行器通知远程测试系统执行所述测试例;所述远程测试系统按要求执行测试例,并向被测系统发出测试消息;被测系统响应测试消息向所述远程测试系统发送测试结果;以及所述远程测试系统将测试结果返回到网站上并进行网页显示,以告知所述本地客户端。根据本发明进一步的实施例,所述测试语言为测试和测试控制表示法第三版TTCN-3语言。根据本发明进一步的实施例,所述业务流程语言为业务流程执行语言BPEL。根据本发明进一步的实施例,所述测试系统部署在云计算平台上。本发明通过对测试流程进行基本测试模块的划分和完成,可以方便拆卸组装,比整体编写成一个测试例要灵活有效。从而,能够实现较好地重用已有的测试脚本,提高测试工作的效率。本发明通过利用Web服务将划分基本测试模块封装为若干个服务,并应用于远程测试服务中,可以省去物资运输开销,远程的调用测试流程,并可以广泛的提供通用测试服务给某一领域的用户,以服务方式提供,将有助于管理。此外,通过将测试系统部署在云计算平台上,利用云计算平台相对低廉的计算资源,有助于降低高昂的测试费用,并可以借助云计算技术快速完成测试。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。本发明的上述和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中图1为本发明反应式系统测试方法的总体流程图;图2为本发明应用于远程测试服务的反应式系统测试方法的流程示意图;图3为本发明实施例的应用于远程测试服务的反应式系统测试结构图;图4为本发明第一实施例的反应式系统测试方法示意图;图5(a)、图5(b)和图5(c)为本发明第二实施例的反应式系统测试方法示意图。具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。参考图1,该图为本发明反应式系统测试方法的总体流程图。如图所示,该方法包括以下步骤将所需的预定测试过程划分成若干个基本测试模块(步骤102);然后,使用测试语言实现基本测试模块(步骤104);接着,使用业务流程语言对基本测试模块进行编排,生成新的测试例(步骤106);最后,使用业务流程语言执行器执行所述测试例(步骤108)。对于测试过程的基本测试模块划分,例如对于图4的手机支付过程的测试为例,在手机支付过程中包括在线支付和离线支付两种方式,通过对它们进行基本测试模块的划分,可以得到在线支付测试过程对应的基本测试模块12、14和16组成的流程;相应地,可以得到离线支付测试过程对应的基本测试模块22和24组成的流程。对于图5所示的银联业务测试流程为例,将该流程分解构建基本测试模块,例如将存款流程分解,得到两个基本测试模块“余额查询”、“存款”。依次执行“余额查询”、“存款”、“余额查询”,完成整个存款流程;将取款流程分解,得到两个基本测试模块“余额查询”,“取款”。依次执行“余额查询”、“取款”、“余额查询”,完成整个取款流程。在步骤104中,实施过程可以使用任何测试语言来完成基本测试模块的实现,例如可以包括Java、C语言等编程语言。优选地,由于具有实现方便的优点,本发明实施例可以选用TTCN_3(测试语言为测试和测试控制表示法第三版)语言来实现每一个基本测试模块。在步骤106中,实施过程可以使用任何工作流工具来完成基本测试模块的组装或编排。在本发明实施例中,可以使用包括业务流程执行语言(BPEL)、.networkflow等的业务流程语言编排或编制基本测试模块。业务流程执行语言目前广泛应用的有BPEL,BPEL全称是BPEL4WS(BusinessProcessExecutionLanguageForWebServices,用于Web服务的业务流程执行语言),它由ΒΕΑ、IBM和Microsoft编写和公布的。.networkflow是一种业务流解决方案。.networkflow是微软设计的一种业务流解决方案,处理对象必须按它的方式编写。BPEL处理的对象是Web服务(WebServices)。相应地,在步骤108中利用对应业务流程语言的执行器或引擎,例如BPEL语言对应的执行器或引擎为ApacheODE(ApacheOrchestrationDirectorEngine,Apache编排控制引擎)执行对应测试例,其中Apache是一个开源组织名称。在本发明实施例中,还可以在步骤104之后包括利用Web服务(WebServices)将得到基本测试模块进一步进行封装,从而将这些基本测试模块封装成一个一个的服务。这样,在测试时,可以Web服务的方式提供给需要执行测试的用户,对于上一层的测试例调用人员,可以通过调用这些基本测试服务,完成远程测试工作。下面,结合图2的实施例,对本发明应用于远程测试服务的反应式系统测试方法的流程进行详细描述。远程测试服务的概念框架如图2所示其中“客户”,即本地客户端是测试执行人员;“测试服务网站”是测试服务的Web界面;“测试系统”是测试执行系统(例如可以是TTCN-3测试系统);“测试系统”可以部署于“云计算支撑系统”上,使用云计算的资源执行测试;“被测系统”即被测试的软件、设备等,例如银联商业收款机(POS)。远程测试系统和本地客户端利用Web服务接口的方式执行对基本测试模块对应的测试过程的远程测试服务,运程测试服务的测试流程如下客户在提供测试服务的网站上配置测试参数,网站应用这些参数告知测试系统与被测系统的连接方式,测试系统与被测系统建立连接(步骤1),如有必要,用户要手动配置下被测系统的某些参数(步骤1.1),例如配置服务端网际协议(IP);客户在测试服务网站的网页上控制启动测试例(步骤2),网站告知测试系统执行相应测试例(步骤2.1);测试系统按要求执行测试例(步骤3),向被测系统发出测试;被测系统响应测试消息(步骤4),测试系统收到响应;测试系统返回测试结果给测试服务网站(步骤5);测试服务网站将测试结果显示在网页上,以告知用户(步骤6)。远程测试的基本思路是实现测试控制与测试平台的分离,解决测试时需要进行测试平台部署的复杂性,远程测试平台服务接口主要提供包括测试控制,测试记录,测试信息获取,测试管理等四类接口,它们的作用分别为测试控制提供包括启动测试,停止测试,暂停测试,恢复测试等功能;测试记录提供包括测试结果记录,测试中消息通信,定时器事件等事件记录功能;测试信息获取提供包括获取静态测试套信息及运行时测试状态信息等功能;测试管理提高包括测试套上传,编译,运行,测试编解码器与适配器配置等功能。其中,测试控制、测试记录和测试信息获取接口是下层测试执行模块需要向上层提供的接口,作为Web服务发布时其WSDL(WebSerVicesDescriptionLanguage,用来描述Web服务和说明如何与Web服务通信的XML语言)文件中操作部分需要声明以下操作GetTestExecutableState获得测试执行时状态的操作;GetModuleParameters获得模块参数(外部配置的测试数据)的操作;GetTestCases获得测试例名称的操作;GetTestCaseParameters获得测试例参数的操作;StartTestCase启动测试例的操作;StopTestCase终止测试例的操作;GetListenEvent获得测试例执行结果的操作。这样,测试以Web服务的方式提供给需要执行测试的用户,对于上一层的测试例调用人员,可以通过调用这些基本测试服务,完成测试工作。图3为本发明实施例的应用于远程测试服务的反应式系统测试结构图,在该实施例中,利用TTCN-3实现基本测试模块上,并基于Web服务方式实现的可重构测试服务详细描述如下(1)TTCN-3测试系统以Web服务方式提供基本测试服务接口;(2)PHP(HypertextPreprocessor,超文本预处理语言)网页是一个界面,界面之下将通过BPEL引擎一Apache服务调用基本测试服务接口,BPEL引擎中的BPEL代码完成基本测试服务的组装;(3)测试系统部署于云计算平台上,利用云计算平台高性价比的计算资源,与被测系统进行交互,完成实际的测试过程。下面,结合具体的实施例对本发明的反应式系统测试方法给出描述。图4为本发明第一实施例的反应式系统测试方法示意图,该实施例涉及手机支付过程的远程服务测试。对于图4所示的在线支付和离线支付流程划分对应的基本测试模块,例如通过使用TTCN-3语言方式,以WebServices封装好这些基本测试模块,将这些基本测试模块封装成一个一个的服务。这样就可以使用BPEL业务流程编排语言组织基本测试模块来得到在线支付流程和离线支付流程的测试过程。在这个过程中,普通支付流程这个测试模块在BPEL组装的情况下得到了重用,体现了可重构特征。在实际应用中,因实际业务需要经常会导致业务逻辑发生改变,例如在“普通支付流程”前需要有“页面通知流程”,只需在BPEL中重新组装业务流程测试顺序即可,这也体现了可重构的优势。图5(a)、图5(b)和图5(C)为本发明第二实施例的反应式系统测试方法示意图,该实施例涉及银联业务测试流程。如上文所述,将存款流程分解得到两个基本测试模块“余额查询”、“存款”。依次执行“余额查询”、“存款”、“余额查询”,完成整个存款流程。其中的“余额查询”将可以重用在存款流程。基本测试模块的调用接口以Web服务(WebServices)方式实现,用BPEL组装的示意图如图5(a)所示。对于将取款流程分解得到的两个基本测试模块“余额查询”,“取款”。依次执行“余额查询”、“取款”、“余额查询”,完成整个取款流程。这里重用了“余额查询”这个基本测试模块。基本测试模块的调用接口以Web服务方式实现,用BPEL组装示意图如图5(b)所示。另外,在存款或取款流程划分得到的“余额查询”基本测试模块,可以在存款和取款流程中进行重用。基本测试模块的调用接口以Web服务方式实现,用BPEL组装示意图如图5(c)所示。这样对于下层有大量可重构成分的测试方案来说,可以通过重用下层Web服务来快速的组装出上层的流程,大大减少代码开发时间。开发者需要写的仅仅是用BPEL描述调用过程,而BPEL还可以通过图形化BPEL工具ActiveBPELDesigner或ActiveVOS等来实现图形化开发,十分的方便。本发明具有以下优点(1)可重构优势;通过对测试流程进行基本测试模块的划分和完成,可以方便拆卸组装,比整体编写成一个测试例要灵活有效。从而,本发明能够实现较好地重用已有的测试脚本,提高测试工作的效率。(2)以服务方式提供测试;通过利用Web服务将划分基本测试模块封装为若干个服务,并应用于远程测试服务中,可以省去物资运输开销,远程的调用测试流程,并可以广泛的提供通用测试服务给某一领域的用户,以服务方式提供,将有助于管理。(3)利用云计算平台高性价比的计算资源。通过将测试系统部署在云计算平台上,有助于降低高昂的测试费用,并可以借助云计算技术快速完成测试。云测试作为云计算上的一种应用层,是提高测试质量、降低测试成本的有效手段。云测试服务中需要的远程测试技术一直是测试中实用的技术,对于提高测试的易用性非常有效。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。权利要求1.一种反应式系统测试方法,所述测试方法包括以下步骤a)将测试过程划分成若干个基本测试模块;b)使用测试语言实现基本测试模块;c)使用业务流程语言对基本测试模块进行编排,生成新的测试例;以及d)使用业务流程语言执行器执行所述测试例。2.如权利要求1所述的方法,其特征在于,在所述步骤b之后还包括利用Web服务将所述基本测试模块封装为若干个服务的步骤。3.如权利要求1或2所述的方法,其特征在于,所述测试语言为测试和测试控制表示法第三版TTCN-3语言。4.如权利要求1或2所述的方法,其特征在于,所述业务流程语言为业务流程执行语言BPEL。5.如权利要求2所述的方法,其特征在于,远程测试系统和本地客户端利用Web服务接口的方式执行对所述基本测试模块对应的测试过程的远程测试服务,所述远程测试服务包括以下步骤本地客户端在提供远程测试服务的网站上配置测试参数,并控制启动相应的测试例;网站的所述业务流程语言执行器通知远程测试系统执行所述测试例;所述远程测试系统按要求执行测试例,并向被测系统发出测试消息;被测系统响应测试消息向所述远程测试系统发送测试结果;以及所述远程测试系统将测试结果返回到网站上并进行网页显示,以告知所述本地客户端。6.如权利要求5所述的方法,其特征在于,所述测试系统部署在云计算平台上。全文摘要本发明公开了一种反应式系统测试方法,包括以下步骤a)将测试过程划分成若干个基本测试模块;b)使用测试语言实现基本测试模块;c)使用业务流程语言对基本测试模块进行编排,生成新的测试例;以及d)使用业务流程语言执行器执行所述测试例。本发明能够实现较好地重用已有的测试脚本,提高测试工作的效率。文档编号G06F11/36GK102012863SQ201010565999公开日2011年4月13日申请日期2010年11月23日优先权日2010年11月23日发明者储诚操,程绍银,蒋凡申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1