本發(fā)明專利技術(shù)提供了一種規(guī)則流的測試用例生成裝置及方法,其中,所述規(guī)則流包括一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn)。所述裝置包括:轉(zhuǎn)換單元,其被配置成用于將規(guī)則流轉(zhuǎn)換成若干執(zhí)行序列的數(shù)據(jù)流;獲取單元,其被配置成用于根據(jù)所述執(zhí)行序列的數(shù)據(jù)流,獲取用于生成測試用例的實(shí)例信息;以及生成單元,其被配置成用于根據(jù)所述實(shí)例信息,生成測試用例。本發(fā)明專利技術(shù)的測試用例生成裝置及方法,可以通過將規(guī)則流轉(zhuǎn)化為反映節(jié)點(diǎn)之間的輸入/輸出關(guān)系的數(shù)據(jù)流,再比較數(shù)據(jù)流中每個(gè)節(jié)點(diǎn)的輸入實(shí)例與該節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)的輸出實(shí)例或者同一節(jié)點(diǎn)的輸入實(shí)例和輸出實(shí)例,來得到生成測試用例所期望的實(shí)例的信息,從而有效地實(shí)現(xiàn)在BRMS中自動(dòng)生成測試用例。
Test case generating device and method
The present invention provides a test case generation device and method for a regular flow, wherein the rule stream comprises one or more rule group nodes. The device comprises a conversion unit, which is configured to flow into several rules to perform a sequence of data stream; acquiring unit configured to perform according to the sequence of data flow, get used to generate test cases and examples of information; generating unit configured according to the instance information, test case generation. Test case generation method and apparatus of the invention, the rules of flow into the nodes reflect the relationship of input / output data stream, and then compare the data input and output an output instance instance precursor node input instance flow of each node and the node or the same node, to get the test case generation use the desired information, so as to effectively realize the automatic generation of test cases in BRMS.
【技術(shù)實(shí)現(xiàn)步驟摘要】
測試用例生成裝置及方法
本專利技術(shù)涉及數(shù)據(jù)處理的領(lǐng)域,具體涉及為多個(gè)業(yè)務(wù)規(guī)則生成測試實(shí)例的方法和裝置。
技術(shù)介紹
在業(yè)務(wù)規(guī)則管理系統(tǒng)(BusinessRuleManagementSystem,BRMS)中,業(yè)務(wù)邏輯是通過規(guī)則的形式來表示的。BRMS使得用戶可以通過修改規(guī)則而不是修改代碼來改變業(yè)務(wù)邏輯。由于業(yè)務(wù)規(guī)則相對(duì)于代碼來說更便于業(yè)務(wù)專家理解和修改,因此BRMS相對(duì)于傳統(tǒng)軟件來說更加靈活。通過將實(shí)例(facts)與規(guī)則的條件進(jìn)行模式匹配,BRMS規(guī)則引擎可以找出滿足條件的實(shí)例和相應(yīng)的規(guī)則,并在解決沖突后執(zhí)行規(guī)則。傳統(tǒng)的針對(duì)業(yè)務(wù)規(guī)則的測試用例生成方法并不適用于規(guī)則流的測試用例生成。傳統(tǒng)的業(yè)務(wù)規(guī)則測試用例生成方法生成的測試用例是用以覆蓋每條規(guī)則的。然而對(duì)于規(guī)則流(ruleflow),卻沒有一種方法可以自動(dòng)地生成測試用例。一條規(guī)則流指定了幾組規(guī)則之間的執(zhí)行順序。為了確保這個(gè)規(guī)則流的執(zhí)行效果與預(yù)想的一樣,需要通過測試用例來對(duì)其進(jìn)行測試。然而,由于人工編寫的測試用例需要花費(fèi)大量時(shí)間,而且也達(dá)不到理想的覆蓋率,因此,生成針對(duì)規(guī)則流的測試用例是非常有必要的。
技術(shù)實(shí)現(xiàn)思路
在鑒于現(xiàn)有技術(shù)的上述狀況,本專利技術(shù)的目的之一在于提供一種規(guī)則流的測試用例生成裝置及方法以解決現(xiàn)有技術(shù)中的問題。根據(jù)本專利技術(shù)的一方面,提供了一種規(guī)則流的測試用例生成裝置,其中,所述規(guī)則流包括一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn),所述裝置包括:轉(zhuǎn)換單元,其被配置成用于將規(guī)則流轉(zhuǎn)換成若干執(zhí)行序列的數(shù)據(jù)流;獲取單元,其被配置成用于根據(jù)所述執(zhí)行序列的數(shù)據(jù)流,獲取用于生成測試用例的實(shí)例信息;以及生成單元,其被配置成用于根據(jù)所述實(shí)例信息,生成測試用例。根據(jù)本專利技術(shù)的另一方面,還提供了一種信息處理設(shè)備,包括:存儲(chǔ)器,用于存儲(chǔ)程序指令;以及處理器,所述處理器被配置成執(zhí)行所存儲(chǔ)的指令以:將規(guī)則流轉(zhuǎn)換成若干執(zhí)行序列的數(shù)據(jù)流,其中,所述規(guī)則流包括一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn);根據(jù)所述執(zhí)行序列的數(shù)據(jù)流,獲取用于生成測試用例的實(shí)例信息;以及根據(jù)所述實(shí)例信息,生成測試用例。根據(jù)本專利技術(shù)的又一方面,還提供了一種規(guī)則流的測試用例生成方法,其中,所述規(guī)則流包括一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn),所述方法包括:將規(guī)則流轉(zhuǎn)換成若干執(zhí)行序列的數(shù)據(jù)流;根據(jù)所述執(zhí)行序列的數(shù)據(jù)流,獲取用于生成測試用例的實(shí)例信息;以及根據(jù)所述實(shí)例信息,生成測試用例。根據(jù)本專利技術(shù)的其它方面,本專利技術(shù)的實(shí)施例還提供了計(jì)算機(jī)可讀介質(zhì)形式的計(jì)算機(jī)程序產(chǎn)品,其上記錄有用于實(shí)現(xiàn)上述方法的計(jì)算機(jī)程序代碼。根據(jù)本專利技術(shù)實(shí)施例的方法和裝置,通過將規(guī)則流轉(zhuǎn)化為反映節(jié)點(diǎn)之間的輸入/輸出關(guān)系的數(shù)據(jù)流,從而有效地實(shí)現(xiàn)在BRMS中自動(dòng)生成測試用例。通過以下結(jié)合附圖對(duì)本專利技術(shù)的最佳實(shí)施例的詳細(xì)說明,本專利技術(shù)的這些以及其它優(yōu)點(diǎn)將更加明顯。附圖說明本專利技術(shù)可以通過參考下文中結(jié)合附圖所給出的描述而得到更好的理解,其中在所有附圖中使用了相同或相似的附圖標(biāo)記來表示相同或者相似的部件,其中圖1是根據(jù)本專利技術(shù)第一實(shí)施例的測試用例生成裝置10的框圖;圖2示例性地示出了一個(gè)訂單處理的規(guī)則流;圖3是示出了根據(jù)圖2中的規(guī)則流的執(zhí)行序列1得到的數(shù)據(jù)流的示意圖;圖4是根據(jù)本專利技術(shù)的第二實(shí)施例的測試用例生成裝置40的結(jié)構(gòu)框圖;圖5示例性地示出了一個(gè)猜數(shù)字的規(guī)則流;圖6示例性地示出了規(guī)則組“猜”內(nèi)部的規(guī)則的所有可能的執(zhí)行順序;圖7是示出了根據(jù)圖5所示的規(guī)則流的執(zhí)行序列1得到的數(shù)據(jù)流的示意圖;圖8是根據(jù)本專利技術(shù)的一個(gè)實(shí)施例的測試用例生成方法80的流程圖;圖9示是根據(jù)本專利技術(shù)的另一個(gè)實(shí)施例的測試用例生成方法90的流程圖;圖10示例性的示出了一個(gè)報(bào)稅處理的規(guī)則流;圖11示例性地示出了規(guī)則組“獲取報(bào)稅項(xiàng)”內(nèi)部的規(guī)則的所有可能的執(zhí)行順序;圖12是示出了根據(jù)圖10所示的規(guī)則流的執(zhí)行序列1得到的數(shù)據(jù)流的示意圖;以及圖13是其中可以實(shí)現(xiàn)根據(jù)本專利技術(shù)的實(shí)施例的方法和/或裝置的通用個(gè)人計(jì)算機(jī)的示例性結(jié)構(gòu)的框圖。具體實(shí)施方式下面參照附圖來說明本專利技術(shù)的實(shí)施例。在本專利技術(shù)的一個(gè)附圖或一種實(shí)施例中描述的元素和特征可以與一個(gè)或更多個(gè)其它附圖或?qū)嵤├惺境龅脑睾吞卣飨嘟Y(jié)合。應(yīng)當(dāng)注意,為了清楚的目的,附圖和說明中省略了與本專利技術(shù)無關(guān)的、本領(lǐng)域普通技術(shù)人員已知的部件和處理的表示和描述。本領(lǐng)域技術(shù)人員可以理解,本專利技術(shù)中的“第一”、“第二”等術(shù)語僅用于區(qū)別不同單元、模塊或步驟等,既不代表任何特定技術(shù)含義,也不表示它們之間的必然邏輯順序,也不體現(xiàn)其所限定的不同單元、模塊或步驟的重要性程度。為了生成規(guī)則流的測試用例,需要獲取規(guī)則流執(zhí)行過程所期望的實(shí)例,然后基于這些實(shí)例生成測試用例。本專利技術(shù)的專利技術(shù)人發(fā)現(xiàn):在規(guī)則流中,后繼節(jié)點(diǎn)期望的實(shí)例可能是前驅(qū)節(jié)點(diǎn)輸出的實(shí)例。因此,如果可以獲取節(jié)點(diǎn)之間實(shí)例的輸入輸出關(guān)系,就可以簡化生成測試用例所需的信息。圖1是根據(jù)本專利技術(shù)第一實(shí)施例的規(guī)則流的測試用例生成裝置10的框圖。如圖1所述,所述裝置10包括:轉(zhuǎn)換單元11,其被配置成用于將規(guī)則流轉(zhuǎn)換成若干執(zhí)行序列的數(shù)據(jù)流,其中規(guī)則流包括一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn);獲取單元12,其被配置成用于根據(jù)所述執(zhí)行序列的數(shù)據(jù)流,獲取用于生成測試用例的實(shí)例信息;生成單元13,其被配置成用于根據(jù)所述實(shí)例信息,生成測試用例。轉(zhuǎn)換單元11首先將規(guī)則流轉(zhuǎn)換成表示所有可能的執(zhí)行路徑的序列,在下文中這樣的可能的執(zhí)行路徑的序列被稱為執(zhí)行序列。在一個(gè)規(guī)則流中可能包括各種類型不同的節(jié)點(diǎn),包括但不限于,開始節(jié)點(diǎn)、結(jié)束節(jié)點(diǎn)、規(guī)則組節(jié)點(diǎn)、動(dòng)作節(jié)點(diǎn)、決策節(jié)點(diǎn)、分支節(jié)點(diǎn)、合并節(jié)點(diǎn)。不同類型的節(jié)點(diǎn)的作用不同。例如,分支節(jié)點(diǎn)可以將當(dāng)前規(guī)則流拆分成若干條子規(guī)則流并行運(yùn)行,而合并節(jié)點(diǎn)則可以將若干條子規(guī)則流合并為一條規(guī)則流。分支節(jié)點(diǎn)、合并節(jié)點(diǎn)均包括三種類型:XOR、OR、AND。XOR型表示每次只能選擇多條分支中的其中一條執(zhí)行,OR型表示可以選擇多條分支同時(shí)執(zhí)行,AND型表示所有分支都必須同時(shí)執(zhí)行。規(guī)則組節(jié)點(diǎn)與具體的規(guī)則組綁定,與某個(gè)規(guī)則組綁定之后,規(guī)則流在運(yùn)行時(shí)流轉(zhuǎn)到這個(gè)節(jié)點(diǎn)后,就會(huì)執(zhí)行與之綁定的規(guī)則組。圖2示例性地示出了一個(gè)訂單處理的規(guī)則流。在這個(gè)訂單處理的規(guī)則流中,可以根據(jù)訂單中的購買數(shù)量確定所給予的折扣。在圖2所示的規(guī)則流中,除了一個(gè)開始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn),還包括一個(gè)類型為AND的分支節(jié)點(diǎn)訂單_分支order_split,一個(gè)類型為AND的合并節(jié)點(diǎn)訂單_合并order_join,三個(gè)規(guī)則組節(jié)點(diǎn)“訂單類型”create_model、“檢查訂單”check_order、“批準(zhǔn)訂單”approve_order)。其中,規(guī)則組節(jié)點(diǎn)“訂單類型”設(shè)置了兩條規(guī)則“訂單類型1”create_model_1和“訂單類型2”create_model_2,即,當(dāng)購買數(shù)量在0至50之間,打9折;當(dāng)購買數(shù)量在50至100之間,打7折。一個(gè)用drools規(guī)則語言寫成的規(guī)則組“訂單類型”的示例如下。規(guī)則組節(jié)點(diǎn)“訂單檢查”同樣設(shè)置了兩條規(guī)則“訂單檢查1”check_order_1和“訂單檢查2”check_order_2,即,當(dāng)購買數(shù)量小于等于0或者購買數(shù)量大于100時(shí)訂單無效(invalid),當(dāng)購買數(shù)量大于0且購買數(shù)量小于等于100時(shí)訂單有效(valid)。一個(gè)用drools規(guī)則語言寫成的規(guī)則組“訂單檢查”的示例如下。規(guī)則組節(jié)點(diǎn)“批準(zhǔn)訂單”僅有一條規(guī)則“批準(zhǔn)訂單”approve_本文檔來自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
一種規(guī)則流的測試用例生成裝置,其中,所述規(guī)則流包括一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn),所述裝置包括:轉(zhuǎn)換單元,其被配置成用于將規(guī)則流轉(zhuǎn)換成若干執(zhí)行序列的數(shù)據(jù)流;獲取單元,其被配置成用于根據(jù)所述執(zhí)行序列的數(shù)據(jù)流,獲取用于生成測試用例的實(shí)例信息;以及生成單元,其被配置成用于根據(jù)所述實(shí)例信息,生成測試用例。
【技術(shù)特征摘要】
1.一種規(guī)則流的測試用例生成裝置,其中,所述規(guī)則流包括一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn),所述裝置包括:轉(zhuǎn)換單元,其被配置成用于將規(guī)則流轉(zhuǎn)換成若干執(zhí)行序列的數(shù)據(jù)流;獲取單元,其被配置成用于根據(jù)所述執(zhí)行序列的數(shù)據(jù)流,獲取用于生成測試用例的實(shí)例信息;以及生成單元,其被配置成用于根據(jù)所述實(shí)例信息,生成測試用例。2.根據(jù)權(quán)利要求1所述的裝置,其中,所述轉(zhuǎn)換單元包括:遍歷模塊,其被配置成用于從所述規(guī)則流的開始節(jié)點(diǎn)開始,遍歷所述規(guī)則流的各節(jié)點(diǎn),以便將所述規(guī)則流轉(zhuǎn)換成若干執(zhí)行序列;確定模塊,其被配置成基于規(guī)則組節(jié)點(diǎn)內(nèi)部的規(guī)則之間的約束條件,來確定所述一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn)的規(guī)則執(zhí)行順序;生成模塊,其被配置成在所述執(zhí)行序列中,采用所確定的一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn)的規(guī)則執(zhí)行順序替換相應(yīng)的一個(gè)或多個(gè)規(guī)則組節(jié)點(diǎn),以便生成所述執(zhí)行序列的數(shù)據(jù)流。3.根據(jù)權(quán)利要求2所述的裝置,其中,所述遍歷基于深度優(yōu)先的原則。4.根據(jù)權(quán)利要求2或3所述的裝置,其中,在對(duì)所述規(guī)則流進(jìn)行遍歷時(shí),當(dāng)遍歷到的節(jié)點(diǎn)已經(jīng)出現(xiàn)在執(zhí)行序列中...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:鐘朝亮,黃琦珍,皮冰鋒,上原忠弘,
申請(qǐng)(專利權(quán))人:富士通株式會(huì)社,
類型:發(fā)明
國別省市:日本,JP
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。