CN114328179A - Bpel工作流的回归测试方法及相关设备 - Google Patents

Bpel工作流的回归测试方法及相关设备 Download PDF

Info

Publication number
CN114328179A
CN114328179A CN202111415729.1A CN202111415729A CN114328179A CN 114328179 A CN114328179 A CN 114328179A CN 202111415729 A CN202111415729 A CN 202111415729A CN 114328179 A CN114328179 A CN 114328179A
Authority
CN
China
Prior art keywords
bpel
test
activity
workflow
dependency graph
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.)
Pending
Application number
CN202111415729.1A
Other languages
English (en)
Inventor
王洪达
胡毅
杨曼
周煜韬
曹常青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PLA NAVAL LOGISTICS COLLEGE
CETC 18 Research Institute
Original Assignee
PLA NAVAL LOGISTICS COLLEGE
CETC 18 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PLA NAVAL LOGISTICS COLLEGE, CETC 18 Research Institute filed Critical PLA NAVAL LOGISTICS COLLEGE
Priority to CN202111415729.1A priority Critical patent/CN114328179A/zh
Publication of CN114328179A publication Critical patent/CN114328179A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种BPEL工作流的回归测试方法及相关设备,用于信息化保障系统的测试。当所述信息化保障系统发生变动时,比较修改后的BPEL工作流和对应的原BPEL工作流的程序依赖图,判断是否需要进行回归测试。确定需要回归测试时,调用预先生成的测试用例:首先根据的BPEL工作流确定测试用例的测试优先级,然后选出能够测试修改后的BPEL工作流的测试用例作为回归测试用例,最后按照测试优先级进行回归测试,得到测试结果。避免了在回归测试过程中运行不会测试到修改后的BPEL工作流的测试用例,减少了不必要的测试用例的运行,从而减少回归测试时间和回归测试的工作量,达到了提升测试效率的目的。

Description

