專利名稱:基于工作流的通用軟件測試過程模型的建立方法
技術(shù)領域:
本發(fā)明涉及計算機技術(shù)領域,具體涉及一種基于工作流的通用軟件測試過程模型的建立方法。
背景技術(shù):
軟件測試,是指在軟件投入運行前,對軟件需求分析、設計規(guī)格說明和編碼的最終復查。軟件測試過程是指軟件測試的不同開發(fā)階段,通常包括單元測試、集成測試、系統(tǒng)測試和驗收測試。其中,對每一個測試階段均定義了相關(guān)測試人員的進出準則、規(guī)范活動及輸出的工作產(chǎn)品。完善的軟件測試過程可以有效的提高軟件測試的質(zhì)量?,F(xiàn)有軟件測試過程模型通常是基于業(yè)務邏輯而建立的,當業(yè)務發(fā)生變動時,原軟件測試過程模型不再適用,因此,現(xiàn)有軟件測試過程模型具有通用性差的缺點。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供一種基于工作流的通用軟件測試過程模型的建立方法,將工作流方法引入軟件測試過程,并且基于原子活動邏輯來建立通用軟件測試過程模型,從而提高了通用軟件測試過程模型的通用性。本發(fā)明所采用的技術(shù)方案如下本發(fā)明提供一種基于工作流的通用軟件測試過程模型的建立方法,包括以下步驟SI :將軟件測試過程中的各個業(yè)務活動細化,得到原子活動;S2 :定義所述原子活動的要素,得到所述通用軟件測試過程模型的組成結(jié)構(gòu)圖;S3:根據(jù)所述組成結(jié)構(gòu)圖通過軟件測試過程描述語言定義元素,并設置與所述元素對應的屬性;通過所述元素和所述屬性得到所述原子活動的原子活動邏輯;S4 :利用XML語言對所述原子活動邏輯進行形式化描述,得到與所述軟件測試過程對應的軟件測試過程模型。優(yōu)選的,所述原子活動為包括以下信息的活動與所述原子活動對應的輸入數(shù)據(jù)、 與所述原子活動對應的輸出數(shù)據(jù)、與所述原子活動對應的操作方法、與所述原子活動對應的參與者信息、與所述原子活動對應的功能和與所述原子活動對應的目的;各個所述原子活動間通過預設邏輯相關(guān)聯(lián)。優(yōu)選的,S2中,所述要素包括與所述原子活動對應的軟件測試過程定義、測試參與者的活動、所述原子活動的變遷條件、測試相關(guān)數(shù)據(jù)信息、角色信息、測試參與者信息和應用程序;其中,所述軟件測試過程定義為定義所述軟件測試過程的基本信息,所述基本信息包括所述軟件測試過程的過程簡介信息、所述軟件測試過程的開始時間、所述軟件測試過程的創(chuàng)建者信息;
所述測試參與者的活動為所述測試參與者需要執(zhí)行的具體任務;所述原子活動的變遷條件為所述原子活動向其他原子活動發(fā)生變遷的條件,如果滿足所述變遷條件,則進行變遷,否則不進行變遷;所述測試相關(guān)數(shù)據(jù)信息包括所述原子活動的變遷方向、與所述原子活動對應的控制數(shù)據(jù);所述控制數(shù)據(jù)為全局數(shù)據(jù);所述角色信息為所述測試參與者的具體角色;所述測試參與者信息包括所述測試參與者的姓名信息;所述應用程序為被所述原子活動調(diào)用的應用程序,所述應用程序為全局變量。優(yōu)選的,所述組成結(jié)構(gòu)圖為所述原子活動的UML圖。優(yōu)選的,S3中,所述元素包括源節(jié)點、目標節(jié)點、轉(zhuǎn)移條件、活動節(jié)點、測試數(shù)據(jù)、 應用程序、測試參與者;其中,所述活動節(jié)點用于標記所述原子活動;所述源節(jié)點用于標記與當前連接線的出發(fā)點對應的活動節(jié)點;所述目標節(jié)點用于標記與所述當前連接線的結(jié)束點對應的活動節(jié)點;所述轉(zhuǎn)移條件用于標記所述原子活動間的變遷條件,如果滿足所述變遷條件,則由當前原子活動跳轉(zhuǎn)到下一個原子活動;如果不滿足所述變遷條件,則所述當前原子活動不進行跳轉(zhuǎn);所述測試數(shù)據(jù)用于表示所述軟件測試過程中的所述控制數(shù)據(jù),所述測試數(shù)據(jù)為全
局變量;所述應用程序用于表示被調(diào)用的應用程序,所述應用程序為全局變量;所述測試參與者用于標記所述軟件測試過程中各個所述原子活動的參與者,所述測試參與者為全局變量。優(yōu)選的,所述活動節(jié)點包括以下內(nèi)容手動節(jié)點用于標記需要所述測試參與者手動執(zhí)行的原子活動;自動節(jié)點用于標記通過調(diào)用所述應用程序完成的原子活動;選擇節(jié)點用于標記所述軟件測試過程中多個任務流的匯集情況;并行節(jié)點用于標記需要并行執(zhí)行的多個所述原子活動;子過程節(jié)點用于標記子過程活動;開始節(jié)點用于標記所述通用軟件測試過程模型的唯一入口點;結(jié)束節(jié)點用于標記所述通用軟件測試過程模型的唯一出口點。優(yōu)選的,S4中,所述利用XML語言對所述原子活動邏輯進行形式化描述,具體為分別定義以下內(nèi)容定義各個標記的公共屬性;定義應用程序;定義變量;定義傳輸線;附加定義活動節(jié)點;定義標志節(jié)點;定義任務節(jié)點;過程定義標記;過程定義XML文件根元素標記。本發(fā)明的有益效果如下本發(fā)明提供的基于工作流的通用軟件測試過程模型的建立方法,該方法引入工作流方法中相關(guān)技術(shù)的概念及關(guān)系,并參考工作流元模型,設計出通用軟件測試過程模型。該模型克服了一般現(xiàn)有的軟件測試過程模型由于基于業(yè)務邏輯而建立所造成的不能夠通用的缺點,當業(yè)務發(fā)生變動時,該模型依然適用,因此,具有通用性強的優(yōu)點。
圖I為本發(fā)明實施例提供的基于工作流的通用軟件測試過程模型的建立方法的流程示意圖;圖2為本發(fā)明實施例提供的業(yè)務邏輯和原子活動邏輯的雙層結(jié)構(gòu)圖;圖3為本發(fā)明實施例提供的一種原子活動要素的UML圖;圖4為本發(fā)明實施例提供的軟件測試過程描述語言的元素層次圖;圖5為本發(fā)明實施例提供的語言元素描述軟件測試過程步驟圖;圖6為本發(fā)明實施例提供的系統(tǒng)測試基本流程圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明的一個具體的實施方式進行說明。本發(fā)明提供一種基于工作流的通用軟件測試過程模型的建立方法,該方法引入工作流方法中相關(guān)技術(shù)的概念及關(guān)系,并參考工作流元模型,設計出通用軟件測試過程模型。 該模型克服了一般現(xiàn)有的軟件測試過程模型由于基于業(yè)務邏輯而建立所造成的不能夠通用的缺點,當業(yè)務發(fā)生變動時,該模型依然適用。本發(fā)明提供的基于工作流的通用軟件測試過程模型的建立方法,如圖I所示,包括以下步驟SlOl :將軟件測試過程中的各個業(yè)務活動細化,得到原子活動。本步驟中,將軟件測試過程分兩個層面描述,將業(yè)務部分進行細化,分解成更細的原子活動,從而形成高層為業(yè)務邏輯,底層為原子活動邏輯的模型,而底層的原子活動邏輯是更為本質(zhì)的描述方法,并且,原子活動不可再分解,從而提高了軟件測試過程的通用性和靈活性。如圖2所示,為業(yè)務邏輯和原子活動邏輯的雙層結(jié)構(gòu)圖。將多個原子活動通過相應的規(guī)則連接起來,就形成了一個測試過程。因此,當給定測試對象以后,對軟件測試過程以原子活動為單位細分并加以關(guān)聯(lián), 從而能夠?qū)崿F(xiàn)所有的軟件測試過程中的業(yè)務活動都可以由相應的原子活動組合而成。所述原子活動為包括以下信息的活動與所述原子活動對應的輸入數(shù)據(jù)、與所述原子活動對應的輸出數(shù)據(jù)、與所述原子活動對應的操作方法、與所述原子活動對應的參與者信息、與所述原子活動對應的功能和與所述原子活動對應的目的;各個所述原子活動間通過預設邏輯相關(guān)聯(lián)。其中,原子活動間的邏輯通過下面步驟介紹,在此不再贅述。S102:定義所述原子活動的要素,得到所述通用軟件測試過程模型的組成結(jié)構(gòu)圖;本發(fā)明中,為每一個原子活動均定義對應的要素,其中,要素的種類可根據(jù)實際使用需要進行調(diào)整,如圖3所示,為當采用7個要素時,得到的一種原子活動要素的 UML (Unified Modeling Language,統(tǒng)一建模語言)圖,所述要素包括與所述原子活動對應的軟件測試過程定義、測試參與者的活動、所述原子活動的變遷條件、測試相關(guān)數(shù)據(jù)信息、 角色信息、測試參與者信息和應用程序;其中,所述軟件測試過程定義為定義所述軟件測試過程的基本信息,所述基本信息包括所述軟件測試過程的過程簡介信息、所述軟件測試過程的開始時間、所述軟件測試過程的創(chuàng)建者信息;
所述測試參與者的活動為所述測試參與者需要執(zhí)行的具體任務;所述原子活動的變遷條件為所述原子活動向其他原子活動發(fā)生變遷的條件,如果滿足所述變遷條件,則進行變遷,否則不進行變遷;所述測試相關(guān)數(shù)據(jù)信息包括所述原子活動的變遷方向、與所述原子活動對應的控制數(shù)據(jù);所述控制數(shù)據(jù)為全局數(shù)據(jù);所述角色信息為所述測試參與者的具體角色;所述測試參與者信息包括所述測試參與者的姓名信息;所述應用程序為被所述原子活動調(diào)用的應用程序,所述應用程序為全局變量。S103:根據(jù)所述組成結(jié)構(gòu)圖通過軟件測試過程描述語言定義元素,并設置與所述元素對應的屬性;通過所述元素和所述屬性得到所述原子活動的原子活動邏輯;本發(fā)明中,定義的元素的具體數(shù)量根據(jù)實際需要進行調(diào)整,本實施例中,以提供7 個元素為例進行說明。如圖4所示,為軟件測試過程描述語言的元素層次圖,如圖5所示, 為語言元素描述軟件測試過程步驟圖,所述元素包括源節(jié)點、目標節(jié)點、轉(zhuǎn)移條件、活動節(jié)點、測試數(shù)據(jù)、應用程序、測試參與者;其中,所述活動節(jié)點用于標記所述原子活動;所述源節(jié)點用于標記與當前連接線的出發(fā)點對應的活動節(jié)點;所述目標節(jié)點用于標記與所述當前連接線的結(jié)束點對應的活動節(jié)點;所述轉(zhuǎn)移條件用于標記所述原子活動間的變遷條件,如果滿足所述變遷條件,則由當前原子活動跳轉(zhuǎn)到下一個原子活動;如果不滿足所述變遷條件,則所述當前原子活動不進行跳轉(zhuǎn);所述測試數(shù)據(jù)用于表示所述軟件測試過程中的所述控制數(shù)據(jù),所述測試數(shù)據(jù)為全局變量;如判斷“轉(zhuǎn)移條件”是否為真時所需要的數(shù)據(jù)即為控制數(shù)據(jù)。所述應用程序用于表示被調(diào)用的應用程序,所述應用程序為全局變量;所述測試參與者用于標記所述軟件測試過程中各個所述原子活動的參與者,所述測試參與者為全局變量。進一步的,所述活動節(jié)點包括以下內(nèi)容手動節(jié)點用于標記需要所述測試參與者手動執(zhí)行的原子活動;自動節(jié)點用于標記通過調(diào)用所述應用程序完成的原子活動,而不需要人工參與;選擇節(jié)點用于標記所述軟件測試過程中多個任務流的匯集情況;并行節(jié)點用于標記需要并行執(zhí)行的多個所述原子活動;子過程節(jié)點用于標記子過程活動,用于比較復雜的軟件測試過程描述;開始節(jié)點用于標記所述通用軟件測試過程模型的唯一入口點,它沒有前驅(qū)節(jié)點, 所有的軟件測試過程模型都是從開始節(jié)點執(zhí)行,然后根據(jù)相關(guān)條件節(jié)點激活后續(xù)活動節(jié)占.結(jié)束節(jié)點用于標記所述通用軟件測試過程模型的唯一出口點,它沒有后續(xù)節(jié)點, 一旦激活了結(jié)束節(jié)點,則整個軟件測試過程結(jié)束。S104 :利用XML(extensible markup language,可擴展標記語言)語言對所述原子活動邏輯進行形式化描述,得到與所述軟件測試過程對應的軟件測試過程模型。
7
所述利用XML語言對所述原子活動邏輯進行形式化描述,具體為分別定義以下內(nèi)容定義各個標記的公共屬性;定義應用程序;定義變量;定義傳輸線;附加定義活動節(jié)點; 定義標志節(jié)點;定義任務節(jié)點;過程定義標記;過程定義XML文件根元素標記。利用XML語言對底層原子活動邏輯進行形式化描述,提供與平臺無關(guān)的模型表示方法。該描述有利于軟件測試過程在跨平臺或多平臺實現(xiàn)。因此,當給定一個測試對象的時候,根據(jù)以上步驟即可方便的對該軟件測試對象定義一個測試過程,實現(xiàn)對測試過程的形式化、標準化的描述,再經(jīng)過具體的一系列工作, 得到有效的測試結(jié)果?;诠ぷ髁鞯乃枷耄ㄟ^使用本發(fā)明提供的軟件測試過程模型,將軟件測試過程分解成八層結(jié)構(gòu),使用XML語言八層結(jié)構(gòu)進行描述。下面以基于GJBZ-141標準體系的軟件系統(tǒng)測試中的一個階段性過程為例,介紹該通用軟件測試過程模型的應用方式。基于GJBZ-141的軟件系統(tǒng)測試是以完整的、集成的計算機系統(tǒng)為測試對象,目的是在真實系統(tǒng)或仿真系統(tǒng)工作環(huán)境下,驗證完整的軟件配置項能否和系統(tǒng)正確連接、并滿足系統(tǒng)或子系統(tǒng)設計文檔和軟件開發(fā)任務書規(guī)定的要求。系統(tǒng)測試的人員配置如下測試項目負責人管理監(jiān)督測試項目、提供技術(shù)指導、獲取適當?shù)馁Y源、指定基線、 技術(shù)協(xié)調(diào)、負責項目的安全保密和質(zhì)量管理。測試分析員確定測試計劃、測試內(nèi)容、測試方法、測試數(shù)據(jù)生成方法、測試(軟、 硬件)環(huán)境、測試工具、評估測試工作的有效性。測試設計員設計測試用例,確定測試用例的優(yōu)先級,建立測試環(huán)境。測試程序員編寫測試輔助軟件。測試員執(zhí)行測試、記錄測試結(jié)果。測試系統(tǒng)管理員對測試環(huán)境和資產(chǎn)進行管理和維護。配置管理員設置、管理和維護測試配置管理數(shù)據(jù)庫。系統(tǒng)測試一般由軟件的需方組織、由獨立于軟件開發(fā)的組織實施。如果系統(tǒng)測試由第三方實施,必須是軍方認可的第三方測試組織。系統(tǒng)測試要求強化配置管理,已經(jīng)通過測試的系統(tǒng)狀態(tài)和各項參數(shù)應詳細記錄, 歸檔保存,未經(jīng)測試負責人允許,任何人無權(quán)改變。系統(tǒng)測試過程由四個階段組成,分別是測試策劃階段、測試設計與實現(xiàn)階段、測試執(zhí)行階段、測試總結(jié)階段。每個階段都會有相應的驗證工作,如果該階段的測試工作通過驗證,則開始下一階段,否則繼續(xù)迭代執(zhí)行本階段工作。每個測試階段都由很多測試任務構(gòu)成,篇幅所限,我們只介紹測試設計與實現(xiàn)、測試執(zhí)行兩個階段的測試任務。在測試設計與實現(xiàn)階段,測試設計人員和測試程序員應該完成以下測試工作任務I)設計測試用例將需測試的軟件特性分解,針對分解后的每種情況設計測試用例,每個測試用例的設計應符合GJBZ-141標準的要求;2)獲取測試數(shù)據(jù)包括獲取現(xiàn)有的測試數(shù)據(jù)和生成新的測試數(shù)據(jù),并按照要求驗證所有數(shù)據(jù);3)確定測試順序可從資源約束、風險以及測試用例失效造成的影響等方面考慮;4)獲取測試資源對于支持測試的軟件,有的需要從現(xiàn)有的工具中選定,有的需要開發(fā);5)編寫測試程序包括開發(fā)測試支持工具;6)建立和校準測試環(huán)境;7)按照GJBZ-141標準編寫系統(tǒng)測試說明;8)評審和驗證。在明確了軟件測試過程實例的基本內(nèi)容之后,我們開始用軟件測試過程描述語言來描述這個測試過程實例。首先要對測試過程實例做深入分析。經(jīng)分析可知,測試過程實例包括一個有4個任務節(jié)點的串行的過程,這四個過程分別為測試策劃、測試設計與實現(xiàn)、測試執(zhí)行、測試總結(jié),每個測試任務節(jié)點之間都有相應的轉(zhuǎn)換條件。如由測試策劃階段轉(zhuǎn)向測試設計與實現(xiàn)階段的轉(zhuǎn)換條件為測試策劃通過評審。即如果轉(zhuǎn)換條件不滿足,那么測試策劃階段繼續(xù)迭代進行。實例對各階段的人員配置做了明確的說明測試策劃階段由測分析員參與;測試設計與實現(xiàn)階段由測試設計員和測試程序員參與;測試執(zhí)行階段由測試員和測試分析員參與,測試總結(jié)階段由測試分析員參與。 圖6明確地表示了該測試過程。下面介紹如何利用軟件測試過程描述語言描述該流程第一步定義全局變量。測試過程實例的流程涉及到了四次驗證,每次驗證都需要有一個條件判斷,因此可將四個驗證條件定義為BOOL型的全局變量,具體如下定義BOOL型的全局變量TestSchemeIsOK,若該變量的值為True,表明測試策劃階段驗證通過;若值為False,表明驗證未通過。定義BOOL型的全局變量DesignandlmplementationIsOK,若該變量的值為True, 表明測試設計與實現(xiàn)階段驗證通過;若值為False,表明驗證未通過。定義BOOL型的全局變量TestExecutionIsOK,若該變量的值為True,表明測試執(zhí)行階段驗證通過;若值為False,表明驗證未通過。定義BOOL型的全局變量TestSumlsOK,若該變量的值為True,表明測試總結(jié)階段驗證通過;若值為False,表明驗證未通過。用軟件測試過程描述語言描述這四個全局變量<datas>
〈Data dataType=’BOOL’ default Value=5 False description=’驗證測試策劃, id=’Check01,mergeRule=,0’ name=’ TestSchemelsOK’〉
〈Data dataType=’BOOL’ defaultValue=5False5 description=’驗證設計與實現(xiàn)’ id=’Check02’ mergeRule=’。’ name=’ DesignandlmplementationIsOK5 >
<Data dataType=’BO〇L’ default Value=5 False description=’驗證測試執(zhí)行’ id=’Check03’ mergeRule=,0’ name=5 TestExecutionIsOK5 >
〈Data dataType=’B0〇L’ default Value=5 False description=’ 驗證測試總結(jié), id=’Check04’ mergeRule=^7 name=’ TestSumlsOK’〉
</datas>第二步分析并定義各節(jié)點類型。首先,分析四個任務節(jié)點,每一個節(jié)點實際上都是子過程節(jié)點(其中測試設計與實現(xiàn)、測試執(zhí)行兩個子過程節(jié)點在后文中會詳細描述),各個子過程節(jié)點之間是順序關(guān)系, 用WF-STPDL分別定義,我們先給出描述,然后進行解釋,具體如下測試策劃階段的任務節(jié)點定義
<SubprocNode ID=7TestStepOr description=,測試策劃階段 ’ name=, TestScheme5 >
〈targets/〉
<sources/>
<extendProperties/>
<subProc processed=’SubO I’ processName=’ TestSchemeSubProcess’ serverName=’?’ versionName=’?,〉
<subProcParams/>
</SubprocNode>測試設計與實現(xiàn)階段的任務節(jié)點定義〈SubprocNode ID=,TestStep02’ description=’測試設計與實現(xiàn)階段’ name=’ DesignandImplementation5 >
〈targets/〉
<sources/>
<extendProperties/>
<subProcprocessed=’Sub02’processName=’
DesignandImplementationSubProcess’ ServerName=5 5 versionName=’?’〉 <subProcParams/>
〈/SubprocNode〉測試執(zhí)行階段的任務節(jié)點定義
〈SubprocNode ID=’TestStep03’ description=5 測試執(zhí)行階段 ’ name=’ TestExecution5 >
〈targets/〉
〈sources/〉
<extendProperties/>
<subProc processed=5 SubOS5 processName=’ TestExecutionSubProcess, serverName=,?’ versionName=’?,〉
<subProcParams/>
〈/SubprocNode〉測試總結(jié)階段的任務節(jié)點定義〈SubprocNode ID=’TestStep04’ description=’測試總結(jié)階段’ name=’ TestSum5
>
〈targets/〉
<sources/>
<extendProperties/>
<subProc processed=’Sub04’ processName=5 TestSumSubProcess, serverName=,?’ versionName=’?,〉
<subProcParams/>
〈/SubprocNode〉因為開始和結(jié)束標記節(jié)點、傳輸線等數(shù)據(jù)尚未定義,因而任務節(jié)點定義中相應的屬性值暫時未空。下面開始定義開始節(jié)點和結(jié)束節(jié)點開始節(jié)點的定義
〈StartNode ID=’Start’ description=’測試開始 ’ name=’TestStart’> 〈sources/〉
<extendProperties/>
</StartNode>結(jié)束節(jié)點定義
〈EndNode ID=5End5 description=’測試結(jié)束’ name=’TestEncf> 〈targets/〉
<extendProperties/>
〈/EndNode〉同理,因傳輸線等數(shù)據(jù)尚未定義,因而標記節(jié)點定義中相應的屬性值暫時為空。下面開始定義傳輸線。本過程測試實例包含5條傳輸線,每條傳輸線包含一個轉(zhuǎn)換條件,下面分別定義各傳輸線開始節(jié)點到測試策劃任務節(jié)點的傳輸線定義〈Transition description= ’開始至測試策劃’ id=’tran01, name=,tranOr priority=’I’ source=’Start’ target=’ TestStepOl’>
〈expression condition=,NULL7>
〈/Transition〉測試策劃到測試設計與實現(xiàn)的傳輸線定義
〈Transition description=,測試策劃到測試設計與實現(xiàn),id=’tran02’ name=’tran02’ priority=’2’ source=7TestStepOT target=5 TestStep02,>
〈expression condition=’ TestSchemelsOKV>
〈/Transition〉測試設計與實現(xiàn)到測試執(zhí)行的傳輸線定義
〈Transition description=,設計與實現(xiàn)到測試執(zhí)行, id=’tran03’ name=’tran03’ priority=^5 source=5TestStep025 target=5 TestStep03’>
〈expression condition=’ DesignandImplementationIsOKV>
〈/Transition〉測試執(zhí)行到測試總結(jié)的傳輸線定義
〈Transition description=’ 測試執(zhí)行到測試總結(jié)’ id=’tran04’ name=’tran04’ priority=^5 source=’TestStep03’ target=’ TestStep04,>
〈expression condition=’ TestExecutionIsOK V>
〈/Transition〉測試總結(jié)到過程實例結(jié)束的傳輸線定義
〈Transition description=’ 測試總結(jié)到過程實例結(jié)束 5 id=’tran05’ name=’tran05’ priority=555 source=5TestStep045 target=5 End’>
〈expression condition=’ TestSumlsOK’/〉
〈/Transition〉以上是5條傳輸線的定義,這些定義需要用傳輸線集合標簽組織起來,傳輸線集合標簽的定義為〈transitions/〉,它包含 0 個或以上的〈Transition/〉標記。定義完全部傳輸線之后,標記節(jié)點和任務節(jié)點的屬性即可以補全,且節(jié)點之間的聯(lián)系也建立起來了。
然后,我們需要定義測試過程實例的根節(jié)點和過程定義標記,它們用于描述實例的基本情況,具體如下
< xm1 version="l .0” encoding^^UTF-8,5 >
〈model: ProcessContent>
〈ProcessID=5 SystemTestInstance5buildTime=’12/9/2010’
builder=5QiaomuWang5 modifiedTime=,Null’ name=’ SystemTestInstance ’ ver si onNam e=5 B etaO I,>
〈/Process〉
〈/model :ProcessContent>最后,依據(jù)傳輸線、標記節(jié)點、任務節(jié)點之間的屬性對應關(guān)系,將任務節(jié)點和標記節(jié)點的相關(guān)屬性補充完整,就得到了最終的基于WF-STPDL的實例過程描述,代碼如下
< xml Version=tiI .0” encoding=“UTF-8’’?>
〈model: ProcessContent>
〈ProcessID=5 SystemTestInstance5
builder=7 QiaomuWang5 modifiedTime=’Null’ name=
buildTime=,12/9/2010, SystemTestInstance ’VersionName=5BetaO r>
<!--下面是全局變量節(jié)點-->
<datas>
〈Data dataType=’BOOL,defaultValue=Talse’ description=’驗證測試策劃’ id=’CheckOI’ mergeRule=’?!?name=’ TestSchemelsOK’〉
〈Data dataType=’BOOL’ default Value=7 F al se7 description=’驗證設計與實現(xiàn)’ id=’Check02’ mergeRule=,?!?name=’ DesignandlmplementationIsOK’ >
〈Data dataType=’BOOL’ defaultValue=Talse5 description=’驗證測試執(zhí)行’ id=’Check03’ mergeRule=,?!?name=5 Te stExecutionl sOK5 >
〈Data dataType=’BOOL’ default Value=5 F al se, description=’ 驗證測試總結(jié)’ id=’Check04’ mergeRule=,?!?name=, TestSumlsOK’〉
</datas>
<!--下面是傳輸線節(jié)點-->
〈transitions〉
<!__開始節(jié)點到測試策劃任務節(jié)點的傳輸線定義->
〈Transition description=’ 開始至測試策劃 ’ id=’tran01 ’ name=^tranOI ’ priority= 5T source=’Start’target=’ TestStepO T >
〈expression condition=,NULL7>
〈/Transition〉
<!--測試策劃到測試設計與實現(xiàn)的傳輸線定義
〈Transition description=,測試策劃到測試設計與實現(xiàn),id=’tran02’ name=’tran02’ priority=’2’ source=。TestStepOI’ target=’ TestStep02’>
〈expression condition=’ TestSchemelsOK7>
〈/Transition〉
<!--測試設計與實現(xiàn)到測試執(zhí)行的傳輸線定義
〈Transition description=’ 設計與實現(xiàn)到測試執(zhí)行 ’ id=’tran03’ name=5tran035 priority=’3’ source=,TestStep02’ target=’ TestStep03’>
〈expression condition=’ DesignandlmplementationIsOK7>〈/Transition〉
<!--測試執(zhí)行到測試總結(jié)的傳輸線定義:
〈Transition description=7 測試執(zhí)行到測試總結(jié)’ id=,tran04’ name=’tran04’ priority=^5 source=’TestStep03’ target=’ TestStep04’>
〈expression condition=’ TestExecutionIsOK 7>
〈/Transition〉
<!--測試總結(jié)到過程實例結(jié)束的傳輸線定義-->
〈Transition description=’ 測試總結(jié)到過程實例結(jié)束,id=’tran05’ name=’tran05’ priority=’5’ source=’TestStep04’ target=’ End’>
〈expression condition=5 TestSumlsOK’/〉
〈/Transition〉
<!--下面是標記節(jié)點定義 <StartNode ID=’Start’ description=’測試開始 ’ name=’TestStart’>
<sources>
〈source transitionName=,tranOr>
〈/sources〉
</StartNode>
〈EndNode ID=5End5 description=’測試結(jié)束’ name=’TestEnd5>
〈targets〉
<target transitioiiName=’tran05 ’>
〈/targets〉
〈/EndNode〉
<!--下面是任務節(jié)點定義-->
<!--4個子過程節(jié)點-->
〈SubprocNode ID=,TestStepOI,description=,測試策劃階段 ’ name=, TestScheme7 >
〈targets〉
<target transitionName=,traii015>〈/targets〉
<sources>
<source tran siti onNam e=7tran027>
</sources>
<subProc processed=’SubO I’ processName=’ TestSchemeSubProcess’ serverName^’localhost’ versionName=,BataOr>
<subProcParams/>
〈/SubprocNode〉
<SubprocNode ID=’TestStep02’ description=’測試設計與實現(xiàn)階段’ name=’ DesignandImplementation ’ >
〈targets〉
〈target transitionName=,traii02,>
〈/targets〉
<sources>
<source tran si ti onNam e=7 tran 0 37 >
</sources>
<subProcprocessed=’Sub02’processName=’
De signandlmpl ementati on SubPr ocess7serverNamdocalhost’
VersionName=5BataO r>
<subProcParams/>
〈/SubprocNode〉
〈SubprocNode ID=’TestStep03’ description=’ 測試執(zhí)行階段’ name=’ TestExecution,>
〈targets〉
<target transitionName=’tran03 ’>
〈/targets〉<sources>
〈source transitionName=,tran04 5>
</sources>
<subProc processed=,Sub03’ processName=5 TestExecutionSubProcess5 ServerName=5IocalhoSt5 VersionName=5BateO r>
<subProcParams/>
〈/SubprocNode〉
〈SubprocNode ID=’TestStep04’ description=’ 測試總結(jié)階段 ’ name=’ TestSum, >
〈targets〉
〈target transitionName=,tran03 7>
</targets>
<sources>
〈source transitionName=,tran04 5>
</sources>
<subProc processed=’Sub04’ processName=’ TestSumSubProcess, ServerName=5IocalhoSt5 VersionName=5BataO r>
<subProcParams/>
〈/SubprocNode〉
〈/Process〉
</model:ProcessContent>以上是用WF-STPDL描述的一個簡單的軟件系統(tǒng)測試過程實例。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于工作流的通用軟件測試過程模型的建立方法,其特征在于,包括以下步驟Si:將軟件測試過程中的各個業(yè)務活動細化,得到原子活動;52:定義所述原子活動的要素,得到所述通用軟件測試過程模型的組成結(jié)構(gòu)圖;53:根據(jù)所述組成結(jié)構(gòu)圖通過軟件測試過程描述語言定義元素,并設置與所述元素對應的屬性;通過所述元素和所述屬性得到所述原子活動的原子活動邏輯;54:利用XML語言對所述原子活動邏輯進行形式化描述,得到與所述軟件測試過程對應的軟件測試過程模型。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述原子活動為包括以下信息的活動■ 與所述原子活動對應的輸入數(shù)據(jù)、與所述原子活動對應的輸出數(shù)據(jù)、與所述原子活動對應的操作方法、與所述原子活動對應的參與者信息、與所述原子活動對應的功能和與所述原子活動對應的目的;各個所述原子活動間通過預設邏輯相關(guān)聯(lián)。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,S2中,所述要素包括與所述原子活動對應的軟件測試過程定義、測試參與者的活動、所述原子活動的變遷條件、測試相關(guān)數(shù)據(jù)信息、角色信息、測試參與者信息和應用程序;其中,所述軟件測試過程定義為定義所述軟件測試過程的基本信息,所述基本信息包括所述軟件測試過程的過程簡介信息、所述軟件測試過程的開始時間、所述軟件測試過程的創(chuàng)建者信息;所述測試參與者的活動為所述測試參與者需要執(zhí)行的具體任務;所述原子活動的變遷條件為所述原子活動向其他原子活動發(fā)生變遷的條件,如果滿足所述變遷條件,則進行變遷,否則不進行變遷;所述測試相關(guān)數(shù)據(jù)信息包括所述原子活動的變遷方向、與所述原子活動對應的控制數(shù)據(jù);所述控制數(shù)據(jù)為全局數(shù)據(jù);所述角色信息為所述測試參與者的具體角色;所述測試參與者信息包括所述測試參與者的姓名信息;所述應用程序為被所述原子活動調(diào)用的應用程序,所述應用程序為全局變量。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,S2中,所述組成結(jié)構(gòu)圖為所述原子活動的 UML 圖。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,S3中,所述元素包括源節(jié)點、目標節(jié)點、 轉(zhuǎn)移條件、活動節(jié)點、測試數(shù)據(jù)、應用程序、測試參與者;其中,所述活動節(jié)點用于標記所述原子活動;所述源節(jié)點用于標記與當前連接線的出發(fā)點對應的活動節(jié)點;所述目標節(jié)點用于標記與所述當前連接線的結(jié)束點對應的活動節(jié)點;所述轉(zhuǎn)移條件用于標記所述原子活動間的變遷條件,如果滿足所述變遷條件,則由當前原子活動跳轉(zhuǎn)到下一個原子活動;如果不滿足所述變遷條件,則所述當前原子活動不進行跳轉(zhuǎn);所述測試數(shù)據(jù)用于表示所述軟件測試過程中的所述控制數(shù)據(jù),所述測試數(shù)據(jù)為全局變所述應用程序用于表示被調(diào)用的應用程序,所述應用程序為全局變量;所述測試參與者用于標記所述軟件測試過程中各個所述原子活動的參與者,所述測試參與者為全局變量。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述活動節(jié)點包括以下內(nèi)容手動節(jié)點用于標記需要所述測試參與者手動執(zhí)行的原子活動;自動節(jié)點用于標記通過調(diào)用所述應用程序完成的原子活動;選擇節(jié)點用于標記所述軟件測試過程中多個任務流的匯集情況;并行節(jié)點用于標記需要并行執(zhí)行的多個所述原子活動;子過程節(jié)點用于標記子過程活動;開始節(jié)點用于標記所述通用軟件測試過程模型的唯一入口點;結(jié)束節(jié)點用于標記所述通用軟件測試過程模型的唯一出口點。
7.根據(jù)權(quán)利要求I所述的方法,其特征在于,S4中,所述利用XML語言對所述原子活動邏輯進行形式化描述,具體為分別定義以下內(nèi)容定義各個標記的公共屬性;定義應用程序;定義變量;定義傳輸線;附加定義活動節(jié)點;定義標志節(jié)點;定義任務節(jié)點;過程定義標記;過程定義XML文件根元素標記。
全文摘要
本發(fā)明提供的基于工作流的通用軟件測試過程模型的建立方法,包括以下步驟S1將軟件測試過程中的各個業(yè)務活動細化,得到原子活動;S2定義所述原子活動的要素,得到所述通用軟件測試過程模型的組成結(jié)構(gòu)圖;S3根據(jù)所述組成結(jié)構(gòu)圖通過軟件測試過程描述語言定義元素,并設置與所述元素對應的屬性;通過所述元素和所述屬性得到所述原子活動的原子活動邏輯;S4利用XML語言對所述原子活動邏輯進行形式化描述,得到與所述軟件測試過程對應的軟件測試過程模型。本發(fā)明克服了一般現(xiàn)有的軟件測試過程模型由于基于業(yè)務邏輯而建立所造成的不能夠通用的缺點,當業(yè)務發(fā)生變動時,該模型依然適用,因此,具有通用性強的優(yōu)點。
文檔編號G06F11/36GK102591779SQ20121000829
公開日2012年7月18日 申請日期2012年1月12日 優(yōu)先權(quán)日2012年1月12日
發(fā)明者劉業(yè), 王喬木, 王軼辰, 蔣崇武 申請人:北京賽若科技有限公司, 王軼昆, 王軼辰, 蔣崇武