


摘要:文章以更好地實現服務組合測試為目標,提出基于BPEL的Web服務組合測試路徑生成方法。首先將應用于描述BPEL流程的模型WFDAG,通過DAG對Web服務工作流進行建模,有效保證數據流測試路徑的生成。然后以此為基礎應用擴展后的分析方法,并采取覆蓋原則ALL-USES進行數據流測試。最后以變量信息為指標分析所構建的WFDAG模型,從而獲取符合所有既定數據流標準的測試路徑。
關鍵詞:BPEL;Web服務組合;測試路徑生成;WFDAG
中圖法分類號:TP393 文獻標識碼:A
1 引言
BPEL 能夠使當前基礎的Web 服務根據特定的應用邏輯構成特性更加復雜的業務集合,實現服務的重復應用與價值提升[1] 。但其復雜性會對服務組合測試造成較大的影響。實現服務組合測試需與測試用例相結合,通過測試路徑生成測試用例[2] 。基于數據流覆蓋的測試原則保證服務組合的正確性是當前最直接、有效的方式,其主要是對某設定的輸入獲取對應期望輸出[3] ,同時利用某些變量的定義完成輸入、輸出間的關聯,該方法具有較為直觀的呈現結果。當前,國內外針對數據流相關測試標準方面開展的試驗工作尚少[4] 。所以,為解決基于BPEL 的服務組合測試路徑生成中存在的問題,需要先提出生成測試路徑的方法,以獲取符合所有既定數據流標準的測試路徑。
2 BPEL 與Web 服務組合
2.1 BPEL
BPEL(Business Process Execution Language)是結合業務流程與Web 服務組合的一種業務流程執行語言,其是以XML 的流程描述語言為基礎的一種強有力工具,可為Web 服務技術提供支持。BPEL 可實現業務流程結構的規范化處理以及Web 服務的開發,依賴于WSDL 規范且全部需要的外部資源均被稱為WSDL 服務,能夠對流程內的數據進行管理,以提高其傳輸有效性,同時還能夠實現生命周期管理的優化,提升管理效率。
2.2 Web 服務組合
Web 服務組合是通過輕量級服務構建復雜性服務,實現服務體系的整體規范化、系統化、綜合化,其具有實踐性,為企業服務自動化奠定了基礎。其中,輕量級服務表示規模小、簡單易操作的任務功能,復雜性服務表示構建功能較全或針對用戶需求制定的服務,可最大程度地滿足用戶需要。在輕量級服務過渡至復雜性服務時,需要對所有Web 服務進行連接,以構建一個統一的整體,從而提升企業管理效率。
3 Web 服務工作流建模
WFDAG ( Work Flow DAG) 基于有向無環圖(Directed Acyclic Graph, DAG)增加了對BPEL 并發控制與同步依賴關系的處理并統計了相關數據,以便開展數據流分析,從而獲得測試路徑。DAG 為一個無環的有向圖,被廣泛應用于描述業務邏輯,其具有簡單、直觀等優勢,因此,通過DAG 對Web 服務工作流進行建模,WFDAG 構成如下。
3.1 開始節點和結束節點
整體工作流的入、出口點分別通過開始、結束節點表示。二者分別負責統計整體工作流的輸入參數列表和返回值。在WFDAG 中將開始和結束節點表示為2 個特殊的節點,開始、結束節點分別通過S,E描述,具體見圖1。
3.2 活動和連接
如圖1 所示,小寫字母為WFDAG 內除開始、結束節點外的節點,表示一個活動,指的是某一Web 服務的一項具體操作;一條有向弧段表示一個連接,負責連接2 個相鄰的活動,描述了活動間的運行順序,且儲存2 個相鄰Web 服務輸入與輸出的匹配關系。
3.3 有效性
為實現有效、正確的解析,要求WFDAG 設計必須遵循以下要求: (1) WFDAG 內不存在環; (2)WFDAG 之外無孤立活動;(3)所有連接表示參數匹配,兩端的參數類型一致。
3.4 WFDAG 的遍歷及BPEL 文檔的生成
該模型的核心算法主要包括有效性檢驗、WFDAG 的遍歷2 部分。在有效性檢驗方面,主要對WFDAG 是否存在環進行判斷,而通過DAG 構建Web服務工作流模型的重點為WFDAG 的遍歷算法,其過程如下。由于WFDAG 表示的是Web 服務工作流的業務流程,對其所有節點的訪問次序表示為工作流的業務邏輯,即遍歷路徑不隨機且須從開始節點展開開始遍歷,因此工作流中的服務之間存在一種依賴關系。例如,隨機相鄰的2 個Web 服務a 與b 的連接方向若為a 指向b,則b 依賴于a,主要原因是b 可以有效執行的基礎是a 已經完成執行且將a 的返回結果指配給b。基于這種依賴關系,采取的遍歷算法稱為基于依賴的遍歷方式,需要通過Visitor 設計模式對WFDAG 進行設計,并對節點進行具體的訪問操作,即將生成BPEL 的元素封裝至Visitor 接口的實現類中,
通過實現Visitor 的具體類來生成BPEL 文檔的各個部分。
4 測試路徑生成
4.1 擴展傳統的數據流分析方法
本文采用基于有向無環圖的可抵達定義分析法,并應用ALL?USES 的覆蓋準則(即測試路徑覆蓋所有定義?使用對)。已知傳統的可抵達定義計算公式如下:
5 結束語
針對基于BPEL 的Web 服務組合的測試路徑生成問題,先對BPEL 流程建模,獲取相關變量信息并構建可擴展的有向無環圖WFDAG 模型,并以此為基礎按照ALL?USES 準則進行測試,得出服務組合符合ALL?USES 的測試路徑。未來還可以通過在建模方法的核心結構中加入復雜語法、驗證BPEL 流程中數據流的屬性等方式對本文方法展開進一步的研究。
參考文獻:
[1] 徐克圣,王蘭.基于BPEL 的WEB 服務組合測試路徑生成[J].大連交通大學學報,2020,41(2):94?99.
[2] 鐵威,黃志球,王進.基于BPEL 的RESTFUL WEB 服務異步交互及組合研究[J].計算機工程與科學,2013,35(4):29?36.
[3] 周子健,劉冬梅.基于PETRI 網自動化構建BPEL 流程的SMV 模型[J].計算機與數字工程,2021,49(10):2062?2068+2132.
[4] 張亞.服務組合BPEL 測試序列生成研究[J].計算機科學,2017,44(1):203?207+225.
作者簡介:董天驕(1981—),本科,工程師,研究方向:計算機科學與技術。