BPEL工作流的回归测试方法及相关设备
技术领域
本申请涉及业务流程执行语言技术领域,尤其涉及一种BPEL工作流的回归测试方法及相关设备。
背景技术
在实际的信息化保障系统中,为了对系统进行维护和升级,开发人员会根据保障系统的实际工作情况对信息化保障系统中的业务过程执行语言(Business ProcessExecution Language,BPEL)工作流进行修改。为了保证修改后的BPEL工作流能够正常运行,需要对修改后的BPEL工作流进行回归测试,以了解对BPEL工作流的修改是否正确。但需要对BPEL工作流进行的修改会随着涉及的信息化保障系统中的服务数量的增加而增加,由于每次对被BPEL工作流的修改,都可能需要重新回归测试BPEL工作流,导致回归测试BPEL工作流的工作量过大。因此需要一种在能够有效进行BPEL工作流回归测试的前提下,能够减小回归测试BPEL工作流的工作量的方法。
发明内容
有鉴于此,本申请的目的在于提出一种BPEL工作流的回归测试方法及相关设备。
基于上述目的,本申请提供了一种BPEL工作流的回归测试方法,用于信息化保障系统的测试,其特征在于,包括:
当所述信息化保障系统发生变动时,获取变动后的第一BPEL工作流和所述第一BPEL工作流对应的变动前的第二BPEL工作流;
生成所述第一BPEL工作流的第一程序依赖图和所述第二BPEL工作流的第二程序依赖图,根据所述第一程序依赖图和所述第二程序依赖图判断是否需要对所述第一BPEL工作流进行回归测试;
响应于确定需要对所述第一BPEL工作流进行回归测试,调用预先生成的所述第二BPEL工作流的多个测试用例,根据所述第一程序依赖图分别确定所述多个测试用例中每个测试用例的测试优先级;
根据所述测试优先级从所述多个测试用例中选择出回归测试用例,回归测试所述第一BPEL工作流,得到测试结果。
在一些实施方式中,所述根据所述第一程序依赖图和所述第二程序依赖图判断是否需要对所述第一BPEL工作流进行回归测试,包括:
识别所述第一BPEL工作流中发生变动的第一BPEL活动,并获取所述第二BPEL工作流中与所述第一BPEL活动对应的第二BPEL活动;
采用程序切片算法处理所述第一程序依赖图和所述第二程序依赖图,得到所述第一BPEL活动的第一程序依赖图切片和所述第二BPEL活动的第二程序依赖图切片;
比较所述第一程序依赖图切片与所述第二程序依赖图切片是否同构,其中,响应于确定所述第一程序依赖图切片与所述第二程序依赖图切片同构,不需要对所述第一BPEL工作流进行回归测试;
响应于确定所述第一程序依赖图切片与所述第二程序依赖图切片不同构,需要对所述第一BPEL工作流进行回归测试。
在一些实施方式中,所述根据所述第一程序依赖图分别确定所述多个测试用例中每个测试用例的测试优先级,包括:
根据所述第一程序依赖图、所述第一BPEL工作流的相关依赖和同步依赖生成活动依赖图;
采用程序切片算法获取所述活动依赖图中所述第一BPEL活动相关的其他各个BPEL活动,统计所述第一BPEL活动与所述其他各个BPEL活动的个数,作为所述第一BPEL活动的测试重要性参数;
根据所述测试重要性参数分别确定所述多个测试用例中每个测试用例的所述测试优先级。
在一些实施方式中,所述根据所述测试重要性参数分别确定所述多个测试用例中每个测试用例的所述测试优先级,包括:
对于所述多个测试用例中的每个测试用例,获取所述测试用例测试到的每个所述第一BPEL活动,其中,所述每个测试用例测试至少一个所述第一BPEL活动;
分别计算所述测试到的每个所述第一BPEL活动对应的测试重要性参数,并计算全部测试重要性参数的和,根据计算结果确定所述测试用例的所述测试优先级。
在一些实施方式中,所述根据所述第一程序依赖图、所述第一BPEL工作流的相关依赖和同步依赖,生成活动依赖图,包括:
选择所述第一BPEL工作流中任意两个BPEL活动分别作为第一选定活动和第二选定活动,分别判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖和所述同步依赖;
判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖,包括:
响应于确定所述第一选定活动和所述第二选定活动都是所述第一BPEL工作流的接收活动,且所述第一选定活动为开始活动,获取所述第一选定活动的属性特征值,其中所述属性特征值为肯定值或否定值;
响应于确定所述第一选定活动的属性特征值为肯定值,所述第二选定活动相关依赖于所述第一选定活动,得到所述第一选定活动和所述第二选定活动间存在所述相关依赖的结果;
判断所述第一选定活动和所述第二选定活动是否存在所述同步依赖,包括:
响应于确定所述第一选定活动和所述第二选定活动在所述第一BPEL工作流的flow活动中,判断所述第二选定活动是否以所述第一选定活动作为源的link的目标,其中,所述flow活动内包含一组可以用任意顺序执行的BPEL活动;
响应于确定判断所述第二选定活动以所述第一选定活动作为源的link的目标,所述第二选定活动同步依赖于所述第一选定活动,得到所述第一选定活动和所述第二选定活动间存在所述同步依赖的结果;
根据得到的存在所述相关依赖的结果和存在所述同步依赖的结果,连接所述第一程序依赖图中的所述第一选定活动和所述第二选定活动,得到所述活动依赖图。
在一些实施方式中,所述根据所述测试优先级从所述多个测试用例中选择出回归测试用例,回归测试所述第一BPEL工作流,得到测试结果,包括:
获取所述多个测试用例中至少一个用于测试所述第一BPEL工作流的测试用例作为所述回归测试用例;
按照所述测试优先级从高到低的顺序排列至少一个所述回归测试用例,按照排列结果执行至少一个所述回归测试用例,回归测试所述第一BPEL工作流,得到所述测试结果。
在一些实施方式中,所述预先生成的所述第二BPEL工作流的多个测试用例的生成步骤,包括:
根据所述第二BPEL工作流生成BPEL控制流图,分解所述BPEL控制流图得到至少一条BPEL活动路径;
对于所述至少一条BPEL活动路径中的每一条BPEL活动路径,
采用求解器判断所述BPEL活动路径的可行性;
响应于确定所述BPEL活动路径具备可行性,采用所述求解器为所述BPEL活动路径生成对应的测试用例;
把生成的全部所述对应的测试用例作为所述多个测试用例。
基于同一发明构思,本申请还提供了一种BPEL工作流的回归测试装置,包括:
获取模块,被配置为:当信息化保障系统发生变动时,获取变动后的第一BPEL工作流和所述第一BPEL工作流对应的变动前的第二BPEL工作流;
判断模块,被配置为:生成所述第一BPEL工作流的第一程序依赖图和所述第二BPEL工作流的第二程序依赖图,根据所述第一程序依赖图和所述第二程序依赖图判断是否需要对所述第一BPEL工作流进行回归测试;
计算模块,被配置为:响应于确定需要对所述第一BPEL工作流进行回归测试,调用预先生成的所述第二BPEL工作流的多个测试用例,根据所述第一程序依赖图分别计算所述多个测试用例中每个测试用例的测试优先级;
测试模块,被配置为:根据所述测试优先级从所述多个测试用例中选择出回归测试用例,回归测试所述第一BPEL工作流,得到测试结果。
基于同一发明构思,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现BPEL工作流的回归测试方法。
基于同一发明构思,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行BPEL工作流的回归测试方法。
从上面所述可以看出,本申请提供的BPEL工作流的回归测试方法及相关设备,通过比较对应的修改后的第一BPEL工作流和未修改的第二BPEL工作流的程序依赖图,判断是否需要回归测试第一BPEL工作流。对于需要回归测试的第一BPEI工作流,调用预先生成的第二BPEL工作流的多个测试用例进行回归测试,回归测试时首先根据第一BPEL工作流计算预先生成的测试用例的测试优先级,然后选择出第二BPEL工作流的多个测试用例中能够测试第一BPEL工作流的修改处的测试用例作为回归测试用例,并按照计算出的测试优先级从高到低的顺序执行回归测试用例对第一BPEL工作流进行测试,得到测试结果。采用本申请提供的BPEL工作流的回归测试方法,可以避免运行不会测试到第一BPEL工作流的修改处的测试用例,减少了不必要测试用例的运行,达到了减少回归测试时间和回归测试的工作量,从而提升测试效率的目的。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的BPEL工作流的回归测试方法的流程图;
图2为本申请实施例的比较第一BPEL工作流和第二BPEL工作流的程序依赖图切片以确定是否进行回归测试的流程图;
图3为本申请实施例提供的确定测试用例的测试优先级的流程图;
图4为本申请实施例提供的根据测试重要性确定测试优先级的流程图;
图5为本申请实施例提供的生成活动依赖图的流程图;
图6为本申请实施例提供的判断是否存在相关依赖的流程图;
图7为本申请实施例提供的判断是否存在同步依赖的流程图;
图8为本申请实施例提供的进行回归测试的流程图;
图9为本申请实施例提供的获取测试用例的流程图;
图10为本申请实施例提供的采用求解器生成测试用例的流程图;
图11为本申请实施例提供的舰船保障BPEL工作流的示意图;
图12为本申请实施例提供的修改后的舰船保障BPEL工作流的示意图;
图13a为本申请实施例提供的舰船保障BPEL工作流的程序依赖图;
图13b为本申请实施例提供的修改后的舰船保障BPEL工作流的程序依赖图;
图14为本申请实施例提供的舰船保障BPEL工作流的活动依赖图;
图15为本申请实施例提供的分解出的一条BPEL活动路径的示意图;
图16为本申请实施例提供的分解出的另一条BPEL活动路径的示意图;
图17为本申请实施例提供的BPEL工作流的回归测试装置的结构图;
图18为本申请实施例提供的电子设备的结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
如背景技术所述,在信息化保障系统的开发和维护过程中,当信息化保障系统的需求或环境发生变化时,BPEL工作流会重新进行服务组合,以满足新的需求和环境变化。这时就需要对修改后的BPEL工作流进行回归测试,以验证修改是否正确。而由于对BPEL工作流进行的修改会随着涉及的信息化保障系统中的服务数量的增加而增加,且每次对被BPEL工作流的修改,都需要重新回归测试BPEL工作流,就会导致回归测试BPEL工作流的工作量过大,测试时间过长。为了保障回归测试的时效性,需要在进行回归测试时尽可能的减少时间,以提高测试效率。
为解决这一问题,本申请提供了一种BPEL工作流的回归测试方法,通过比较对应的修改后的第一BPEL工作流和未修改的第二BPEL工作流的程序依赖图,判断是否需要回归测试第一BPEL工作流。对于需要回归测试的第一BPEI工作流,调用预先生成的第二BPEL工作流的多个测试用例进行回归测试,回归测试时首先根据第一BPEL工作流分别计算多个测试用例的测试优先级,然后选择出第二BPEL工作流的多个测试用例中能够测试第一BPEL工作流的修改处的测试用例作为回归测试用例,并按照计算出的测试优先级从高到低的顺序执行回归测试用例对第一BPEL工作流进行测试,得到测试结果。
作为一个可选的实施例,参照图1,本申请提供了一种BPEL工作流的回归测试方法,包括:
步骤S101,当所述信息化保障系统发生变动时,获取变动后的第一BPEL工作流和所述第一BPEL工作流对应的变动前的第二BPEL工作流。
其中,在信息化保障系统内包含多个BPEL工作流应用,当其中至少一个BPEL工作流应用被修改时,就会导致信息化保障系统发生变动。
系统开发人员根据被修改的BPEL工作流应用的程序构建这一BPEL工作流应用中代码的统一建模语言(Unified Modeling Language,UML)活动图作为所述第一BPEL工作流;并根据被修改的BPEL工作流应用对应的修改前的BPEL工作流应用的程序,构建变动前的信息化保障系统中未修改的对应的BPEL工作流应用的UML活动图作为所述第二BPEL工作流。
步骤S102,生成所述第一BPEL工作流的第一程序依赖图和所述第二BPEL工作流的第二程序依赖图,根据所述第一程序依赖图和所述第二程序依赖图判断是否需要对所述第一BPEL工作流进行回归测试。
其中,第一程序依赖图和第二程序依赖图都是有向图<N,E>,N是一组代表不同BPEL活动的节点,在N中有一个入口节点,而其他节点表示不同的BPEL活动;E∈N×N是有向边的集合,设X和Y分别为N中的两个不同的BPEL活动的节点,从X到Y的有向边<X,Y>∈E,表示由X和Y表示的两个不同BPEL活动之间的控制、数据或异步调用依赖关系。
本步骤中,根据第一程序依赖图和第二程序依赖图判断是否需要对第一BPEL工作流进行回归测试,是判断第一程序依赖图和第二程序依赖图是否同构,当第一程序依赖图和第二程序依赖图同构时,第一BPEL工作流和第二BPEL工作流是等价的,也就不用对第一BPEL工作流进行回归测试;否则,需要采用第二BPEL工作流的测试用例对第一BPEL工作流进行回归测试。
步骤S103,响应于确定需要对所述第一BPEL工作流进行回归测试,调用预先生成的所述第二BPEL工作流的多个测试用例,根据所述第一程序依赖图分别确定所述多个测试用例中每个测试用例的测试优先级。
其中,预先生成的第二BPEL工作流的测试用例,是通过对第二BPEL工作流的控制流程图进行分解得到至少一条活动路径,然后采用求解器判断至少一条活动路径中每一条活动路径的可行性,并为每一条具备可行性的活动路径生成的。
每个测试用例的测试优先级表示,测试优先级越高的测试用例,在运行时测试到的第一BPEL活动越多,测试出的修改错误的概率也就越大。
步骤S104,根据所述测试优先级从所述多个测试用例中选择出回归测试用例,回归测试所述第一BPEL工作流,得到测试结果。
其中,回归测试指采用第二BPEL工作流的测试用例对第一BPEL工作流进行测试,根据测试结果确认对第二BPEL工作流的修改没有引入新的错误或导致其他代码产生错误。
回归测试用例指多个测试用例中能够用于测试第一BPEL活动的测试用例,使用这些回归测试用例按照它们的测试优先级从高到低的顺序回归测试第一BPEL工作流,得出测试结果。并且优先运行测试优先级高的回归测试用例,能够尽快地提升测试出第一BPEL工作流中的错误。
当测试结果是第一BPEL工作流能够正常运行回归测试用例时,证明对第二BPEL工作流进行的修改是正确的;否则,第一BPEL工作流无法正常运行回归测试用例时,证明对第二BPEL工作流进行的修改是错误的,需要进一步修改第一BPEL工作流,使其能够通过回归测试。
本实施例提供的这一方法,通过选出多个测试用例中能够测试第一BPEL活动的测试用例对第一BPEL工作流进行回归测试,可以避免运行不会测试到第一BPEL工作流的修改处的测试用例,减少了不必要测试用例的运行,达到了减少回归测试时间,而且通过为按照测试优先级运行回归测试用例,能够尽快检测出第一BPEL工作流中的错误,也能够节省回归测试时间,最终实现提高回归测试效率的目的。
作为一个可选的实施例,参照图2,前述实施例中的步骤S102,具体包括:
步骤S201,识别所述第一BPEL工作流中发生变动的第一BPEL活动,并获取所述第二BPEL工作流中与所述第一BPEL活动对应的第二BPEL活动。
其中,开发人员对第二BPEL工作流进行删除、修改或添加BPEL活动的操作,得到第一BPEL工作流:
在第二BPEL工作流中删除的BPEL活动表示这一BPEL活动仅对第二BPEL工作流有效,在第一BPEL工作流不存在。
在第二BPEL工作流中修改的BPEL活动在第一BPEL工作流和第二BPEL工作流中都存在。
在第二BPEL工作流中添加的BPEL活动仅在第一BPEL工作流中存在。因此,第一BPEL工作流中被修改的BPEL活动和第二BPEL工作流中修改前的同一BPEL活动对应。
同时,为了满足第一BPEL工作流和第二BPEL工作流的对应关系,在第一BPEL工作流和第二BPEL工作流中设置empty活动,使第二BPEL工作流中被删除的BPEL活动对应第一BPEL工作流中的empty活动,第一BPEL工作流中被添加的BPEL活动对应第二BPEL工作流中的empty活动。
步骤S202,采用程序切片算法处理所述第一程序依赖图和所述第二程序依赖图,得到所述第一BPEL活动的第一程序依赖图切片和所述第二BPEL活动的第二程序依赖图切片。
其中,采用程序切片算法获取第一程序依赖图中直接或间接影响第一BPEL活动的其余BPEL活动,把这些其余BPEL活动和第一BPEL活动及它们在第一程序依赖图中的连接关系作为第一程序依赖图切片,采用同样的方式得到第二程序依赖图切片。
步骤S203,比较所述第一程序依赖图切片与所述第二程序依赖图切片是否同构,其中,响应于确定所述第一程序依赖图切片与所述第二程序依赖图切片同构,不需要对所述第一BPEL工作流进行回归测试。
其中,比较所述第一程序依赖图切片与所述第二程序依赖图切片同构的判断条件是:判断第一程序依赖图切片中的顶点和第二程序依赖图切片中的顶点之间能够建立一一对应的映射,且对应的顶点之间保持有向边的一一对应关系。
本步骤中,满足上述条件的第一程序依赖图切片与所述第二程序依赖图切片同构,说明第一BPEL活动和第二BPEL活动是等价的,第一BPEL活动不受修改的影响,可以正常运行,从而不必对第一BPEL工作流进行回归测试。不满足这一条件的第一程序依赖图切片与所述第二程序依赖图切片同构,需要执行步骤S204,对第一BPEL工作流进行回归测试。
步骤S204,响应于确定所述第一程序依赖图切片与所述第二程序依赖图切片不同构,需要对所述第一BPEL工作流进行回归测试。
其中,第一程序依赖图切片与第二程序依赖图切片不同构包括下列情况:
1,当修改第二BPEL工作流中的至少一个BPEL活动得到第一BPEL工作流时,当第一程序依赖图切片中对于第一BPEL活动的顶点和第二程序依赖图切片中对于第二BPEL活动的顶点不同构时,第一程序依赖图切片与所述第二程序依赖图切片不同构。
2,删除第二BPEL工作流中的至少一个BPEL活动得到第一BPEL工作流时,第一BPEL活动是对应第二BPEL活动的empty活动,可以直接得出第一程序依赖图切片与所述第二程序依赖图切片不同构的结论。
3,在第二BPEL工作流中添加至少一个BPEL活动得到第一BPEL工作流时,第二BPEL活动是对应第一BPEL活动的empty活动,同样可以直接得出第一程序依赖图切片与所述第二程序依赖图切片不同构的结论。对于这种情况,在进行回归测试时需要利用第一BPEL工作流生成用于测试第一BPEL活动的新的测试用例。
本实施例中,识别出第一BPEL工作流中不需要进行回归测试的第一BPEL活动,使得进行第一BPEL工作流的回归测试时,不用再次运行用于测试这类与对应的第二BPEL活动等价的第一BPEL活动的测试用例,减少了运行测试用例进行回归测试的工作量,进而减少了回归测试消耗的时间,从而提高了测试效率。
作为一个可选的实施例,参照图3,步骤S103中根据所述第一程序依赖图分别计算所述多个测试用例中每个测试用例的测试优先级,包括:
步骤S301,根据所述第一程序依赖图、所述第一BPEL工作流的相关依赖和同步依赖生成活动依赖图。
其中,从第一程序依赖图中任选两个BPEL活动作为第一选定活动和第二选定活动,判断这两个BPEL活动间是否存在相关依赖或同步依赖。
相关依赖指,当且仅当所述第一BPEL工作流的第一选定活动和第二选定活动都是所述第一BPEL工作流的接收活动,并且所述第一选定活动是属性特征值为肯定值的开始活动,所述第二选定活动相关依赖于所述第一选定活动;
同步依赖指,当且仅当所述第一选定活动和所述第二选定活动都包括在flow活动中,并且所述第二选定活动以所述第一选定活动作为源的link的目标,所述第二选定活动同步依赖于所述第一选定活动。
本步骤中,第一选定活动和第二选定活动之间如果存在相关依赖或同步依赖的话,在第一程序依赖图中用有向线连接这两个BPEL活动,直到按照两两一组选择并判断完第一程序依赖图全部的BPEL活动。
步骤S302,采用程序切片算法获取所述活动依赖图中所述第一BPEL活动相关的其他各个BPEL活动,统计所述第一BPEL活动与所述其他各个BPEL活动的个数,作为所述第一BPEL活动的测试重要性参数。
其中,采用程序切片算法在活动依赖图中对第一BPEL活动进行前向切片,获取包括第一BPEL活动和活动依赖图中受第一BPEL活动直接或间接影响的其余BPEL活动的前向片段作为活动的修改影响(Modification Impact of Activity,MIA)。
设某个第一BPEL活动为M,统计MIA(M)中的BPEL活动的个数,作为M的测试重要性参数(Testing Importance of Activity,TIA)。当M的测试重要性参数越大时,表示通过修改得到的BPEL活动M影响到的其余BPEL活动越多,就越有必要采用测试用例测试BPEL活动M。
步骤S303,根据所述测试重要性参数分别确定所述多个测试用例中每个测试用例的所述测试优先级。
其中,计算每个测试用例测试到的全部第一BPEL活动的测试重要性参数之和,按照计算结果从大到小的顺序为测试用例赋予从高到低的测试优先级。
本实施例中,通过计算第一BPEL活动的测试重要性参数并根据测试重要性参数确定测试用例的测试优先级,为后续进行第一BPEL工作流的回归测试提供了理论依据。
作为一个可选的实施例参照图4,步骤S303具体包括:
步骤S401,对于所述多个测试用例中的每个测试用例,获取所述测试用例测试到的每个所述第一BPEL活动。
其中,把多个测试用例中的任意一个测试用例设为t,测试用例t用于对第二BPEL工作流中由多个BPEL活动组成的一条活动路径进行测试,当第一BPEL工作流中存在至少一个第一BPEL活动与这一活动路径中的任意BPEL活动对应时,第一BPEL工作流在运行测试用例t时就会测试到这个第一BPEL活动。
步骤S402,分别计算所述测试到的每个所述第一BPEL活动对应的测试重要性参数,并计算全部测试重要性参数的和,根据计算结果确定所述测试用例的所述测试优先级。
本步骤中,分别根据步骤S302计算测试用例t测试到的每个第一BPEL活动的TIA,计算这些TIA的总和作为测试用例t的测试重要性参数(Testing importance of TestCase,TITC)。分别计算出多个测试用例中每个测试用例的TITC后,按照TITC从大到小的顺序确定多个测试用例的测试优先级,其中,TITC最大的测试用例对应的测试优先级最高。
本实施例中,采用计算测试用例的TITC来为确定不同测试用例的测试优先级,当BPEL活动(无论是否会引入错误/缺陷)被修改时,它会影响依赖于它的其余BPEL活动,且由于单个测试用例的TITC是这一个测试用例测试到的所有第一BPEL活动的TIA的总和,TITC越高的测试用例,它测试到的第一BPEL活动影响到的其余BPEL活动也越多,第一BPEL活动出现错误的可能性就越大。通过按照TITC从高到低的顺序确定测试用例从高到低的测试优先级,进行回归测试时,优先运行测试优先级高的测试用例,以尽快测试出第一BPEL活动的错误,在提高测试效率的基础上减少回归测试消耗的时间。
作为一个可选的实施例,参照图5,步骤S301中根据所述第一程序依赖图、所述第一BPEL工作流的相关依赖和同步依赖,生成活动依赖图,包括:
步骤S501,选择所述第一BPEL工作流中任意两个BPEL活动分别作为第一选定活动和第二选定活动,分别判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖和所述同步依赖。
其中,设第一BPEL工作流中存在A、B、C、D、E这五个BPEL活动,当选择任意两个BPEL活动选出BPEL活动A和BPEL活动C时,就存在把BPEL活动A作为第一选定活动,把BPEL活动C作为第二选定活动和把BPEL活动C为第一选定活动,把BPEL活动A为第二选定活动这两种情况,需要分开判断两组第一选定活动和第二选定活动间是否存在相关依赖或同步依赖。
步骤S502,判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖和所述同步依赖。
本步骤中,对于一组对应的第一选定活动和第二选定活动,需要判断二者间是否存在相关依赖或是同步依赖,可选的,参照图6,上述实施例步骤S502中判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖时,包括:
步骤S601,响应于确定所述第一选定活动和所述第二选定活动都是所述第一BPEL工作流的接收活动,且所述第一选定活动为开始活动,获取所述第一选定活动的属性特征值,其中所述属性特征值为肯定值或否定值。
其中,根据组成BPEL工作流的BPEL活动的类型来判断第一选定活动和第二选定活动是否是接收活动。BPEL活动的类型主要包括两类,分别是基本活动和结构化活动。基本活动用于描述BPEL工作流中的基本步骤,包括:接收活动(receive)、调用活动(invoke)、回复活动(reply)和赋值活动(assign)。结构化活动用于表达BPEL工作流的控制流逻辑,包括:顺序活动(sequence)、流程活动(flow)、选取活动(pick)和循环活动(while)。其中,receive活动和invoke活动被认为是本申请实施例中第一BPEL工作流中的接收活动。
第一选定活动为开始活动表示,第一选定活动是receive活动,且是第一BPEL工作流的起始点。
步骤S602,响应于确定所述第一选定活动的属性特征值为肯定值,所述第二选定活动相关依赖于所述第一选定活动,得到所述第一选定活动和所述第二选定活动间存在所述相关依赖的结果。
其中,第一选定活动的属性特征值为肯定值,指的是如果将receive活动作为流程的起始点,则需要将receive活动的createInstance属性的属性特征值设置为肯定值,以表明当第一BPEL工作流在接收到匹配的消息时会创建对应的流程实例来处理该请求。
本步骤中,当第一选定活动和第二选定活动满足步骤S601和步骤S602中的所有判断条件时,得出第二选定活动依赖于第一选定活动的结论,从而得到所述第一选定活动和所述第二选定活动间存在所述相关依赖的结果。
可选的,参照图7,上述实施例步骤S502中判断所述第一选定活动和所述第二选定活动间是否存在所述同步依赖时,包括:
步骤S701,响应于确定所述第一选定活动和所述第二选定活动在所述第一BPEL工作流的flow活动中,判断所述第二选定活动是否以所述第一选定活动作为源的link的目标,其中,所述flow活动内包含一组可以用任意顺序执行的BPEL活动。
其中,flow活动是描述BPEL工作流中的并发和同步机制的结构化活动。包括在flow活动中的一组BPEL活动可以以任何顺序执行(除了由sequence活动定义好的发生先后关系)。当且仅当其中包括的所有活动已完成时,flow活动才完成。
BPEL工作流通过link表达不同BPEL活动之间的同步依赖性。flow活动中包含的每个活动都有可选的传入和/或传出link,且由link连接的两个BPEL活动的执行顺序不能逆转,否则会导致BPEL工作流的运行陷入死锁。
步骤S702,响应于确定所述第二选定活动以所述第一选定活动作为源的link的目标,所述第二选定活动同步依赖于所述第一选定活动,得到所述第一选定活动和所述第二选定活动间存在所述同步依赖的结果。
本步骤中,当第一选定活动和第二选定活动满足步骤S701和步骤S702中的所有判断条件时,得出第二选定活动依赖于第一选定活动的结论,从而得到所述第一选定活动和所述第二选定活动间存在所述相关依赖的结果。
步骤S503,根据得到的存在所述相关依赖的结果和存在所述同步依赖的结果,连接所述第一程序依赖图中的所述第一选定活动和所述第二选定活动,得到所述活动依赖图。
本步骤中,根据步骤S502中得到的在不同组的第一选定活动和第二选定活动之间存在着相关依赖和同步依赖的结果,在第一程序依赖图中跟距得出的结果采用有向线连接不同组的第一选定活动和第二选定活动,得到活动依赖图,达到根据活动依赖图清楚的了解第一BPEL活动影响到的其余BPEL活动的目的,从而为计算第一BPEL活动的测试重要性并进一步确定测试用例的测试优先级打下了基础。
作为一个可选的实施例,参照图8,前述实施例中的步骤S104,具体包括:
步骤S801,获取所述多个测试用例中至少一个用于测试所述第一BPEL工作流的测试用例作为所述回归测试用例。
其中,由于对第二BPEL工作流的修改可能不止一处,第一BPEL工作流中也应该存在至少一个第一BPEL活动,相应的对每个第一BPEL活动都应该存在一个对应的回归测试用例。
步骤S802,按照所述测试优先级从高到低的顺序排列至少一个所述回归测试用例,按照排列结果执行至少一个所述回归测试用例,回归测试所述第一BPEL工作流,得到所述测试结果。
本步骤中,由第一BPEL工作流按照步骤S502中确定的测试优先级从高到低的顺序执行回归测试用例完成回归测试,根据得到的测试结果得出回归测试成功,第一BPEL工作流中的修改正确或回归测试失败,第一BPEL工作流中的修改存在错误,需要修正后再次进行回归测试的结论。
作为一个可选的实施例,参照图9,前述实施例的步骤S103中,预先生成的所述第二BPEL工作流的多个测试用例,具体的生成步骤,包括:
步骤S901,根据所述第二BPEL工作流生成BPEL控制流图,分解所述BPEL控制流图得到至少一条BPEL活动路径。
其中,BPEL控制流图(BPEL Control Flow Graph,BCFG)是BPEL控制流图是有向图<N1,E1>,其中,N1是一组节点。在N1中只存在一个入口和一个出口节点,而其他节点表示第二BPEL工作流的基本活动和结构化活动。
Figure BDA0003375678670000111
是一组有向边,并且从ni到nj的边<ni,nj>∈E1表示由ni和nj表示第二BPEL工作流中两个基本活动和/或结构化活动之间的控制流(由Yes/No表示)或同步流。
采用解析函数解析第二BPEL工作流以生成对应的BCFG,其中,解析函数根据活动类型化分为以下几类:
(1)基本活动的解析函数,从BPEL过程中读取基本活动的属性,活动的属性包含名称、类型、前驱后继关系、输入输出变量、伙伴link和端口类型,在块结构中,只有在顺序<sequence>活动下的活动之间才存在前驱后继关系。
(2)选择和循环结构活动的解析函数,从BPEL过程中读取此类型活动的属性,其中输入变量从条件condition中解析出来,并且读取对应的条件conditon下的分支活动。
(2)并发/顺序结构活动的解析函数,从BPEL工作流中读取并发机构活动或者顺序结构活动类型的活动节点的活动属性,并且读取其每条子节点。
根据BEPL活动节点的活动属性分别生成第二BPEL工作流的BCFG。
本步骤中,将第二BPEL工作流转化为BCFG后,根据并发BPEL活动路径覆盖标准(当且仅当对于每个可行的并发BPEL活动路径∈BCFG,至少存在一个执行它的测试用例ti∈T时,测试集T满足BCFG的并发BPEL活动路径覆盖准则),把生成的BCFG分解为并发BPEL活动路径。然后,对每个并发BPEL活动路径用几个约束进行符号编码。其中,符号编码不仅包括传统多线程程序(路径,程序顺序和读写约束)的约束,而且还包括BPEL工作流应用(同步和消息约束)的独特特征的约束。
步骤S902,对于所述至少一条BPEL活动路径中的每一条BPEL活动路径,采用求解器处理并生成对应的测试用例。
本步骤中,采用求解器分析对BPEL活动路径进行分析。参照图10,上述步骤S902,具体包括:
步骤S1001,采用求解器判断所述BPEL活动路径的可行性。
其中,采用求解器分析BPEL活动路径,可以快速确定并发BPEL活动路径的可行性。如果并发BPEL活动路径不可行,本申请直接放弃测试这个路径。
本步骤中,采用的求解器可以是基于可满足性模理论(Satisfiability ModuloTheory,SMT)的SMT求解器。
步骤S1002,响应于确定BPEL活动路径具备可行性,采用所述求解器为所述BPEL活动路径生成对应的测试用例。
本步骤中,求解器判断获得有效的测试用例,生成的测试用例包括可行的BPEL活动路径和消息序列。
步骤S1003,把生成的全部所述对应的测试用例作为所述多个测试用例。
本实施例中,根据并发BPEL活动路径覆盖标准对通过解析第二BPEL工作流生成的BCFG进行分解,获取至少一条BPEL活动路径,并采用求解器判断生成的BPEL活动路径的可行性,进一步采用求解器为具备可行性BPEL活动路径生成用于测试这一BPEL活动路径的消息序列。避免了生成无效的测试用例,在进行回归测试时不会运行无效的测试用例导致测试时间的增加和测试工作量的增加。
作为一个可选的实施例,参照图11以信息化保障系统中用于进行舰船申请食品、油料保障的BPEL工作流为例,给出根据前述任一实施例提供的BPEL工作流的回归测试方法对此BPEL工作流进行回归测试的方案。本实施例中还使用提取到的应用程序信息注释节点,如活动的输入和输出参数。此外,本实施例中将节点编号为A1,A2,...,A10。以下是舰船保障申请BPEL工作流的详细说明。在通过活动A1和A2从客户端接收订购信息时,舰船保障申请BPEL工作流应用同时调用水电储量查询服务和食品储量查询服务来查询水电和食品的储量(活动A4和A5)。如果水电和食品的储量大于或等于客户的输入储量(由活动A6验证),则该应用将执行活动A7和A8来为舰船提供水电和食品。否则,此工作流应用程序将调用记录活动RecordService来记录关于客户端的失败保障信息。
在此BPEL工作流使用的过程中,程序员做了一些修正,得到了如图12所示的新的BPEL工作流。修改完成后,需要快速的对这些新的BPEL工作流进行测试,以保证修改不会带来错误。为此,首先,对比图11和图12,通过观察,发现两个BPEL工作流的不同是将图11中的异步调用(活动A9和A10)合并为为图12中的同步调用(活动A9)。根据图11和图12分析BPEL工作流内BPEL活动间的控制依赖、数据依赖和调用依赖,并分别建立其BPEL程序依赖图图13a和图13b。通过程序切片算法显示,两者的程序依赖图是同构的。因此,舰船保障BPEL工作流的修改版本是正确的,无需进行测试,可以直接使用,从而大大节省了测试时间,提高了测试效率。
作为一个可选的实施例,为了更快的提高测试效率,假设对于舰船保障BPEL工作流分别修改了活动A7和A9,根据分析出的修改后的BPEL活动间的相关依赖,建立如图14所示的舰船保障BPEL工作流的活动依赖图。由于修改了BPEL活动A7和A9,需要采用程序切片算法分别得出这两个BPEL活动的修改影响。通过分析图14,可以得出TIA(A7)=1,TIA(A9)=2。在本实施例中假设测试A7和A9的相应测试用例分别为t1和t2且只用于测试A7和A9。因此,TITC(t1)=1,TITC(t2)=2。因此,应该先重新运行测试用例t2。从而,本申请可以通过测试用例排序来提高测试效率。
作为一个可选的实施例,当需要对图12示出的BPEL工作流进行测试时,调用预先生成的图11示出的BPEL工作流的测试用例。在预先生成测试用例时,为保证此BPEL工作流中不产生无效的测试用例,并且产生的测试用例可以有效测试,首先是对此工作流进行并发BPEL活动路径分解。然后在此基础上,对每一条潜在可行路径进行约束建模,从而确定该路径是否为可行路径。如果可行的话,给出该路径的一个测试用例。
该工作流可以分解为两条路径,参考图15、16,每条路径是根据谓词来进行分解得到的,由于图11中的BPEL工作流只有一个谓词,所以只能分解为2条路径。而该BPEL工作流还有一个并发活动,并发活动中如果没有<link>,该并发活动中所有的活动都参与每一条路径的执行,并且执行顺序对结果没有任何影响。
将此两条潜在可行路径分别进行约束建模(路径约束、程序顺序约束、读写约束、同步约束和消息约束),在SMT求解器器Yices的帮助下,本实施例可以获得消息序列,例如,水电补给申请=“100,100”,食品补给申请=“200”,水电储量=“500,500”,食品储量=“400”,水电补给=“ok”,食品补给=“ok”和水电补给申请=“600,600”,食品补给申请=“700”,水电储量=“500,500”,食品储量=“400”,记录=“ok”来分别有效地测试这两条潜在可行路径。
综上所述,本申请实施例提供的BPEL工作流的回归测试方法,通过比较对应的修改后的第一BPEL工作流和未修改的第二BPEL工作流的程序依赖图,判断是否需要回归测试第一BPEL工作流。对于需要回归测试的第一BPEI工作流,调用预先生成的第二BPEL工作流的多个测试用例进行回归测试,回归测试时首先根据第一BPEL工作流计算预先生成的测试用例的测试优先级,然后选择出第二BPEL工作流的多个测试用例中能够测试第一BPEL工作流的修改处的测试用例作为回归测试用例,并按照计算出的测试优先级从高到低的顺序执行回归测试用例对第一BPEL工作流进行测试,得到测试结果。采用本申请提供的BPEL工作流的回归测试方法,可以避免运行不会测试到第一BPEL工作流的修改处的测试用例,减少了不必要测试用例的运行,达到了减少回归测试时间,从而提升测试效率的目的。同时通过分解BPEL工作流得到BPEL获得BPEL活动路径,判断BPEL活动路径的可行性后为具备可行性的BPEL活动路径生成实施例,避免了生成无效的测试用例,在进行回归测试时不会运行无效的测试用例导致测试时间的增加和测试工作量的增加。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种BPEL工作流的回归测试装置。
参考图17,所述BPEL工作流的回归测试装置,包括:
获取模块1701,被配置为:当信息化保障系统发生变动时,获取变动后的第一BPEL工作流和所述第一BPEL工作流对应的变动前的第二BPEL工作流;
判断模块1702,被配置为:生成所述第一BPEL工作流的第一程序依赖图和所述第二BPEL工作流的第二程序依赖图,根据所述第一程序依赖图和所述第二程序依赖图判断是否需要对所述第一BPEL工作流进行回归测试;
计算模块1703,被配置为:响应于确定需要对所述第一BPEL工作流进行回归测试,调用预先生成的所述第二BPEL工作流的多个测试用例,根据所述第一程序依赖图分别计算所述多个测试用例中每个测试用例的测试优先级;
测试模块1704,被配置为:根据所述测试优先级从所述多个测试用例中选择出回归测试用例,回归测试所述第一BPEL工作流,得到测试结果。
作为一个可选的实施例,判断模块1702,还被配置为,识别所述第一BPEL工作流中发生变动的第一BPEL活动,并获取所述第二BPEL工作流中与所述第一BPEL活动对应的第二BPEL活动;采用程序切片算法处理所述第一程序依赖图和所述第二程序依赖图,得到所述第一BPEL活动的第一程序依赖图切片和所述第二BPEL活动的第二程序依赖图切片;比较所述第一程序依赖图切片与所述第二程序依赖图切片是否同构,其中,响应于确定所述第一程序依赖图切片与所述第二程序依赖图切片同构,不需要对所述第一BPEL工作流进行回归测试;响应于确定所述第一程序依赖图切片与所述第二程序依赖图切片不同构,需要对所述第一BPEL工作流进行回归测试。
作为一个可选的实施例,计算模块1703,还被配置为,根据所述第一程序依赖图、所述第一BPEL工作流的相关依赖和同步依赖生成活动依赖图;采用程序切片算法获取所述活动依赖图中所述第一BPEL活动相关的其他各个BPEL活动,统计所述第一BPEL活动与所述其他各个BPEL活动的个数,作为所述第一BPEL活动的测试重要性参数;根据所述测试重要性参数分别确定所述多个测试用例中每个测试用例的所述测试优先级。
作为一个可选的实施例,计算模块1703,还被配置为,对于所述多个测试用例中的每个测试用例,获取所述测试用例测试到的每个所述第一BPEL活动,其中,所述每个测试用例测试至少一个所述第一BPEL活动;分别计算所述测试到的每个所述第一BPEL活动对应的测试重要性参数,并计算全部测试重要性参数的和,根据计算结果确定所述测试用例的所述测试优先级。
作为一个可选的实施例,计算模块1703,还被配置为,选择所述第一BPEL工作流中任意两个BPEL活动分别作为第一选定活动和第二选定活动,分别判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖和所述同步依赖;
判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖,包括:
响应于确定所述第一选定活动和所述第二选定活动都是所述第一BPEL工作流的接收活动,且所述第一选定活动为开始活动,获取所述第一选定活动的属性特征值,其中所述属性特征值为肯定值或否定值;
响应于确定所述第一选定活动的属性特征值为肯定值,所述第二选定活动相关依赖于所述第一选定活动,得到所述第一选定活动和所述第二选定活动间存在所述相关依赖的结果;
判断所述第一选定活动和所述第二选定活动是否存在所述同步依赖,包括:
响应于确定所述第一选定活动和所述第二选定活动在所述第一BPEL工作流的flow活动中,判断所述第二选定活动是否以所述第一选定活动作为源的link的目标,其中,所述flow活动内包含一组可以用任意顺序执行的BPEL活动;
响应于确定判断所述第二选定活动以所述第一选定活动作为源的link的目标,所述第二选定活动同步依赖于所述第一选定活动,得到所述第一选定活动和所述第二选定活动间存在所述同步依赖的结果;
根据得到的存在所述相关依赖的结果和存在所述同步依赖的结果,连接所述第一程序依赖图中的所述第一选定活动和所述第二选定活动,得到所述活动依赖图。
作为一个可选的实施例,测试模块1704,还被配置为,获取所述多个测试用例中至少一个用于测试所述第一BPEL工作流的测试用例作为所述回归测试用例;按照所述测试优先级从高到低的顺序排列至少一个所述回归测试用例,按照排列结果执行至少一个所述回归测试用例,回归测试所述第一BPEL工作流,得到所述测试结果。
作为一个可选的实施例,本申请提供的BPEL工作流的回归测试装置,还包括预生成模块,被配置为:根据所述第二BPEL工作流生成BPEL控制流图,分解所述BPEL控制流图得到至少一条BPEL活动路径;对于所述至少一条BPEL活动路径中的每一条BPEL活动路径,采用求解器判断所述BPEL活动路径的可行性;响应于确定所述BPEL活动路径具备可行性,采用所述求解器为所述BPEL活动路径生成对应的测试用例;把生成的全部所述对应的测试用例作为所述多个测试用例。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的BPEL工作流的回归测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的BPEL工作流的回归测试方法。
图18示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1810、存储器1820、输入/输出接口1830、通信接口1840和总线1850。其中处理器1810、存储器1820、输入/输出接口1830和通信接口1840通过总线1850实现彼此之间在设备内部的通信连接。
处理器1810可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1820可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1820可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1820中,并由处理器1810来调用执行。
输入/输出接口1830用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1840用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1850包括一通路,在设备的各个组件(例如处理器1810、存储器1820、输入/输出接口1830和通信接口1840)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1810、存储器1820、输入/输出接口1830、通信接口1840以及总线1850,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的BPEL工作流的回归测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的BPEL工作流的回归测试方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的BPEL工作流的回归测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种BPEL工作流的回归测试方法,用于信息化保障系统的测试,其特征在于,包括:
当所述信息化保障系统发生变动时,获取变动后的第一BPEL工作流和所述第一BPEL工作流对应的变动前的第二BPEL工作流;
生成所述第一BPEL工作流的第一程序依赖图和所述第二BPEL工作流的第二程序依赖图,根据所述第一程序依赖图和所述第二程序依赖图判断是否需要对所述第一BPEL工作流进行回归测试;
响应于确定需要对所述第一BPEL工作流进行回归测试,调用预先生成的所述第二BPEL工作流的多个测试用例,根据所述第一程序依赖图分别确定所述多个测试用例中每个测试用例的测试优先级;
根据所述测试优先级从所述多个测试用例中选择出回归测试用例,回归测试所述第一BPEL工作流,得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一程序依赖图和所述第二程序依赖图判断是否需要对所述第一BPEL工作流进行回归测试,包括:
识别所述第一BPEL工作流中发生变动的第一BPEL活动,并获取所述第二BPEL工作流中与所述第一BPEL活动对应的第二BPEL活动;
采用程序切片算法处理所述第一程序依赖图和所述第二程序依赖图,得到所述第一BPEL活动的第一程序依赖图切片和所述第二BPEL活动的第二程序依赖图切片;
比较所述第一程序依赖图切片与所述第二程序依赖图切片是否同构,其中,响应于确定所述第一程序依赖图切片与所述第二程序依赖图切片同构,不需要对所述第一BPEL工作流进行回归测试;
响应于确定所述第一程序依赖图切片与所述第二程序依赖图切片不同构,需要对所述第一BPEL工作流进行回归测试。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一程序依赖图分别确定所述多个测试用例中每个测试用例的测试优先级,包括:
根据所述第一程序依赖图、所述第一BPEL工作流的相关依赖和同步依赖生成活动依赖图;
采用程序切片算法获取所述活动依赖图中所述第一BPEL活动相关的其他各个BPEL活动,统计所述第一BPEL活动与所述其他各个BPEL活动的个数,作为所述第一BPEL活动的测试重要性参数;
根据所述测试重要性参数分别确定所述多个测试用例中每个测试用例的所述测试优先级。
4.根据权利要求3所述的方法,其特征在于,所述根据所述测试重要性参数分别确定所述多个测试用例中每个测试用例的所述测试优先级,包括:
对于所述多个测试用例中的每个测试用例,获取所述测试用例测试到的每个所述第一BPEL活动,其中,所述每个测试用例测试至少一个所述第一BPEL活动;
分别计算所述测试到的每个所述第一BPEL活动对应的测试重要性参数,并计算全部测试重要性参数的和,根据计算结果确定所述测试用例的所述测试优先级。
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一程序依赖图、所述第一BPEL工作流的相关依赖和同步依赖,生成活动依赖图,包括:
选择所述第一BPEL工作流中任意两个BPEL活动分别作为第一选定活动和第二选定活动,分别判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖和所述同步依赖;
判断所述第一选定活动和所述第二选定活动间是否存在所述相关依赖,包括:
响应于确定所述第一选定活动和所述第二选定活动都是所述第一BPEL工作流的接收活动,且所述第一选定活动为开始活动,获取所述第一选定活动的属性特征值,其中所述属性特征值为肯定值或否定值;
响应于确定所述第一选定活动的属性特征值为肯定值,所述第二选定活动相关依赖于所述第一选定活动,得到所述第一选定活动和所述第二选定活动间存在所述相关依赖的结果;
判断所述第一选定活动和所述第二选定活动是否存在所述同步依赖,包括:
响应于确定所述第一选定活动和所述第二选定活动在所述第一BPEL工作流的flow活动中,判断所述第二选定活动是否以所述第一选定活动作为源的link的目标,其中,所述flow活动内包含一组可以用任意顺序执行的BPEL活动;
响应于确定判断所述第二选定活动以所述第一选定活动作为源的link的目标,所述第二选定活动同步依赖于所述第一选定活动,得到所述第一选定活动和所述第二选定活动间存在所述同步依赖的结果;
根据得到的存在所述相关依赖的结果和存在所述同步依赖的结果,连接所述第一程序依赖图中的所述第一选定活动和所述第二选定活动,得到所述活动依赖图。
6.根据权利要求1所述的方法,其特征在于,所述根据所述测试优先级从所述多个测试用例中选择出回归测试用例,回归测试所述第一BPEL工作流,得到测试结果,包括:
获取所述多个测试用例中至少一个用于测试所述第一BPEL工作流的测试用例作为所述回归测试用例;
按照所述测试优先级从高到低的顺序排列至少一个所述回归测试用例,按照排列结果执行至少一个所述回归测试用例,回归测试所述第一BPEL工作流,得到所述测试结果。
7.根据权利要求1所述的方法,其特征在于,所述预先生成的所述第二BPEL工作流的多个测试用例的生成步骤,包括:
根据所述第二BPEL工作流生成BPEL控制流图,分解所述BPEL控制流图得到至少一条BPEL活动路径;
对于所述至少一条BPEL活动路径中的每一条BPEL活动路径,
采用求解器判断所述BPEL活动路径的可行性;
响应于确定所述BPEL活动路径具备可行性,采用所述求解器为所述BPEL活动路径生成对应的测试用例;
把生成的全部所述对应的测试用例作为所述多个测试用例。
8.一种BPEL工作流的回归测试装置,包括:
获取模块,被配置为:当信息化保障系统发生变动时,获取变动后的第一BPEL工作流和所述第一BPEL工作流对应的变动前的第二BPEL工作流;
判断模块,被配置为:生成所述第一BPEL工作流的第一程序依赖图和所述第二BPEL工作流的第二程序依赖图,根据所述第一程序依赖图和所述第二程序依赖图判断是否需要对所述第一BPEL工作流进行回归测试;
计算模块,被配置为:响应于确定需要对所述第一BPEL工作流进行回归测试,调用预先生成的所述第二BPEL工作流的多个测试用例,根据所述第一程序依赖图分别计算所述多个测试用例中每个测试用例的测试优先级;
测试模块,被配置为:根据所述测试优先级从所述多个测试用例中选择出回归测试用例,回归测试所述第一BPEL工作流,得到测试结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。
CN202111415729.1A 2021-11-25 2021-11-25 Bpel工作流的回归测试方法及相关设备 Pending CN114328179A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111415729.1A CN114328179A (zh) 2021-11-25 2021-11-25 Bpel工作流的回归测试方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111415729.1A CN114328179A (zh) 2021-11-25 2021-11-25 Bpel工作流的回归测试方法及相关设备

