本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體地,涉及一種流程引擎的測(cè)試方法及裝置。
背景技術(shù):
流程引擎包括了產(chǎn)品可以執(zhí)行的所有方法流程的樣例,其負(fù)責(zé)解析各類流程模板。為了確保產(chǎn)品的質(zhì)量,保證產(chǎn)品運(yùn)行的穩(wěn)定性,目前,在產(chǎn)品的開(kāi)發(fā)過(guò)程中,均需要對(duì)該產(chǎn)品流程引擎進(jìn)行測(cè)試,確保該流程引擎能夠?qū)λ辛鞒棠0逭_解析。
現(xiàn)有技術(shù)對(duì)流程引擎的測(cè)試需要人工首先繪制流程模板,再由產(chǎn)品執(zhí)行該流程模板,以判斷實(shí)際執(zhí)行結(jié)果與預(yù)期執(zhí)行結(jié)果是否一致。
然而,人工繪制各種流程模板有很大的盲區(qū),很難保證各種情況的全覆蓋,需要技術(shù)人員具有很豐富的經(jīng)驗(yàn)。并且,繪制出大量的、復(fù)雜的流程模板需要消耗巨大的人力資源,人力成本過(guò)高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種流程引擎的測(cè)試方法及裝置,用以解決現(xiàn)有技術(shù)中流程引擎測(cè)試的精確度較低以及成本過(guò)高的技術(shù)問(wèn)題。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種流程引擎的測(cè)試方法,所述方法應(yīng)用于測(cè)試裝置,所述測(cè)試裝置包括多種類型的流程規(guī)則,所述方法包括:
根據(jù)所述多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板;
對(duì)生成的每個(gè)所述流程模板執(zhí)行以下操作:
根據(jù)流程引擎執(zhí)行所述流程模板,得到實(shí)際執(zhí)行結(jié)果;
確定所述實(shí)際執(zhí)行結(jié)果與所述流程模板的預(yù)期執(zhí)行結(jié)果是否一致。
可選地,所述流程規(guī)則包括以下至少一種類型的規(guī)則:
流程圖拓?fù)漕愐?guī)則、資源分配類規(guī)則、運(yùn)行期控制類規(guī)則。
其中,所述流程圖拓?fù)漕愐?guī)則是指如順序執(zhí)行、選擇執(zhí)行、并發(fā)執(zhí)行、子流程等規(guī)則;所述資源分配類規(guī)則是指如參與人分配、多人辦理方式、節(jié)點(diǎn)應(yīng)用程序類型等規(guī)則,這類規(guī)則決定不同的屬性設(shè)置所產(chǎn)生的差異結(jié)果;所述運(yùn)行期控制類規(guī)則是指如啟動(dòng)、掛起、回退等流程實(shí)例的控制操作,也就是說(shuō),執(zhí)行某種控制操作,會(huì)導(dǎo)致對(duì)象發(fā)生狀態(tài)遷移。
可選地,所述測(cè)試裝置還存儲(chǔ)有不同類型的流程規(guī)則之間的依賴關(guān)系,所述根據(jù)所述多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板,包括:
利用所述依賴關(guān)系組合所述多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板。
可選地,所述方法還包括:
在所述測(cè)試裝置中增加新類型的流程規(guī)則,并設(shè)置新類型的所述流程規(guī)則與其他類型的流程規(guī)則之間的依賴關(guān)系。
可選地,所述方法還包括:
在確定每個(gè)所述流程模板的實(shí)際執(zhí)行結(jié)果與預(yù)期執(zhí)行結(jié)果均一致時(shí),提示流程引擎測(cè)試成功。
本發(fā)明還提供一種流程引擎的測(cè)試裝置,包括:
存儲(chǔ)單元,用于存儲(chǔ)多種類型的流程規(guī)則;
生成單元,用于根據(jù)所述多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板;
執(zhí)行單元,用于對(duì)生成的每個(gè)所述流程模板執(zhí)行以下操作:
根據(jù)流程引擎執(zhí)行所述流程模板,得到實(shí)際執(zhí)行結(jié)果;
確定單元,用于確定所述實(shí)際執(zhí)行結(jié)果與所述流程模板的預(yù)期執(zhí)行結(jié)果是否一致。
可選地,所述存儲(chǔ)單元用于,存儲(chǔ)以下至少一種類型的規(guī)則:
流程圖拓?fù)漕愐?guī)則、資源分配類規(guī)則、運(yùn)行期控制類規(guī)則。
可選地,所述存儲(chǔ)單元還用于存儲(chǔ)不同類型的流程規(guī)則之間的依賴關(guān)系;
所述生成單元用于,利用所述依賴關(guān)系組合所述多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板。
可選地,所述裝置還包括:
規(guī)則更新單元,在所述存儲(chǔ)設(shè)備中增加新類型的流程規(guī)則,并設(shè)置新類型的所述流程規(guī)則與其他類型的流程規(guī)則之間的依賴關(guān)系。
可選地,所述裝置還包括:
提示單元,在所述確定單元確定每個(gè)所述流程模板的實(shí)際執(zhí)行結(jié)果與預(yù)期執(zhí)行結(jié)果均一致時(shí),提示流程引擎測(cè)試成功。
通過(guò)上述技術(shù)方案,流程引擎的測(cè)試裝置可以基于不同類型的規(guī)則自動(dòng)生成流程模板,避免了人工繪制流程模板,減少了人力成本。并且,相較于技術(shù)人員根據(jù)經(jīng)驗(yàn)繪制流程模板,本發(fā)明的測(cè)試裝置基于流程規(guī)則生成的流程模板更加全面,保證了對(duì)流程引擎的測(cè)試沒(méi)有遺漏,進(jìn)而保障了產(chǎn)品的質(zhì)量。
具體地,本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。
附圖說(shuō)明
附圖是用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與下面的具體實(shí)施方式一起用于解釋本發(fā)明,但并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1是本發(fā)明實(shí)施例提供的一種流程模板的示意圖;
圖2是本發(fā)明實(shí)施例提供的一種流程引擎的測(cè)試方法的流程示意圖;
圖3A至圖3C是本發(fā)明實(shí)施例提供的一種流程圖拓?fù)漕愐?guī)則的示意圖;
圖4是本發(fā)明實(shí)施例提供的另一種流程引擎的測(cè)試方法的流程示意圖;
圖5A是本發(fā)明實(shí)施例提供的一種流程引擎的測(cè)試裝置的結(jié)構(gòu)示意圖;
圖5B是本發(fā)明實(shí)施例提供的另一種流程引擎的測(cè)試裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說(shuō)明和解釋本發(fā)明,并不用于限制本發(fā)明。
為了使本領(lǐng)域的技術(shù)人員更容易理解本發(fā)明實(shí)施例提供的技術(shù)方案相較現(xiàn)有技術(shù)所具有的改進(jìn),下面首先對(duì)現(xiàn)有技術(shù)進(jìn)行簡(jiǎn)單介紹。
如圖1所示,圖1是一種流程模板的示意圖,該流程模板的執(zhí)行方法為:在節(jié)點(diǎn)1完成后,創(chuàng)建2,其中,缺省情況下,節(jié)點(diǎn)1是完成態(tài),節(jié)點(diǎn)2是運(yùn)行態(tài)。進(jìn)一步地,節(jié)點(diǎn)2創(chuàng)建完成后,根據(jù)選擇條件創(chuàng)建節(jié)點(diǎn)3至節(jié)點(diǎn)n中的一個(gè)節(jié)點(diǎn),其中,選擇條件包括“節(jié)點(diǎn)優(yōu)先級(jí)”和“入口條件”兩個(gè)規(guī)則的組合。
例如,“入口條件”以及“節(jié)點(diǎn)優(yōu)先級(jí)”條件的組合可以是:如果節(jié)點(diǎn)3入口條件為F,節(jié)點(diǎn)3不創(chuàng)建;如果節(jié)點(diǎn)3的入口條件為T(mén),則判斷節(jié)點(diǎn)4~n中,是否有入口條件為T(mén)的節(jié)點(diǎn),如果沒(méi)有,則節(jié)點(diǎn)3創(chuàng)建,如果有,則比較節(jié)點(diǎn)3~n中所有入口條件為T(mén)的節(jié)點(diǎn)的優(yōu)先級(jí),優(yōu)先級(jí)最高的節(jié)點(diǎn)創(chuàng)建實(shí)例;如果節(jié)點(diǎn)3~n的入口條件都是F,則節(jié)點(diǎn)2變?yōu)閽炱饝B(tài)。
現(xiàn)有技術(shù)在進(jìn)行流程引擎測(cè)試時(shí),需要技術(shù)人員基于經(jīng)驗(yàn)將如圖1所示的所有可能的流程模板人工繪制出來(lái),很難保證各種情況的全覆蓋,導(dǎo)致測(cè)試的精確度較低,且人力成本過(guò)高。
為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種流程引擎的測(cè)試方法,該方法應(yīng)用于測(cè)試裝置,該測(cè)試裝置包括多種類型的流程規(guī)則,如圖2所示,該方法包括:
S201、根據(jù)多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板。
值得說(shuō)明的是,將現(xiàn)有的人工繪制的每種流程模板進(jìn)行拆分,則針對(duì)每個(gè)流程模板可以得到過(guò)個(gè)流程規(guī)則。也就是說(shuō),每個(gè)流程模板是由至少一個(gè)流程規(guī)則組成。并且,所有流程模板采用的流程規(guī)則可以歸納為幾類,不同流程模板只是流程規(guī)則之間的組合不同。
以圖1所示的流程模板舉例說(shuō)明,本發(fā)明實(shí)施例可以將圖1所示的流程模板分為四種流程規(guī)則:
第一種是順序型流程規(guī)則,即節(jié)點(diǎn)1完成后,直接創(chuàng)建節(jié)點(diǎn)2,其中,缺省情況下,節(jié)點(diǎn)1是完成態(tài),節(jié)點(diǎn)2是運(yùn)行態(tài);
第二種是選擇型流程規(guī)則,即節(jié)點(diǎn)2創(chuàng)建后,在節(jié)點(diǎn)2至節(jié)點(diǎn)n中選擇創(chuàng)建一個(gè)節(jié)點(diǎn);
第三種是節(jié)點(diǎn)入口條件規(guī)則,即根據(jù)節(jié)點(diǎn)的入口條件選擇是否創(chuàng)建該節(jié)點(diǎn);
第四種是節(jié)點(diǎn)優(yōu)先級(jí)規(guī)則,即根據(jù)節(jié)點(diǎn)優(yōu)先級(jí)在入口條件相同的節(jié)點(diǎn)之間選擇創(chuàng)建節(jié)點(diǎn)。
上述只是舉例說(shuō)明,在具體實(shí)施過(guò)程中,可以采用其他的歸納方式將所有流程模板歸納為多種流程規(guī)則的組合。本發(fā)明對(duì)此不做限定。
這樣,將歸納出每一種流程規(guī)則均預(yù)先存儲(chǔ)到測(cè)試裝置中。進(jìn)一步地,測(cè)試裝置可以對(duì)每種流程規(guī)則進(jìn)行排列組合,生成流程模板。
進(jìn)一步地,該測(cè)試裝置對(duì)生成的每個(gè)流程模板執(zhí)行步驟S202和S203。
S202、根據(jù)流程引擎執(zhí)行所述流程模板,得到實(shí)際執(zhí)行結(jié)果。
具體地,流程引擎用于解析流程模板,若該流程引擎能夠?qū)α鞒棠0暹M(jìn)行正確的解析,則其執(zhí)行結(jié)果與預(yù)期執(zhí)行結(jié)果一致。其中,該預(yù)期執(zhí)行結(jié)果是指根據(jù)該流程模板的邏輯判斷出來(lái)的執(zhí)行結(jié)果。針對(duì)生成的流程模板,該測(cè)試裝置均有對(duì)應(yīng)的預(yù)期執(zhí)行結(jié)果。
S203、確定所述實(shí)際執(zhí)行結(jié)果與所述流程模板的預(yù)期執(zhí)行結(jié)果是否一致。
這樣,若針對(duì)每一個(gè)流程模板,該流程引擎對(duì)其解析后的實(shí)際執(zhí)行結(jié)果均與預(yù)期執(zhí)行結(jié)果一致,則表明了該流程引擎能夠正確對(duì)所有可能的流程進(jìn)行正確解析,在此種情況下,可以提示流程引擎測(cè)試成功。
采用上述方法,流程引擎的測(cè)試裝置可以基于不同類型的規(guī)則自動(dòng)生成流程模板,避免了人工繪制流程模板,減少了人力成本。并且,相較于技術(shù)人員根據(jù)經(jīng)驗(yàn)繪制流程模板,本發(fā)明的測(cè)試裝置基于流程規(guī)則生成的流程模板更加全面,保證了對(duì)流程引擎的測(cè)試沒(méi)有遺漏,進(jìn)而保障了產(chǎn)品的質(zhì)量。
為了使本領(lǐng)域技術(shù)人員更加理解本發(fā)明實(shí)施例提供的技術(shù)方案,下面對(duì)上述步驟進(jìn)行詳細(xì)說(shuō)明。
在本發(fā)明實(shí)施例的一種可能的實(shí)現(xiàn)方式中,所述流程規(guī)則包括以下至少一種類型的規(guī)則:
流程圖拓?fù)漕愐?guī)則、資源分配類規(guī)則、運(yùn)行期控制類規(guī)則。
其中,流程圖拓?fù)湟?guī)則是指如順序執(zhí)行、選擇執(zhí)行、并發(fā)執(zhí)行、子流程等規(guī)則。具體地,下面通過(guò)圖3A至圖3B對(duì)流程圖拓?fù)湟?guī)則進(jìn)行說(shuō)明:
圖3A是流程圖拓?fù)湟?guī)則中的順序型規(guī)則的示意圖。如圖3A所示,該順序型規(guī)則由至少兩個(gè)節(jié)點(diǎn)組成。順序相連的各個(gè)節(jié)點(diǎn),在上一個(gè)節(jié)點(diǎn)創(chuàng)建完成后,順序創(chuàng)建下一個(gè)節(jié)點(diǎn)。
圖3B是流程圖拓?fù)湟?guī)則中的選擇型規(guī)則的示意圖。如圖3B所示,該節(jié)點(diǎn)1完成后,在節(jié)點(diǎn)2至節(jié)點(diǎn)n中,選擇創(chuàng)建1個(gè)節(jié)點(diǎn)。其中,具體如何決定創(chuàng)建哪個(gè)節(jié)點(diǎn),可以依賴資源分配類規(guī)則中的節(jié)點(diǎn)優(yōu)先級(jí)和入口條件兩個(gè)規(guī)則的組合進(jìn)行選擇,后續(xù)將對(duì)資源分配類規(guī)則進(jìn)行附圖介紹。
圖3C是流程圖拓?fù)湟?guī)則中的并發(fā)型規(guī)則的示意圖。如圖3C所示,節(jié)點(diǎn)1完成后,在節(jié)點(diǎn)2至節(jié)點(diǎn)n中,選擇創(chuàng)建多個(gè)節(jié)點(diǎn)。其中,具體如何決定創(chuàng)建哪些節(jié)點(diǎn),可以依賴資源分配類規(guī)則中的入口條件規(guī)則。
上述只是對(duì)流程圖拓?fù)漕愐?guī)則進(jìn)行舉例說(shuō)明,在具體實(shí)施過(guò)程中,還可以有其他流程圖拓?fù)湟?guī)則,在此不一一窮舉。實(shí)際情況中,流程圖拓?fù)湟?guī)則大約包括30個(gè)如上述順序型,選擇型以及并發(fā)型的規(guī)則。
資源分配類規(guī)則是指如參與人分配、多人辦理方式、節(jié)點(diǎn)應(yīng)用程序類型等規(guī)則。
示例地,資源分配類規(guī)則可以包括節(jié)點(diǎn)入口條件規(guī)則,參照?qǐng)D3A,在順序型流程圖拓?fù)漕愐?guī)則中,如果節(jié)點(diǎn)2入口條件為T(mén),節(jié)點(diǎn)2創(chuàng)建,且狀態(tài)為運(yùn)行態(tài);如果節(jié)點(diǎn)2的入口條件為F,在節(jié)點(diǎn)2創(chuàng)建,但為初始態(tài)。
參照?qǐng)D3B,在選擇型的流程圖拓?fù)漕愐?guī)則中,如果節(jié)點(diǎn)2入口條件為F,則節(jié)點(diǎn)2不創(chuàng)建;如果節(jié)點(diǎn)2入口條件為T(mén),則判斷節(jié)點(diǎn)3至節(jié)點(diǎn)n中,是否有入口條件為T(mén)的節(jié)點(diǎn),如果沒(méi)有,則節(jié)點(diǎn)2創(chuàng)建,如果有,則比較節(jié)點(diǎn)2至節(jié)點(diǎn)n中所有入口條件為T(mén)的節(jié)點(diǎn)的優(yōu)先級(jí)的值,優(yōu)先級(jí)最高的節(jié)點(diǎn)創(chuàng)建實(shí)例;如果節(jié)點(diǎn)2至節(jié)點(diǎn)n的入口條件都是F,則節(jié)點(diǎn)1變?yōu)閽炱饝B(tài)。
參照?qǐng)D3C,在并發(fā)型的流程圖拓?fù)漕愐?guī)則中,判斷節(jié)點(diǎn)2至節(jié)點(diǎn)n的入口條件,只要入口條件是T就都創(chuàng)建對(duì)應(yīng)的節(jié)點(diǎn);若某一節(jié)點(diǎn)的入口條件為F,則該節(jié)點(diǎn)不創(chuàng)建。如果節(jié)點(diǎn)2至節(jié)點(diǎn)n的入口條件都是F,則節(jié)點(diǎn)1變?yōu)閽炱饝B(tài)。
另一個(gè)例子,該資源分配類規(guī)則還可以包括節(jié)點(diǎn)優(yōu)先級(jí)規(guī)則,參照?qǐng)D3B,在選擇型的流程圖拓?fù)漕愐?guī)則中,如果有多個(gè)節(jié)點(diǎn)的入口條件均為T(mén),則比較所有入口條件為T(mén)的節(jié)點(diǎn)的優(yōu)先級(jí)的值,優(yōu)先級(jí)最高的節(jié)點(diǎn)創(chuàng)建實(shí)例。
上述只是舉例說(shuō)明,具體實(shí)施時(shí),該資源分配類規(guī)則還可以包括其他類型的規(guī)則,例如,節(jié)點(diǎn)類型規(guī)則,即不同類型的節(jié)點(diǎn)與其他資源分配類規(guī)則具有依賴或者互斥的關(guān)系?;蛘邊⑴c人規(guī)則,表示該節(jié)點(diǎn)將被哪些用戶處理,如果節(jié)點(diǎn)類型是手動(dòng)節(jié)點(diǎn),則該節(jié)點(diǎn)必須綁定一個(gè)參與人規(guī)則。實(shí)際情況中,資源分配類規(guī)則大約包括150種,此處不一一窮舉。
參照?qǐng)D3A,節(jié)點(diǎn)1到節(jié)點(diǎn)2的過(guò)程,就是對(duì)節(jié)點(diǎn)1執(zhí)行提交規(guī)則所觸發(fā)的。
其中,提交規(guī)則是流程流轉(zhuǎn)的基本動(dòng)作。提交可以讓實(shí)例對(duì)象變?yōu)橥瓿蓱B(tài),同時(shí)創(chuàng)建直接后繼節(jié)點(diǎn)對(duì)象。需要說(shuō)明的是,對(duì)運(yùn)行態(tài)的實(shí)例對(duì)象可以執(zhí)行提交操作,對(duì)完成態(tài)的對(duì)象無(wú)法執(zhí)行提交操作。
該運(yùn)行期控制類規(guī)則還可以包括掛起規(guī)則,即對(duì)流程實(shí)例執(zhí)行掛起時(shí),流程實(shí)例將變更為掛起態(tài),同時(shí)其所有的下屬對(duì)象也將全部變?yōu)閽炱饝B(tài)。實(shí)際情況中,運(yùn)行期控制類規(guī)則大約包括80種,此處不一一窮舉。
由上可知,流程規(guī)則之間存在依賴關(guān)系,該依賴關(guān)系表明了不同流程規(guī)則之間是否必須關(guān)聯(lián),或者互斥。這樣,所述測(cè)試裝置還可以存儲(chǔ)有不同類型的流程規(guī)則之間的依賴關(guān)系,上述步驟S201具體包括:利用所述依賴關(guān)系組合所述多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板。
通過(guò)流程圖拓?fù)漕愐?guī)則的組合,能夠形成各種復(fù)雜的流程圖,而通過(guò)資源分配類規(guī)則,賦予了流程圖上對(duì)象的不同屬性。并且,通過(guò)各類規(guī)則之間的關(guān)聯(lián)和互斥關(guān)系,就會(huì)形成涵蓋各種邏輯場(chǎng)景的流程模板,流程引擎解析這些流程模板,并依據(jù)規(guī)則的判斷邏輯,即可判斷流程引擎對(duì)流程模板的解析是否正確。
例如,圖1所示的流程模板即可以是測(cè)試裝置根據(jù)順序型的流程圖拓?fù)漕愐?guī)則、選擇型的流程圖拓?fù)漕愐?guī)則以及資源分配類的節(jié)點(diǎn)入口條件以及節(jié)點(diǎn)優(yōu)先級(jí)規(guī)則組合生成的。
圖4提供了另一種流程引擎測(cè)試方法的示意圖,如圖4所示,流程圖拓?fù)漕愐?guī)則與資源分配規(guī)則通過(guò)組合生成流程模板,得到多個(gè)流程模板的集合,流程引擎在解析每個(gè)流程模板的時(shí)候執(zhí)行運(yùn)行期控制類規(guī)則,得到最終的執(zhí)行結(jié)果,若實(shí)際執(zhí)行結(jié)果與所定義的邏輯規(guī)則的結(jié)果不一致,則發(fā)現(xiàn)流程引擎的缺陷,若每個(gè)流程模板的實(shí)際執(zhí)行結(jié)果均與所定義的邏輯規(guī)則的結(jié)果一致,則表明該流程引擎能夠正確解析所有流程模板。
在本發(fā)明實(shí)施例的一種可能的實(shí)現(xiàn)方式中,所述方法還包括:在所述測(cè)試裝置中增加新類型的流程規(guī)則,并設(shè)置新類型的所述流程規(guī)則與其他類型的流程規(guī)則之間的依賴關(guān)系。
也就是說(shuō),發(fā)生規(guī)則變更時(shí),技術(shù)人員只需定義新的規(guī)則和規(guī)則之間的依賴關(guān)系即可。無(wú)需針對(duì)新增加的規(guī)則一一繪制流程模板,減少了人力成本,提高了引擎測(cè)試效率。
采用本發(fā)明實(shí)施例提供的一種流程引擎的測(cè)試方法,將流程模板抽象成多種流程規(guī)則表示,通過(guò)規(guī)則的依賴關(guān)系,自動(dòng)組合各種規(guī)則以生成各種形式的流程模板,進(jìn)一步地,通過(guò)自動(dòng)化測(cè)試的調(diào)度,實(shí)現(xiàn)對(duì)流程引擎功能的高效測(cè)試。相比現(xiàn)有技術(shù),大幅減少測(cè)試工作量、保障引擎程序質(zhì)量、降低對(duì)測(cè)試人員的要求和依賴。
本發(fā)明實(shí)施例還提供一種流程引擎的測(cè)試裝置50,用于實(shí)施上述方法實(shí)施例提供的一種流程引擎的測(cè)試方法,如圖5A所示,該流程引擎的測(cè)試裝置50包括:
存儲(chǔ)單元51,用于存儲(chǔ)多種類型的流程規(guī)則;
生成單元52,用于根據(jù)所述多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板;
執(zhí)行單元53,用于對(duì)生成的每個(gè)所述流程模板執(zhí)行以下操作:
根據(jù)流程引擎執(zhí)行所述流程模板,得到實(shí)際執(zhí)行結(jié)果;
確定單元54,用于確定所述實(shí)際執(zhí)行結(jié)果與所述流程模板的預(yù)期執(zhí)行結(jié)果是否一致。
采用上述流程引擎的測(cè)試裝置,該流程引擎的測(cè)試裝置可以基于不同類型的規(guī)則自動(dòng)生成流程模板,避免了人工繪制流程模板,減少了人力成本。并且,相較于技術(shù)人員根據(jù)經(jīng)驗(yàn)繪制流程模板,本發(fā)明的測(cè)試裝置基于流程規(guī)則生成的流程模板更加全面,保證了對(duì)流程引擎的測(cè)試沒(méi)有遺漏,進(jìn)而保障了產(chǎn)品的質(zhì)量。
可選地,所述存儲(chǔ)單元51用于,存儲(chǔ)以下至少一種類型的規(guī)則:
流程圖拓?fù)漕愐?guī)則、資源分配類規(guī)則、運(yùn)行期控制類規(guī)則。
其中,流程圖拓?fù)湟?guī)則是指如順序執(zhí)行、選擇執(zhí)行、并發(fā)執(zhí)行、子流程等規(guī)則。資源分配類規(guī)則是指如參與人分配、多人辦理方式、節(jié)點(diǎn)應(yīng)用程序類型等規(guī)則。運(yùn)行期控制類規(guī)則是指如啟動(dòng)、掛起、回退等流程實(shí)例的控制操作,也就是說(shuō),執(zhí)行某種控制操作,會(huì)導(dǎo)致對(duì)象發(fā)生狀態(tài)遷移。值得說(shuō)明的是,運(yùn)行期控制類規(guī)則是發(fā)生在流程模板所產(chǎn)生的流程實(shí)例上的不同操作。
具體地,參照上述方法實(shí)施例對(duì)上述三種規(guī)則的舉例說(shuō)明,此處不再贅述。
可選地,所述存儲(chǔ)單元51還用于存儲(chǔ)不同類型的流程規(guī)則之間的依賴關(guān)系;所述生成單元52用于,利用所述依賴關(guān)系組合所述多種類型的流程規(guī)則中的至少一種流程規(guī)則生成流程模板。
可選地,如圖5B所示,所述流程引擎的測(cè)試裝置50還包括:
規(guī)則更新單元55,用于在所述存儲(chǔ)單元51中增加新類型的流程規(guī)則,并設(shè)置新類型的所述流程規(guī)則與其他類型的流程規(guī)則之間的依賴關(guān)系。
也就是說(shuō),發(fā)生規(guī)則變更時(shí),技術(shù)人員只需定義新的規(guī)則和規(guī)則之間的依賴關(guān)系即可。無(wú)需針對(duì)新增加的規(guī)則一一繪制流程模板,減少了人力成本,提高了引擎測(cè)試效率。
可選地,如圖5B所示,所述流程引擎的測(cè)試裝置50還包括:
提示單元56,在所述確定單元54確定每個(gè)所述流程模板的實(shí)際執(zhí)行結(jié)果與預(yù)期執(zhí)行結(jié)果均一致時(shí),提示流程引擎測(cè)試成功。
其中,若流程模板的實(shí)際執(zhí)行結(jié)果與所定義的邏輯規(guī)則的結(jié)果不一致,則發(fā)現(xiàn)流程引擎的缺陷,若每個(gè)流程模板的實(shí)際執(zhí)行結(jié)果均與所定義的邏輯規(guī)則的結(jié)果一致,則表明該流程引擎能夠正確解析所有流程模板,此時(shí),可提示流程引擎測(cè)試成功。
值得說(shuō)明的是,以上對(duì)該流程引擎的測(cè)試裝置50的單元?jiǎng)澐?,僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。并且,上述各功能單元的物理實(shí)現(xiàn)也可能有多種實(shí)現(xiàn)方式。
另外,所屬本領(lǐng)域的技術(shù)人員應(yīng)該清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的裝置的各單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,此處不再贅述。
在本申請(qǐng)所提供的實(shí)施例中,應(yīng)該理解到,所公開(kāi)的裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、RAM(Random Access Memory,隨機(jī)存取存儲(chǔ)器)、磁碟或者光盤(pán)等各種可以存儲(chǔ)數(shù)據(jù)的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。