组合服务的回归测试方法和装置的制作方法

文档序号:6441411阅读:139来源:国知局
专利名称:组合服务的回归测试方法和装置的制作方法
技术领域
本发明涉及服务组合测试技术,特别涉及一种组合服务的回归测试方法和装置。
背景技术
随着服务计算(Service Computing)技术的发展,服务组合(Service Composition)已成为开发和构建分布式应用系统的主要手段,通过服务组合可以将分布在网络上的具有独立功能的单个服务按照内在逻辑关系组织成一个组合服务(Composite Service)。目前,业务分析人员可以根据业务需求,使用各种流程建模语言描述业务流程,进行组合服务建模,例如,可以使用面向设计的业务流程建模标记(Business Process Modeling Notation ;以下简称BPMN)构建组合服务模型。上述构建的组合服务是具有动态性的,即随着业务需求的不断变更,组合服务模型也需要进行不断修改,称为组合服务的演化,组合服务演化过程中必定会带来组合服务执行流程的变更。演化后的组合服务必须进行面向组合服务演化的回归测试,该回归测试主要是验证组合服务修改的正确性及其影响,例如,其修改是否达到了预期目的,是否损害了原有模型的功能等。在组合服务的回归测试中,需要选择回归测试路径,该回归测试路径通常为发生变更的执行流程。现有技术的回归测试中,一般是采用基于控制流图的方法选择回归测试路径的, 例如,通过分析组合服务流程结构,生成相应的控制流图,并由控制流图生成有限状态机, 然后将各有限状态机组成一个全局的有限状态机,再将有限状态机映射为哈希码,通过对比哈希码,确定回归测试路径。上述对于组合服务的回归测试存在的技术缺陷是对于组合服务的使用者来说, 由于通常不了解服务流程结构、有限状态机等,获得控制流图以及回归测试路径都有一定的难度,使得组合服务的回归测试较为复杂;而且,现有技术中尚没有针对BPMN组合服务的回归测试方法。

发明内容
本发明的目的是提供一种组合服务的回归测试方法和装置,以实现对基于BPMN 构建的组合服务实际执行回归测试,并且使得回归测试路径的选择和测试都较为简单。本发明提供一种组合服务的回归测试方法,包括解析被测的组合服务的业务流程描述文件,获得所述组合服务的测试环境部署信息,并根据所述测试环境部署信息构建测试环境;所述组合服务为基于业务流程建模标记语言BPMN构建的;解析演化前的所述组合服务的业务流程描述文件,获得第一执行流信息,解析演化后的所述组合服务的业务流程描述文件,获得第二执行流信息;并对比所述第一执行流信息和第二执行流信息,获取相对于所述第一执行流信息发生变化的第二执行流信息作为回归测试路径;
分析所述回归测试路径,得到所述回归测试路径的条件约束信息;并根据所述回归测试路径以及条件约束信息,获取执行所述组合服务所需的输入参数,根据所述输入参数生成测试用例;在所述测试环境中执行所述测试用例,并根据测试执行结果获得所述组合服务的测试结果。本发明提供一种组合服务的回归测试装置,包括测试环境部署模块,用于解析被测的组合服务的业务流程描述文件,获得所述组合服务的执行流信息和测试环境部署信息,并根据所述测试环境部署信息构建测试环境; 所述组合服务为基于业务流程建模标记语言BPMN构建的;测试路径选择模块,用于解析演化前的所述组合服务的业务流程描述文件,获得第一执行流信息,解析演化后的所述组合服务的业务流程描述文件,获得第二执行流信息; 并对比所述第一执行流信息和第二执行流信息,获取相对于所述第一执行流信息发生变化的第二执行流信息作为回归测试路径;测试用例生成模块,用于分析所述回归测试路径,得到所述回归测试路径的条件约束信息;并根据所述回归测试路径以及条件约束信息,获取执行所述组合服务所需的输入参数,根据所述输入参数生成测试用例;测试用例执行模块,用于在所述测试环境中执行所述测试用例;测试结果查看模块,用于根据测试执行结果获得组合服务的测试结果。本发明的组合服务的回归测试方法和装置,通过解析组合服务的业务流程描述文件获得执行流信息,并对比演化前后的执行流信息,获取受演化影响的执行流信息作为回归测试路径,进而对组合服务实际执行测试,实现了对基于BPMN构建的组合服务实际执行回归测试,并且,由于业务流程描述文件很容易获取,通过对比执行流信息的方法获得回归测试路径也较为简单,从而使得组合服务的回归测试方法使用简单、便捷高效。