Publications (1)

Publication Number Publication Date
CN114328179A true CN114328179A (zh) 2022-04-12

Family

ID=81047329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111415729.1A Pending CN114328179A (zh) 2021-11-25 2021-11-25 Bpel工作流的回归测试方法及相关设备

Country Status (1)

Country Link
CN (1) CN114328179A (zh)

Similar Documents

Publication Publication Date Title
CN111209005B (zh) 程序文件的编译方法、装置和计算机可读存储介质
US9317330B2 (en) System and method facilitating performance prediction of multi-threaded application in presence of resource bottlenecks
CN109684607A (zh) Json数据解析方法、装置、计算机设备和存储介质
CN108804304B (zh) 测试用例生成方法及装置、存储介质、电子设备
CN114077534B (zh) 测试用例生成方法、装置和计算机可读存储介质
US20210019193A1 (en) Agent driven cluster gating for service management
Mirandola et al. A reliability model for service component architectures
CN112035229A (zh) 一种计算图处理方法、装置及存储介质
CN116560683A (zh) 软件更新方法、装置、设备及存储介质
JP2018169693A (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN112559343B (zh) 测试路径生成方法及相关设备
CN115525534A (zh) 基于swagger的接口测试的测试用例生成方法、生成平台
CN112395339A (zh) 系统间数据准入校验方法、装置、计算机设备和存储介质
US10289788B1 (en) System and method for suggesting components associated with an electronic design
CN109977005B (zh) 端到端测试方法、介质、装置和计算设备
CN114328179A (zh) Bpel工作流的回归测试方法及相关设备
CN116185425A (zh) 基于节点组合的事件流程编排方法、装置、设备及介质
CN114697398B (zh) 数据处理方法、装置、电子设备、存储介质及产品
Lebedev et al. DDS: The dynamic deployment system
CN115455006A (zh) 数据处理方法、数据处理装置、电子设备及存储介质
CN115470152A (zh) 测试代码生成方法、测试代码生成装置以及存储介质
CN114327673A (zh) 一种任务启动方法、装置、电子设备及存储介质
WO2022017753A1 (en) Computer system and method for validation of parallelized computer programs
CN113626307A (zh) 一种基于k8s容器平台的数据校验方法和装置
US20150121351A1 (en) Generating configuration data based on application definitions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination