專利名稱:組合服務(wù)的回歸測試方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及服務(wù)組合測試技術(shù),特別涉及一種組合服務(wù)的回歸測試方法和裝置。
背景技術(shù):
隨著服務(wù)計算(Service Computing)技術(shù)的發(fā)展,服務(wù)組合(Service Composition)已成為開發(fā)和構(gòu)建分布式應(yīng)用系統(tǒng)的主要手段,通過服務(wù)組合可以將分布在網(wǎng)絡(luò)上的具有獨立功能的單個服務(wù)按照內(nèi)在邏輯關(guān)系組織成一個組合服務(wù)(Composite Service)。目前,業(yè)務(wù)分析人員可以根據(jù)業(yè)務(wù)需求,使用各種流程建模語言描述業(yè)務(wù)流程,進行組合服務(wù)建模,例如,可以使用面向設(shè)計的業(yè)務(wù)流程建模標(biāo)記(Business Process Modeling Notation ;以下簡稱BPMN)構(gòu)建組合服務(wù)模型。上述構(gòu)建的組合服務(wù)是具有動態(tài)性的,即隨著業(yè)務(wù)需求的不斷變更,組合服務(wù)模型也需要進行不斷修改,稱為組合服務(wù)的演化,組合服務(wù)演化過程中必定會帶來組合服務(wù)執(zhí)行流程的變更。演化后的組合服務(wù)必須進行面向組合服務(wù)演化的回歸測試,該回歸測試主要是驗證組合服務(wù)修改的正確性及其影響,例如,其修改是否達到了預(yù)期目的,是否損害了原有模型的功能等。在組合服務(wù)的回歸測試中,需要選擇回歸測試路徑,該回歸測試路徑通常為發(fā)生變更的執(zhí)行流程?,F(xiàn)有技術(shù)的回歸測試中,一般是采用基于控制流圖的方法選擇回歸測試路徑的, 例如,通過分析組合服務(wù)流程結(jié)構(gòu),生成相應(yīng)的控制流圖,并由控制流圖生成有限狀態(tài)機, 然后將各有限狀態(tài)機組成一個全局的有限狀態(tài)機,再將有限狀態(tài)機映射為哈希碼,通過對比哈希碼,確定回歸測試路徑。上述對于組合服務(wù)的回歸測試存在的技術(shù)缺陷是對于組合服務(wù)的使用者來說, 由于通常不了解服務(wù)流程結(jié)構(gòu)、有限狀態(tài)機等,獲得控制流圖以及回歸測試路徑都有一定的難度,使得組合服務(wù)的回歸測試較為復(fù)雜;而且,現(xiàn)有技術(shù)中尚沒有針對BPMN組合服務(wù)的回歸測試方法。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種組合服務(wù)的回歸測試方法和裝置,以實現(xiàn)對基于BPMN 構(gòu)建的組合服務(wù)實際執(zhí)行回歸測試,并且使得回歸測試路徑的選擇和測試都較為簡單。本發(fā)明提供一種組合服務(wù)的回歸測試方法,包括解析被測的組合服務(wù)的業(yè)務(wù)流程描述文件,獲得所述組合服務(wù)的測試環(huán)境部署信息,并根據(jù)所述測試環(huán)境部署信息構(gòu)建測試環(huán)境;所述組合服務(wù)為基于業(yè)務(wù)流程建模標(biāo)記語言BPMN構(gòu)建的;解析演化前的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第一執(zhí)行流信息,解析演化后的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第二執(zhí)行流信息;并對比所述第一執(zhí)行流信息和第二執(zhí)行流信息,獲取相對于所述第一執(zhí)行流信息發(fā)生變化的第二執(zhí)行流信息作為回歸測試路徑;
分析所述回歸測試路徑,得到所述回歸測試路徑的條件約束信息;并根據(jù)所述回歸測試路徑以及條件約束信息,獲取執(zhí)行所述組合服務(wù)所需的輸入?yún)?shù),根據(jù)所述輸入?yún)?shù)生成測試用例;在所述測試環(huán)境中執(zhí)行所述測試用例,并根據(jù)測試執(zhí)行結(jié)果獲得所述組合服務(wù)的測試結(jié)果。本發(fā)明提供一種組合服務(wù)的回歸測試裝置,包括測試環(huán)境部署模塊,用于解析被測的組合服務(wù)的業(yè)務(wù)流程描述文件,獲得所述組合服務(wù)的執(zhí)行流信息和測試環(huán)境部署信息,并根據(jù)所述測試環(huán)境部署信息構(gòu)建測試環(huán)境; 所述組合服務(wù)為基于業(yè)務(wù)流程建模標(biāo)記語言BPMN構(gòu)建的;測試路徑選擇模塊,用于解析演化前的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第一執(zhí)行流信息,解析演化后的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第二執(zhí)行流信息; 并對比所述第一執(zhí)行流信息和第二執(zhí)行流信息,獲取相對于所述第一執(zhí)行流信息發(fā)生變化的第二執(zhí)行流信息作為回歸測試路徑;測試用例生成模塊,用于分析所述回歸測試路徑,得到所述回歸測試路徑的條件約束信息;并根據(jù)所述回歸測試路徑以及條件約束信息,獲取執(zhí)行所述組合服務(wù)所需的輸入?yún)?shù),根據(jù)所述輸入?yún)?shù)生成測試用例;測試用例執(zhí)行模塊,用于在所述測試環(huán)境中執(zhí)行所述測試用例;測試結(jié)果查看模塊,用于根據(jù)測試執(zhí)行結(jié)果獲得組合服務(wù)的測試結(jié)果。本發(fā)明的組合服務(wù)的回歸測試方法和裝置,通過解析組合服務(wù)的業(yè)務(wù)流程描述文件獲得執(zhí)行流信息,并對比演化前后的執(zhí)行流信息,獲取受演化影響的執(zhí)行流信息作為回歸測試路徑,進而對組合服務(wù)實際執(zhí)行測試,實現(xiàn)了對基于BPMN構(gòu)建的組合服務(wù)實際執(zhí)行回歸測試,并且,由于業(yè)務(wù)流程描述文件很容易獲取,通過對比執(zhí)行流信息的方法獲得回歸測試路徑也較為簡單,從而使得組合服務(wù)的回歸測試方法使用簡單、便捷高效。
圖I為本發(fā)明組合服務(wù)的回歸測試方法實施例的流程示意圖;圖2為本發(fā)明組合服務(wù)的回歸測試裝置實施例的結(jié)構(gòu)示意圖。
具體實施例方式圖I為本發(fā)明組合服務(wù)的回歸測試方法實施例的流程示意圖,本實施例的方法適用于基于BPMN的組合服務(wù)測試,如圖I所示,可以包括以下步驟步驟101、解析被測組合服務(wù)的業(yè)務(wù)流程描述文件,獲得組合服務(wù)的執(zhí)行流信息和測試環(huán)境部署信息,并根據(jù)測試環(huán)境部署信息構(gòu)建測試環(huán)境;其中,組合服務(wù)的業(yè)務(wù)流程描述文件是測試者在設(shè)計組合服務(wù)的業(yè)務(wù)流程的過程自動生成并保存下來的,其中包括了測試者所設(shè)計的物理資源組織結(jié)構(gòu)和服務(wù)環(huán)境拓撲等信息。本步驟中,可以由組合服務(wù)測試裝置(該測試裝置的結(jié)構(gòu)詳細可以參見后面的裝置實施例中所述)中的測試環(huán)境部署模塊執(zhí)行。測試環(huán)境部署模塊接收用戶發(fā)送的服務(wù)部署請求,該服務(wù)部署請求可以是簡單對象訪問協(xié)議(Simple Object Access Protocol,簡稱SOAP)消息。在接收到該SOAP消息時,測試環(huán)境部署模塊解析該業(yè)務(wù)流程描述文件,得到組合服務(wù)的執(zhí)行流信息和測試環(huán)境部署信息。例如,該測試環(huán)境部署信息可以包括組成組合服務(wù)的各原子服務(wù)的名稱、地址;以及用于測試組合服務(wù)的測試容器的地址信息(如, IP地址和端口號)。測試環(huán)境部署模塊可以根據(jù)上述原子服務(wù)的名稱、地址獲取下載服務(wù)列表,通過文件傳輸協(xié)議(File Transfer Protocol,簡稱FTP)從服務(wù)庫中下載原子服務(wù),并將原子服務(wù)下載到指定測試容器,該過程即為測試環(huán)境部署的過程。從服務(wù)庫中成功下載服務(wù)后即完成測試環(huán)境的部署。通過測試環(huán)境的部署,提供了隔離的測試運行環(huán)境,降低了測試環(huán)境對測試的影響;而且本實施例是直接分析業(yè)務(wù)流程描述文件,使得該組合服務(wù)測試方法使用簡單,便捷聞效。步驟102、對比所述組合服務(wù)演化前后的執(zhí)行流信息,獲取受演化影響的執(zhí)行流信息作為回歸測試路徑;其中,本步驟可以由組合服務(wù)測試裝置(該測試裝置的結(jié)構(gòu)詳細可以參見后面的裝置實施例中所述)中的測試路徑選擇模塊執(zhí)行。具體的,可以首先解析BPMN業(yè)務(wù)流程描述文件,將其轉(zhuǎn)化為基于有向圖的組合服務(wù)執(zhí)行流描述模型,通過執(zhí)行流識別技術(shù)對該執(zhí)行流描述模型進行執(zhí)行流路徑分析,得到業(yè)務(wù)流程描述文件中的所有可執(zhí)行路徑(該可執(zhí)行路徑即為執(zhí)行流信息)。輸入演化前后的組合服務(wù)的業(yè)務(wù)流程描述文件,并按照上述的方法進行解析,獲得組合服務(wù)演化前后的執(zhí)行流信息;具體的,可以解析演化前的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第一執(zhí)行流信息,解析演化后的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第二執(zhí)行流信息;并將演化前后的第一執(zhí)行流信息和第二執(zhí)行流信息進行對比,就可以識別受演化影響的第二執(zhí)行流信息,可以將該受演化影響的,相對于所述第一執(zhí)行流信息發(fā)生變化第二執(zhí)行流信息作為回歸測試路徑。由于組合服務(wù)的業(yè)務(wù)流程描述文件是測試者在設(shè)計組合服務(wù)的業(yè)務(wù)流程的過程自動生成并保存下來的,很容易獲取到業(yè)務(wù)流程描述文件并將其解析為執(zhí)行流信息;而且, 通過對比演化前后的執(zhí)行流信息的方法,識別受演化影響的執(zhí)行流信息并據(jù)此獲得回歸測試路徑實現(xiàn)也較為簡單,從而使得組合服務(wù)的回歸測試方法相對于現(xiàn)有技術(shù)中的基于控制流圖的方式,使用簡單、便捷高效。具體的,根據(jù)目前常見的組合服務(wù)演化操作,可以將組合服務(wù)的演化分為兩種類型,一種是因業(yè)務(wù)流程變更(包括增加、刪除節(jié)和結(jié)構(gòu)調(diào)整)影響的執(zhí)行流信息,另一種是由于原子服務(wù)綁定變化(包括替換操作)影響的執(zhí)行流信息。例如,對于因業(yè)務(wù)流程變更影響的執(zhí)行流信息,這種類型通常為,在組合服務(wù)的演化過程中,可執(zhí)行路徑中的節(jié)點發(fā)生了增減變化,即路徑上可能新增了節(jié)點或者刪除了節(jié)點,由此導(dǎo)致了可執(zhí)行路徑的變化。識別此種類型執(zhí)行流信息的方式可以為,對比組合服務(wù)演化前后的執(zhí)行流信息(即可執(zhí)行路徑),路徑中可以包括多個節(jié)點,找到路徑中新增的節(jié)點或者刪除的節(jié)點,就可以相應(yīng)得到經(jīng)過該節(jié)點的可執(zhí)行路徑。本方式的算法可以如下設(shè)計算法I SelectRTPath4Prtl (P,P' AN, DN, SAP)//選擇因流程變更影響的可執(zhí)行路徑輸入P,P', AN, DN, SAP輸出Prtl
SelectRTPath4Prtl(P, V, AN, DN, SAP)
{
Prtl=NULL; //初始化 for(an: AN) //遍歷新增節(jié)點 {
for(p': P') //遍歷演化后可執(zhí)行流路徑集 {
if((e I e. S our ceRef=an 11 e. T argetRef=an) e p') Prtl= Prtl U {p'};
for(p: P)
{
for(dn: DN) //遍歷刪除節(jié)點 {
if((e|e.SourceRef=dn||e.TargetRef=dn) e p&& (p-e) Ep')
Prtl= Prtl U {p-dn};
}
}
if(SAP^NULL) //如果P'中有SAP Prtl= Prtl U SAP; retumPrtl;
}例如,對于因原子服務(wù)綁定變化影響的執(zhí)行流信息,這種類型通常為,在組合服務(wù)的演化過程中,可執(zhí)行路徑中的節(jié)點所綁定的原子服務(wù)發(fā)生了變化,由此導(dǎo)致了可執(zhí)行路徑的變化。識別此種類型執(zhí)行流信息的方式可以為,對比組合服務(wù)演化前后的執(zhí)行流信息 (即可執(zhí)行路徑),路徑中可以包括多個節(jié)點,找到路徑中服務(wù)綁定發(fā)生變化的節(jié)點,則可以相應(yīng)得到經(jīng)過該節(jié)點的可執(zhí)行路徑。本方式的算法可以如下設(shè)計
算法2 SelectRTPath4Prt2(N all,SN,SN',P' )//選擇因綁定變化影響的可執(zhí)行路徑輸入Nall,SN,SN',P'輸出Prt權(quán)利要求
1.一種組合服務(wù)的回歸測試方法,其特征在于,包括解析被測的組合服務(wù)的業(yè)務(wù)流程描述文件,獲得所述組合服務(wù)的測試環(huán)境部署信息, 并根據(jù)所述測試環(huán)境部署信息構(gòu)建測試環(huán)境;所述組合服務(wù)為基于業(yè)務(wù)流程建模標(biāo)記語言 BPMN構(gòu)建的;解析演化前的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第一執(zhí)行流信息,解析演化后的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第二執(zhí)行流信息;并對比所述第一執(zhí)行流信息和第二執(zhí)行流信息,獲取相對于所述第一執(zhí)行流信息發(fā)生變化的第二執(zhí)行流信息作為回歸測試路徑;分析所述回歸測試路徑,得到所述回歸測試路徑的條件約束信息;并根據(jù)所述回歸測試路徑以及條件約束信息,獲取執(zhí)行所述組合服務(wù)所需的輸入?yún)?shù),根據(jù)所述輸入?yún)?shù)生成測試用例;在所述測試環(huán)境中執(zhí)行所述測試用例,并根據(jù)測試執(zhí)行結(jié)果獲得所述組合服務(wù)的測試結(jié)果。
2.根據(jù)權(quán)利要求I所述的組合服務(wù)的回歸測試方法,其特征在于,所述測試環(huán)境部署信息,包括組成所述組合服務(wù)的各原子服務(wù)的名稱、地址;以及用于測試所述組合服務(wù)的測試容器的地址信息;所述根據(jù)測試環(huán)境部署信息構(gòu)建測試環(huán)境,包括根據(jù)所述原子服務(wù)的名稱、地址,從服務(wù)庫下載所述原子服務(wù)至所述測試容器。
3.根據(jù)權(quán)利要求2所述的組合服務(wù)的回歸測試方法,其特征在于,所述獲取相對于所述第一執(zhí)行流信息發(fā)生變化的第二執(zhí)行流信息作為回歸測試路徑,包括獲取相對于所述第一執(zhí)行流信息,受業(yè)務(wù)流程變更影響的第二執(zhí)行流信息作為回歸測試路徑,所述業(yè)務(wù)流程變更包括執(zhí)行流信息中的節(jié)點數(shù)量的增加、刪除。
4.根據(jù)權(quán)利要求2所述的組合服務(wù)的回歸測試方法,其特征在于,所述獲取相對于所述第一執(zhí)行流信息發(fā)生變化的第二執(zhí)行流信息作為回歸測試路徑,包括獲取相對于所述第一執(zhí)行流信息,受原子服務(wù)綁定變化影響的第二執(zhí)行流信息作為回歸測試路徑,所述原子服務(wù)綁定變化包括執(zhí)行流信息中的節(jié)點所綁定的原子服務(wù)發(fā)生替換。
5.根據(jù)權(quán)利要求I所述的組合服務(wù)的回歸測試方法,其特征在于,分析所述回歸測試路徑,得到所述回歸測試路徑的條件約束信息,包括遍歷所述回歸測試路徑上的所有邊,得到所述回歸測試路徑中的條件約束信息,所述條件約束信息包括所述回歸測試路徑上節(jié)點的輸入信息和輸出信息,或者為條件轉(zhuǎn)移信肩、O
6.一種組合服務(wù)的回歸測試裝置,其特征在于,包括測試環(huán)境部署模塊,用于解析被測的組合服務(wù)的業(yè)務(wù)流程描述文件,獲得所述組合服務(wù)的執(zhí)行流信息和測試環(huán)境部署信息,并根據(jù)所述測試環(huán)境部署信息構(gòu)建測試環(huán)境;所述組合服務(wù)為基于業(yè)務(wù)流程建模標(biāo)記語言BPMN構(gòu)建的;測試路徑選擇模塊,用于解析演化前的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第一執(zhí)行流信息,解析演化后的所述組合服務(wù)的業(yè)務(wù)流程描述文件,獲得第二執(zhí)行流信息;并對比所述第一執(zhí)行流信息和第二執(zhí)行流信息,獲取相對于所述第一執(zhí)行流信息發(fā)生變化的第二執(zhí)行流信息作為回歸測試路徑;測試用例生成模塊,用于分析所述回歸測試路徑,得到所述回歸測試路徑的條件約束信息;并根據(jù)所述回歸測試路徑以及條件約束信息,獲取執(zhí)行所述組合服務(wù)所需的輸入?yún)?shù),根據(jù)所述輸入?yún)?shù)生成測試用例;測試用例執(zhí)行模塊,用于在所述測試環(huán)境中執(zhí)行所述測試用例;測試結(jié)果查看模塊,用于根據(jù)測試執(zhí)行結(jié)果獲得組合服務(wù)的測試結(jié)果。
7.根據(jù)權(quán)利要求6所述的組合服務(wù)的回歸測試裝置,其特征在于,所述測試環(huán)境部署模塊,包括解析單元,用于解析被測的組合服務(wù)的業(yè)務(wù)流程描述文件,獲得所述組合服務(wù)的執(zhí)行流信息和測試環(huán)境部署信息;所述測試環(huán)境部署信息包括組成所述組合服務(wù)的各原子服務(wù)的名稱、地址;以及用于測試所述組合服務(wù)的測試容器的地址信息;部署單元,用于根據(jù)所述原子服務(wù)的名稱、地址,從服務(wù)庫下載所述原子服務(wù)至所述測試容器。
8.根據(jù)權(quán)利要求6所述的組合服務(wù)的回歸測試裝置,其特征在于,所述測試路徑選擇模塊,包括第一單元,用于獲取相對于所述第一執(zhí)行流信息,受因業(yè)務(wù)流程變更影響的第二執(zhí)行流信息作為回歸測試路徑,所述業(yè)務(wù)流程變更包括執(zhí)行流信息中的節(jié)點數(shù)量的增加、刪除。
9.根據(jù)權(quán)利要求6所述的組合服務(wù)的回歸測試裝置,其特征在于,所述測試路徑選擇模塊,包括第二單元,用于獲取相對于所述第一執(zhí)行流信息,受原子服務(wù)綁定變化影響的第二執(zhí)行流信息作為回歸測試路徑,所述原子服務(wù)綁定變化包括執(zhí)行流信息中的節(jié)點所綁定的原子服務(wù)發(fā)生替換。
10.根據(jù)權(quán)利要求6所述的組合服務(wù)的回歸測試裝置,其特征在于,所述測試用例生成模塊,具體用于,遍歷所述回歸測試路徑上的所有邊,得到所述回歸測試路徑中的條件約束信息,所述條件約束信息包括所述回歸測試路徑上節(jié)點的輸入信息和輸出信息,或者為條件轉(zhuǎn)移信
全文摘要
本發(fā)明提供一種組合服務(wù)的回歸測試方法和裝置,其中方法包括解析被測的組合服務(wù)的業(yè)務(wù)流程描述文件,獲得所述組合服務(wù)的執(zhí)行流信息和測試環(huán)境部署信息,并根據(jù)所述測試環(huán)境部署信息構(gòu)建測試環(huán)境;對比所述組合服務(wù)演化前后的執(zhí)行流信息,獲取受演化影響的執(zhí)行流信息作為回歸測試路徑;分析所述回歸測試路徑,得到所述回歸測試路徑的條件約束信息;并根據(jù)所述受演化影響的執(zhí)行流信息以及條件約束信息,獲取執(zhí)行所述組合服務(wù)所需的輸入?yún)?shù),根據(jù)所述輸入?yún)?shù)生成測試用例;執(zhí)行所述測試用例,并根據(jù)測試執(zhí)行結(jié)果獲得所述組合服務(wù)的測試結(jié)果。本發(fā)明克服了對組合服務(wù)的測試停留在靜態(tài)驗證邏輯功能的缺陷,實現(xiàn)了組合服務(wù)的動態(tài)測試。
文檔編號G06F11/36GK102591772SQ20111042142
公開日2012年7月18日 申請日期2011年12月15日 優(yōu)先權(quán)日2011年12月15日
發(fā)明者劉旭東, 吳茜, 周超, 懷進鵬, 蔣俊彥 申請人:北京航空航天大學(xué)