丁明,张书玲,张琛
(1.西北大学信息科学与技术学院,710127,西安;2.中航工业西安航空计算技术研究所,710119,西安;3.西安电子科技大学计算机学院,710071,西安)
业务流程建模与测试方法研究
丁明1,2,张书玲1,张琛3
(1.西北大学信息科学与技术学院,710127,西安;2.中航工业西安航空计算技术研究所,710119,西安;3.西安电子科技大学计算机学院,710071,西安)
针对复杂业务流程设计测试效率低、自动化程度不高、测试用例正确性难以保证的问题,在研究接口自动机模型的基础上,提出了一种基于模型的业务流程测试方法。该方法首先采用扩展带约束的接口自动机对业务流程设计进行形式化描述,并给出了从业务流程设计模型到带约束的接口自动机模型的转换算法;然后基于模型完成了对业务流程设计与需求的一致性验证,将验证后的接口自动机模型作为业务流程的测试模型,通过其特有的“乐观方法”和博弈思想实现了流程间的嵌套调用组合;最后定义了业务流程的测试覆盖准则,并在满足活动约束条件组合覆盖准则的前提下,设计了相应的测试用例生成算法。实例分析表明:该方法能够简化测试过程,可用于业务流程设计的测试用例自动化生成,有效保证了测试用例的正确性,提高了测试效率。
业务流程;接口自动机;覆盖准则;测试用例
复杂业务流程节点数量多、活动及关系复杂,且流程之间相互嵌套调用,从而导致测试复杂度较高。通过对业务流程的节点、活动、约束、迁移关系等构成元素进行抽象,并采用形式化方法进行描述,可实现对业务流程设计与需求的一致性以及流程的死锁、可达性等验证[1-4]。通过验证的形式化模型可作为业务流程的测试模型,依据测试覆盖准则,实现基于模型的测试用例自动化生成[5],能够有效保证测试用例的正确性,提高业务流程设计的测试效率。
对业务流程的验证和测试,目前已提出了多种形式化模型。文献[6]中应用有限状态机对业务流程进行建模和一致性验证,并根据迁移覆盖和状态覆盖生成测试用例;文献[7]使用Petri网对业务流程进行建模,Petri网具有直观的图形化表示、精确的语义、强大的表达能力和基于状态而不是基于事件等优点;文献[8]应用Pi演算进行Web服务组合验证,作为一种理论成熟的进程代数方法,Pi演算使用基于文本的进程表达式描述系统,具有形式简单、表达能力强等优点。接口自动机(Interface Automata)是一种轻量级的形式化模型[9],采用“乐观方法”来定义组合问题,并用博弈理论进行解释,本文采用带约束的接口自动机(CIA)作为描述业务流程的形式化模型。
1.1 业务流程的定义与表示
Hammer等给出了业务流程的经典定义:业务流程由一组创造价值的活动组合而成,活动有且仅有一个输入,不少于一个输出结果,输出结果表示客户价值的增值[10]。典型的业务流程包括输入资源、按一定规则执行的活动、活动之间的相互关系和作用(即结构)、输出结果、顾客、流程创造的价值等要素。为了准确、完整地描述流程执行过程,采用十二元组定义M=(O,Ai,Ae,Ao,A,S,E,C,β,φ,α,t),其中:O是流程中所有节点的集合;Ai是节点中的内部活动,其执行与其他流程无交互关系,活动执行后转至其他节点;Ae是节点中的输入活动,必须等待其他流程的输入激活,活动执行后转至其他节点;Ao是节点中的输出活动,其执行必定激活其他流程,同时流程转至其他节点;A是流程中所有活动的集合,A=Ai∪Ae∪Ao;S是开始节点,每个流程有且只有唯一的开始节点;E是终止节点的集合,每个流程至少有一个终止节点;C是活动约束条件的集合;β是Ai、C到O的一个函数关系,β(co,ai)∈O,co∈C,ai∈Ai是ai所属节点和执行的约束条件;φ是Ae、C到O的一个函数关系,φ(co,ae)∈O,co∈C,ae∈Ae是ae所属节点和执行的约束条件;α是Ao、C到O的一个函数关系,α(co,ao)∈O,co∈C,ao∈Ao是ao所属节点和执行的约束条件;t是流程节点之间转移的迁移函数,O×A→O,t(o,a)=o′,o∈O,o′∈O,a∈A表示从一个节点执行活动后到达另一个节点。
1.2 业务流程的扩展接口自动机模型
文献[9]中Luca等提出了接口自动机理论,可用于描述组件接口的时序性,即接口交互活动间的先后顺序关系。接口自动机采用“乐观方法”判别接口组合兼容性,可大幅削减组合后的接口状态,是一种轻量级的自动机模型。
定义带约束的接口自动机P的一个执行片段是状态与活动(含约束)交替排列的有限序列v0a0[c0]v1a1[c1]…vn,其中(vi,ci,ai,vi+1)∈KP,0≤i 为了实现业务流程的CIA描述,定义复杂业务流程的带约束的接口自动机模型构造算法。 算法1构造业务流程带约束的接口自动机模型 输入业务流程的十二元组描述 输出业务流程的带约束的接口自动机模型 (1)CIA的状态集合VP=O,业务流程中的一个节点对应一个状态; (6)状态迁移集合,包含迁移前后状态和活动之间的关系,TP={(v,a,v′)|v∈O∧v′∈O∧a∈A∧t(v,a)=v′}; (7)约束条件集合CP=C,业务流程活动约束条件对应自动机的活动约束; (10)CIA的带约束的活动迁移集合KP⊆MP×TP={(v,c,a,v′)|(c,a)∈MP∧(v,a,v′)∈TP}。 1.3 业务流程间嵌套调用建模 业务流程之间相互嵌套调用时,执行业务流程中的输出活动,会向外部发送调用消息,启动另一业务流程;另一方面,输入活动激活需等待另一流程发送的消息。多个业务流程互相交互调用的过程,在设计测试用例时可进行组合,成为一个组合的业务流程,从而简化测试用例生成。业务流程的相互调用可转化为带约束的接口自动机组合,两个带约束的接口自动机P和Q,组合的过程需先判断P和Q中带约束的活动是否满足组合条件。 定义两个接口自动机P、Q若满足条件 ∅,∅, 则称它们是可组合的。 两个CIA组合后形成的P×Q中可能存在某个状态下P中带约束的输出活动不能满足Q中带约束的输入活动,或在某个状态下Q中带约束的输出活动不能满足P中带约束的输入活动,即两个待组合的CIA中带约束的输入和输出活动不匹配,定义为到达了非法状态,组合是不兼容的。 通过上述方法,可实现业务流程的形式化描述,可转化为带约束的接口自动机,通过模型检测方法验证业务流程设计模型与需求的一致性,以及流程的死锁、可达性等。经过验证的业务流程CIA模型将用于测试用例的生成。 本文定义的复杂业务流程的测试用例生成过程如图1所示,使用CIA模型形式化描述业务流程,并进行流程设计与需求的一致性验证,确认后的CIA模型可采用“乐观方法”处理组合问题,描述流程间的嵌套调用。针对合并后的CIA模型,定义覆盖准则,设计算法,自动生成满足覆盖准则的测试用例。 图1 复杂业务流程的测试用例生成过程 2.1 覆盖准则定义 为了使设计的测试用例满足要求的覆盖程度,测试用例生成需遵循一定的覆盖标准。定义一个测试集合D和一个待测试的业务流程M,测试的覆盖标准包括:①节点覆盖,D必须保证M中的每个节点至少运行一次,节点覆盖对活动覆盖较少,是较容易满足的测试准则,需要的测试用例相对较少;②活动覆盖,D必须保证M中的每个活动至少执行一次,活动覆盖比节点覆盖强,但覆盖程度仍不高;③活动约束条件覆盖,D不仅保证业务流程中每个活动至少执行一次,而且对活动约束条件表达式中每个条件变量各种可能结果都执行一次,通常情况下活动约束条件覆盖通常比活动覆盖强,因为活动覆盖只遍历整个活动约束条件表达式的值,而活动约束条件覆盖使每个条件变量都取得不同的结果;④活动约束条件组合覆盖,D保证覆盖业务流程所有活动约束条件表达式中所有条件变量的各种组合可能都至少出现一次。 上述的4类覆盖标准中,活动约束条件组合覆盖是最强的覆盖准则,符合该准则的测试用例,可以满足活动覆盖和活动约束条件覆盖标准。本文在满足活动约束条件组合覆盖准则的前提下,给出业务流程的测试用例定义和生成过程。 2.2 测试用例生成 业务流程的测试用例(BPTC)是为了达到用户的业务需求目标而设计的一组测试输入、执行条件和预期结果,用以确认业务流程中的某个场景是否满足用户需求。BPTC是流程中从开始节点到终止节点的一个执行序列,在使用CIA模型描述的业务流程设计中,包含了产生测试用例所需的信息,一个测试用例对应从初始状态到某个终止状态的带约束可达的执行片段。根据业务流程活动约束条件组合覆盖准则和测试用例定义,测试用例设计与生成可采用以下算法。 算法2业务流程测试用例集生成算法 输入带约束的接口自动机P 输出测试用例集合D (1)遍历P中约束条件集合CP,列出所有约束条件。 (2)遍历集合CP中每个约束条件变量各种可能取值,生成约束条件取值的全排列组合。 (4)通过以上的步骤,在P中为每个约束条件组合序列对应生成一个从初始状态到终止状态的执行片段。一个执行片段对应生成一条测试用例,所有执行片段集合即为D。 本节以简化的银行理财产品购买流程为例,说明业务流程的建模与测试用例生成过程。根据产品风险特性,一般将理财产品风险由低到高分为5个级别,用户允许购买的理财产品风险必须小于等于用户可接受的风险等级。用户购买理财产品的业务流程包括登录系统、确认用户类型、选择理财产品、输入购买金额、执行购买等过程,流程执行过程中嵌套调用用户可接受风险测评和计算理财产品余额两个子流程。使用业务流程建模与标注(BPMN)标准规范描述的流程如图2、3、4所示。 根据定义,图2、3、4所示业务流程分别表示为M1、M2、M33个十二元组。使用算法1定义的构造方法,流程对应的CIA模型P1、P2、P3,如图5、6、7所示。模型中输入活动用“?”表示,输出活动用“!”表示,未标识的为内部活动。 P1、P2、P3满足定义的模型组合条件,组合后的CIA模型表示为Q=(P1×P2)×P3,如图8所示。 根据算法2定义的测试用例集生成方法,组合后的接口自动机模型Q中所有约束条件取值的组合如表1所示,测试用例集合为D。按照每个组合序列,从CIA模型的初始状态开始,根据约束条件取值进行状态遍历到终止状态结束,状态遍历中循环限制至多出现一次,得到测试用例集合D包含6条测试用例,可以覆盖表1约束条件取值组合,每条测试用例对应带约束的接口自动机Q中一个初始状态{状态a}到终止状态集{状态i,状态t,状态r}的执行片段。 图2 理财购买流程 图3 用户可接受风险测评流程 图4 计算理财产品余额流程 图5 M1流程的CIA模型P1 图6 M2流程的CIA模型P2 图7 M3流程的CIA模型P3 表1 约束条件取值组合 良好的业务流程设计与实现是保证企业流程运行的关键,对复杂的业务流程进行验证、测试是一项具有挑战性的工作,尤其是复杂流程间的相互嵌套调用。文中采用扩展的带约束条件的接口自动机描述业务流程设计模型,通过接口自动机特有的“乐观方法”和博弈思想处理流程间的嵌套调用组合,简化了测试过程,并定义了测试覆盖准则,实现测试用例的自动生成。将其应用于业务流程管理实施中,可实现测试工作的早期规划,提高测试的自动化程度和测试效率。 [1] 雷丽晖, 段振华. 一种基于扩展有限自动机验证组合Web服务的方法 [J]. 软件学报, 2007, 18(12): 2980-2990. LEI Lihui, DUAN Zhenhua. An extended deterministic finite automata based method for the verification of composite web services [J]. Journal of Software, 2007, 18(12): 2980-2990. [2] 张广泉, 狄浩军, 石慧娟, 等. 基于扩展自动机的服务组合静态与动态验证方法 [J]. 通信学报, 2012, 33(s1): 1-8. ZHANG Guangquan, DI Haojun, SHI Huijuan, et al. Static and dynamic verifying method based on extended finite automata for service compositions [J]. Journal on Communications, 2012, 33(s1): 1-8. [3] 骆翔宇, 轩爱成, 沙宗鲁. 基于时间自动机的Web服务模型检测 [J]. 计算机科学, 2010, 37(8): 139-144. LUO Xiangyu, XUAN Aicheng, SHA Zonglu. Model checking web services based on timed automata [J]. Computer Science, 2010, 37(8): 139-144. [5] LIU S, NAKAJIMA S. A decompositional approach to automatic test case generation based on formal specifications [C]∥Proceedings of the 4th International Conference on Secure Software Integration and Reliability Improvement. Piscataway, NJ, USA: IEEE, 2010: 147-155. [6] DE MASELLIS R, MAGGI F M, MONTALI M. Monitoring data-aware business constraints with finite state automata [C]∥Proceedings of International Conference on Software and System. New York, USA: ACM, 2014: 134-143. [7] CLEMPNER J. Verifying soundness of business processes: a decision process Petri nets approach [J]. Expert Systems with Applications, 2014, 41(11): 5030-5040. [8] YUAN M, HUANG Z, LI X, et al. Towards a formal verification approach for business process coordination [C]∥Proceedings of 2010 IEEE 8th International Conference on Web Services. Piscataway, NJ, USA: IEEE, 2010: 362-368. [9] DE ALFARO L, HENZINGER T A. Interface automata [C]∥Proceedings of the 8th European Software Engineering Conference held jointly with 9th ACM SIGSOFT International Symposium on the Foundations of Software Engineering. New York, USA: ACM, 2001: 109-120. [10]HAMMER M, CHAMPY J. Reengineering the corporation: a manifesto for business revolution (Collins business essentials) [M]. New York, USA: HarperCollins, 2009. (编辑 赵炜) Modeling and Testing Methods of Business Process DING Ming1,2,ZHANG Shuling1,ZHANG Chen3 (1. School of Information Science and Technology, Northwest University, Xi’an 710127, China;2. Xi’an Aeronautics Computing Technique Research Institute, Aviation Industry Corporation of China, Xi’an 710119, China;3. School of Computer Science and Technology, Xidian University, Xi’an 710071, China) To improve the automation level as well as the efficiency and accuracy of complex business process, and on the basis of studying interface automata models, a novel model-based testing approach for business processes is proposed. First, the extended constraint interface automata are used to describe the business process design. The algorithm for transforming the design models into constraint interface automata is presented. Furthermore, the consistency of business process design with requirements is verified. The verified interface automata are regarded as the test models of business processes. Optimistic approach and game theory are used to model the nested calls among business processes. Finally, the coverage criteria of business process test are defined. And the algorithm for test cases generating is given to satisfy the constraint combinations. Case studies show that this approach can be used for automatic generation of test cases for business process design and reduce the complexity of test cases generation and hence ensuring the correctness of test cases. business process; interface automata; coverage criteria; test case 10.7652/xjtuxb201603020 2015-07-08。 作者简介:丁明(1982—),男,博士生;张书玲(通信作者),男,教授,博士生导师。 基金项目:国家自然科学基金资助项目(61502365)。 TP311 :A :0253-987X(2016)03-0127-062 基于接口自动机的测试用例生成
3 实例分析
4 结束语