图I为本发明组合服务的回归测试方法实施例的流程示意图;图2为本发明组合服务的回归测试装置实施例的结构示意图。
具体实施例方式图I为本发明组合服务的回归测试方法实施例的流程示意图,本实施例的方法适用于基于BPMN的组合服务测试,如图I所示,可以包括以下步骤步骤101、解析被测组合服务的业务流程描述文件,获得组合服务的执行流信息和测试环境部署信息,并根据测试环境部署信息构建测试环境;其中,组合服务的业务流程描述文件是测试者在设计组合服务的业务流程的过程自动生成并保存下来的,其中包括了测试者所设计的物理资源组织结构和服务环境拓扑等信息。本步骤中,可以由组合服务测试装置(该测试装置的结构详细可以参见后面的装置实施例中所述)中的测试环境部署模块执行。测试环境部署模块接收用户发送的服务部署请求,该服务部署请求可以是简单对象访问协议(Simple Object Access Protocol,简称SOAP)消息。在接收到该SOAP消息时,测试环境部署模块解析该业务流程描述文件,得到组合服务的执行流信息和测试环境部署信息。例如,该测试环境部署信息可以包括组成组合服务的各原子服务的名称、地址;以及用于测试组合服务的测试容器的地址信息(如, IP地址和端口号)。测试环境部署模块可以根据上述原子服务的名称、地址获取下载服务列表,通过文件传输协议(File Transfer Protocol,简称FTP)从服务库中下载原子服务,并将原子服务下载到指定测试容器,该过程即为测试环境部署的过程。从服务库中成功下载服务后即完成测试环境的部署。通过测试环境的部署,提供了隔离的测试运行环境,降低了测试环境对测试的影响;而且本实施例是直接分析业务流程描述文件,使得该组合服务测试方法使用简单,便捷闻效。步骤102、对比所述组合服务演化前后的执行流信息,获取受演化影响的执行流信息作为回归测试路径;其中,本步骤可以由组合服务测试装置(该测试装置的结构详细可以参见后面的装置实施例中所述)中的测试路径选择模块执行。具体的,可以首先解析BPMN业务流程描述文件,将其转化为基于有向图的组合服务执行流描述模型,通过执行流识别技术对该执行流描述模型进行执行流路径分析,得到业务流程描述文件中的所有可执行路径(该可执行路径即为执行流信息)。输入演化前后的组合服务的业务流程描述文件,并按照上述的方法进行解析,获得组合服务演化前后的执行流信息;具体的,可以解析演化前的所述组合服务的业务流程描述文件,获得第一执行流信息,解析演化后的所述组合服务的业务流程描述文件,获得第二执行流信息;并将演化前后的第一执行流信息和第二执行流信息进行对比,就可以识别受演化影响的第二执行流信息,可以将该受演化影响的,相对于所述第一执行流信息发生变化第二执行流信息作为回归测试路径。由于组合服务的业务流程描述文件是测试者在设计组合服务的业务流程的过程自动生成并保存下来的,很容易获取到业务流程描述文件并将其解析为执行流信息;而且, 通过对比演化前后的执行流信息的方法,识别受演化影响的执行流信息并据此获得回归测试路径实现也较为简单,从而使得组合服务的回归测试方法相对于现有技术中的基于控制流图的方式,使用简单、便捷高效。具体的,根据目前常见的组合服务演化操作,可以将组合服务的演化分为两种类型,一种是因业务流程变更(包括增加、删除节和结构调整)影响的执行流信息,另一种是由于原子服务绑定变化(包括替换操作)影响的执行流信息。例如,对于因业务流程变更影响的执行流信息,这种类型通常为,在组合服务的演化过程中,可执行路径中的节点发生了增减变化,即路径上可能新增了节点或者删除了节点,由此导致了可执行路径的变化。识别此种类型执行流信息的方式可以为,对比组合服务演化前后的执行流信息(即可执行路径),路径中可以包括多个节点,找到路径中新增的节点或者删除的节点,就可以相应得到经过该节点的可执行路径。本方式的算法可以如下设计算法I SelectRTPath4Prtl (P,P' AN, DN, SAP)//选择因流程变更影响的可执行路径输入P,P', AN, DN, SAP输出Prtl
SelectRTPath4Prtl(P, V, AN, DN, SAP)
{
Prtl=NULL; //初始化 for(an: AN) //遍历新增节点 {
for(p': P') //遍历演化后可执行流路径集 {
if((e I e. S our ceRef=an 11 e. T argetRef=an) e p') Prtl= Prtl U {p'};
for(p: P)
{
for(dn: DN) //遍历删除节点 {
if((e|e.SourceRef=dn||e.TargetRef=dn) e p&& (p-e) Ep')
Prtl= Prtl U {p-dn};
}
}
if(SAP^NULL) //如果P'中有SAP Prtl= Prtl U SAP; retumPrtl;
}例如,对于因原子服务绑定变化影响的执行流信息,这种类型通常为,在组合服务的演化过程中,可执行路径中的节点所绑定的原子服务发生了变化,由此导致了可执行路径的变化。识别此种类型执行流信息的方式可以为,对比组合服务演化前后的执行流信息 (即可执行路径),路径中可以包括多个节点,找到路径中服务绑定发生变化的节点,则可以相应得到经过该节点的可执行路径。本方式的算法可以如下设计
算法2 SelectRTPath4Prt2(N all,SN,SN',P' )//选择因绑定变化影响的可执行路径输入Nall,SN,SN',P'输出Prt权利要求
1.一种组合服务的回归测试方法,其特征在于,包括解析被测的组合服务的业务流程描述文件,获得所述组合服务的测试环境部署信息, 并根据所述测试环境部署信息构建测试环境;所述组合服务为基于业务流程建模标记语言 BPMN构建的;解析演化前的所述组合服务的业务流程描述文件,获得第一执行流信息,解析演化后的所述组合服务的业务流程描述文件,获得第二执行流信息;并对比所述第一执行流信息和第二执行流信息,获取相对于所述第一执行流信息发生变化的第二执行流信息作为回归测试路径;分析所述回归测试路径,得到所述回归测试路径的条件约束信息;并根据所述回归测试路径以及条件约束信息,获取执行所述组合服务所需的输入参数,根据所述输入参数生成测试用例;在所述测试环境中执行所述测试用例,并根据测试执行结果获得所述组合服务的测试结果。
2.根据权利要求I所述的组合服务的回归测试方法,其特征在于,所述测试环境部署信息,包括组成所述组合服务的各原子服务的名称、地址;以及用于测试所述组合服务的测试容器的地址信息;所述根据测试环境部署信息构建测试环境,包括根据所述原子服务的名称、地址,从服务库下载所述原子服务至所述测试容器。
3.根据权利要求2所述的组合服务的回归测试方法,其特征在于,所述获取相对于所述第一执行流信息发生变化的第二执行流信息作为回归测试路径,包括获取相对于所述第一执行流信息,受业务流程变更影响的第二执行流信息作为回归测试路径,所述业务流程变更包括执行流信息中的节点数量的增加、删除。
4.根据权利要求2所述的组合服务的回归测试方法,其特征在于,所述获取相对于所述第一执行流信息发生变化的第二执行流信息作为回归测试路径,包括获取相对于所述第一执行流信息,受原子服务绑定变化影响的第二执行流信息作为回归测试路径,所述原子服务绑定变化包括执行流信息中的节点所绑定的原子服务发生替换。
5.根据权利要求I所述的组合服务的回归测试方法,其特征在于,分析所述回归测试路径,得到所述回归测试路径的条件约束信息,包括遍历所述回归测试路径上的所有边,得到所述回归测试路径中的条件约束信息,所述条件约束信息包括所述回归测试路径上节点的输入信息和输出信息,或者为条件转移信肩、O
6.一种组合服务的回归测试装置,其特征在于,包括测试环境部署模块,用于解析被测的组合服务的业务流程描述文件,获得所述组合服务的执行流信息和测试环境部署信息,并根据所述测试环境部署信息构建测试环境;所述组合服务为基于业务流程建模标记语言BPMN构建的;测试路径选择模块,用于解析演化前的所述组合服务的业务流程描述文件,获得第一执行流信息,解析演化后的所述组合服务的业务流程描述文件,获得第二执行流信息;并对比所述第一执行流信息和第二执行流信息,获取相对于所述第一执行流信息发生变化的第二执行流信息作为回归测试路径;测试用例生成模块,用于分析所述回归测试路径,得到所述回归测试路径的条件约束信息;并根据所述回归测试路径以及条件约束信息,获取执行所述组合服务所需的输入参数,根据所述输入参数生成测试用例;测试用例执行模块,用于在所述测试环境中执行所述测试用例;测试结果查看模块,用于根据测试执行结果获得组合服务的测试结果。
7.根据权利要求6所述的组合服务的回归测试装置,其特征在于,所述测试环境部署模块,包括解析单元,用于解析被测的组合服务的业务流程描述文件,获得所述组合服务的执行流信息和测试环境部署信息;所述测试环境部署信息包括组成所述组合服务的各原子服务的名称、地址;以及用于测试所述组合服务的测试容器的地址信息;部署单元,用于根据所述原子服务的名称、地址,从服务库下载所述原子服务至所述测试容器。
8.根据权利要求6所述的组合服务的回归测试装置,其特征在于,所述测试路径选择模块,包括第一单元,用于获取相对于所述第一执行流信息,受因业务流程变更影响的第二执行流信息作为回归测试路径,所述业务流程变更包括执行流信息中的节点数量的增加、删除。
9.根据权利要求6所述的组合服务的回归测试装置,其特征在于,所述测试路径选择模块,包括第二单元,用于获取相对于所述第一执行流信息,受原子服务绑定变化影响的第二执行流信息作为回归测试路径,所述原子服务绑定变化包括执行流信息中的节点所绑定的原子服务发生替换。
10.根据权利要求6所述的组合服务的回归测试装置,其特征在于,所述测试用例生成模块,具体用于,遍历所述回归测试路径上的所有边,得到所述回归测试路径中的条件约束信息,所述条件约束信息包括所述回归测试路径上节点的输入信息和输出信息,或者为条件转移信
全文摘要
本发明提供一种组合服务的回归测试方法和装置,其中方法包括解析被测的组合服务的业务流程描述文件,获得所述组合服务的执行流信息和测试环境部署信息,并根据所述测试环境部署信息构建测试环境;对比所述组合服务演化前后的执行流信息,获取受演化影响的执行流信息作为回归测试路径;分析所述回归测试路径,得到所述回归测试路径的条件约束信息;并根据所述受演化影响的执行流信息以及条件约束信息,获取执行所述组合服务所需的输入参数,根据所述输入参数生成测试用例;执行所述测试用例,并根据测试执行结果获得所述组合服务的测试结果。本发明克服了对组合服务的测试停留在静态验证逻辑功能的缺陷,实现了组合服务的动态测试。
文档编号G06F11/36GK102591772SQ20111042142
公开日2012年7月18日 申请日期2011年12月15日 优先权日2011年12月15日
发明者刘旭东, 吴茜, 周超, 怀进鹏, 蒋俊彦 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1