丁明,張書玲,張琛
(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-06











2 基于接口自動機的測試用例生成


3 實例分析







4 結束語