專利名稱:一種基于著色petri網(wǎng)的軟件并行測(cè)試方法及工具的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件測(cè)試方法,特別地涉及一種基于著色petri網(wǎng)的軟件并行測(cè)試方法。
背景技術(shù):
目前在軟件開(kāi)發(fā)建模中,很少有模型語(yǔ)言既能夠驗(yàn)證軟件功能流程的正確性,又 能評(píng)價(jià)軟件性能,而著色Petri網(wǎng)(簡(jiǎn)稱CPN)可同時(shí)滿足這兩方面的要求。CPN是在基本 Petri網(wǎng)基礎(chǔ)上提出的一種高級(jí)Petri網(wǎng)和層次Petri網(wǎng),是一種可以對(duì)系統(tǒng)進(jìn)行檢驗(yàn)和仿 真的有色建模語(yǔ)言。它通過(guò)將相似組件或行為進(jìn)行折疊的方式來(lái)表征一個(gè)具有若干相似部 件的大系統(tǒng),從而解決了系統(tǒng)模型規(guī)模不可控制的問(wèn)題。CPN除具有普通Petri網(wǎng)所具有 的可描述系統(tǒng)動(dòng)態(tài)特性、表示系統(tǒng)競(jìng)爭(zhēng)和沖突現(xiàn)象等優(yōu)點(diǎn)外,還具有模型結(jié)構(gòu)簡(jiǎn)單、可重用 性強(qiáng)等優(yōu)點(diǎn)。CPN中顏色集的概念能夠表示更為豐富的數(shù)據(jù)類型,從而降低模型的復(fù)雜度。 此外,CPN彌補(bǔ)了普通Petri網(wǎng)沒(méi)有數(shù)據(jù)和分層分解的缺陷,對(duì)數(shù)據(jù)結(jié)構(gòu)和層次分解進(jìn)行了 很好的結(jié)合,應(yīng)用CPN層次分解可以方便的表述復(fù)雜系統(tǒng)的層次和內(nèi)部關(guān)系。面向?qū)ο蟮能浖到y(tǒng)轉(zhuǎn)換為并行面向?qū)ο蟮闹玃etri網(wǎng)模型,最后利用謂語(yǔ)邏 輯語(yǔ)言Prolog自動(dòng)產(chǎn)生基于規(guī)約的測(cè)試用例。RobertG. Pettit IV和Hassan Gomaa采用將 CPN和UML相結(jié)合來(lái)提高面向?qū)ο筌浖O(shè)計(jì)可靠性的方法,尤其適用于并發(fā)式系統(tǒng)。該方法 ML描述實(shí)際狀態(tài),CPN來(lái)模擬體系結(jié)構(gòu)的功能流程,分析并發(fā)行為。通過(guò)CPN對(duì)原始UML模 型的分析結(jié)果,來(lái)提高設(shè)計(jì)的質(zhì)量和最終系統(tǒng)的可靠性。V. E. Kozura.V. A. N印omniaschy和 R. M. Novikov提出一種用來(lái)分析、模擬和驗(yàn)證CPN模型的工具PNV (Petri net verifier), 該工具由兩部分組成,一部分產(chǎn)生CPN內(nèi)部結(jié)構(gòu)和模型輸入CPN的C++程序,另一部分是檢 測(cè)模型的組件。該文還描述了用CPN模擬令牌通信協(xié)議的模型檢測(cè)試驗(yàn)。提高自動(dòng)測(cè)試系統(tǒng)的性能是當(dāng)前測(cè)試領(lǐng)域的一個(gè)重要研究?jī)?nèi)容。隨著測(cè)試設(shè)備和 測(cè)試方法的發(fā)展,傳統(tǒng)的自動(dòng)測(cè)試系統(tǒng)串行任務(wù)調(diào)度和系統(tǒng)組建方法已成為限制系統(tǒng)性能 的瓶頸,并行測(cè)試技術(shù)通過(guò)增加單位時(shí)間內(nèi)UUT的數(shù)量來(lái)提高系統(tǒng)的吞吐率,通過(guò)減少儀 器及CPU的空閑時(shí)間來(lái)提高設(shè)備的利用率,通過(guò)對(duì)貴重設(shè)備的共享來(lái)節(jié)約測(cè)試成本,因此 采用并行測(cè)試技術(shù)可大大減少測(cè)試時(shí)間,降低測(cè)試成本,并行測(cè)試技術(shù)的引入是自動(dòng)測(cè)試 技術(shù)發(fā)展的一項(xiàng)重大的應(yīng)用突破,是下一代ATS的主要特征之一。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是建立基于著色petri網(wǎng)的軟件并行測(cè)試模型,用可達(dá) 性方法對(duì)模型進(jìn)行分析和驗(yàn)證的方法。為了解決以上技術(shù)問(wèn)題,本發(fā)明實(shí)現(xiàn)自動(dòng)化建立軟件測(cè)試模型方法包括如下步 驟a)根據(jù)測(cè)試任務(wù)集和資源集,分析其為父任務(wù),子任務(wù),祖先任務(wù),數(shù)據(jù)相關(guān),資源 相關(guān)或控制相關(guān)。
b)依據(jù)分析結(jié)果,若其各自資源獨(dú)立,并無(wú)相互依賴關(guān)系,測(cè)試任務(wù)對(duì)于各自的所 占有的資源也相互獨(dú)立,可把它歸為串行測(cè)試,若測(cè)試任務(wù)和資源相互依從,互為父任務(wù), 子任務(wù),祖先任務(wù),并且數(shù)據(jù)相關(guān),資源相關(guān),控制相關(guān),可把它歸為并行測(cè)試。c)對(duì)于軟件串行測(cè)試和并行測(cè)試建立各自所對(duì)應(yīng)的petri網(wǎng)模型d)對(duì)于各自的模型建立可達(dá)樹(shù)。 e)對(duì)于可達(dá)樹(shù)模型進(jìn)行可達(dá)性分析和驗(yàn)證。
圖1 軟件測(cè)試流程2 軟件并行測(cè)試序列1圖3 軟件并行測(cè)試序列2圖4 軟件并行測(cè)試序列3圖5 軟件并行測(cè)試序列3對(duì)應(yīng)的著色petri測(cè)試模型圖6 :petri網(wǎng)模型可達(dá)樹(shù)分析圖具體實(shí)施辦法并行任務(wù)調(diào)度的基本概念[并行測(cè)試]設(shè)、,t2,t3,…tm為某一測(cè)試應(yīng)用中的各項(xiàng)測(cè)試任務(wù),若、,t2, t3,…tm分別在m個(gè)不同的測(cè)試系統(tǒng)上同時(shí)異步測(cè)試的結(jié)果等同于tnt2,t3,…tm按所有 可能的任意順序測(cè)試的結(jié)果,則稱ti,t2,t3,…tm是可并行測(cè)試的。[數(shù)據(jù)相關(guān)]設(shè)tA,tB為一測(cè)試應(yīng)用中的兩個(gè)測(cè)試任務(wù),若IA和0A分別 為tA的輸入變量集和輸出變量集,IB和0B分別為tB的輸入變量集和輸出變量集,若 (/^nCgu^nOJuO^nOJfO,則稱tA和tB數(shù)據(jù)相關(guān);否則,稱之為數(shù)據(jù)無(wú)關(guān)。[控制相關(guān)]設(shè)tA,tB為一測(cè)試應(yīng)用中的兩個(gè)測(cè)試任務(wù),若tA的測(cè)試能夠決定tB 是否測(cè)試,則稱tB控制相關(guān)于tA ;否則,稱之為控制無(wú)關(guān)。其中tA的測(cè)試將決定tB或te是 否測(cè)試,故tB與te都控制相關(guān)于tA。[父任務(wù)]設(shè)tA,tB為一測(cè)試應(yīng)用中的兩個(gè)測(cè)試任務(wù),且、優(yōu)先于tB,若、與、 數(shù)據(jù)相關(guān)或控制相關(guān),則稱在該測(cè)試應(yīng)用中tA是tB的父任務(wù)。[祖先任務(wù)]設(shè)測(cè)試任務(wù)集T中有任務(wù)t”t2,t3,... tffl,且、是、(i = 2,... m)的父任務(wù),則稱、是tm的祖先任務(wù)。[資源相關(guān)]設(shè)tA和tB為兩個(gè)測(cè)試任務(wù),Ra和Rb分別是tA和tB占用的資源集, 若A n,則稱、和tB資源相關(guān);否則,稱之為資源無(wú)關(guān)。資源相關(guān)不具有傳遞性,雖然任務(wù)tA,、和、占用的資源集Ra,&和艮有關(guān)系
0并且A,但不能推出一定有& nRc^0。例如對(duì)于Ra = {ri,r2},RB =
{r2, r3, r4},Rc = {r3},有& ni c本0,因此任務(wù)tA和tc資源無(wú)關(guān)。[相關(guān)資源狀態(tài)一致]設(shè)tA和tB為兩個(gè)資源相關(guān)的測(cè)試任務(wù),RAn RB = R。且 i c關(guān)0,若&在、和tB測(cè)試過(guò)程中狀態(tài)相同,則稱、和tB相關(guān),資源狀態(tài)一致(Consistent State of Correlate Resource,CSCR),否則,稱之為相關(guān)資源狀態(tài)相異(Inconsistent State of CorrelateResource, ISCR)。工作流程
1. 1)軟件測(cè)試任務(wù)集 T = {、,t2,t3,t4,t5,t6,t7,t8},軟件資源集 R = {ri, r2, r3,r4, r5, r6}和任務(wù)與資源的占有情況為砍6>砍3,r6>t3<r1, r6>t4<ri, r2>t5<r3>t6<r2, r3>t7<r2, r4>t8<r2, r5>,且假設(shè)t6控制相關(guān)于、,t2的輸出數(shù)據(jù)是t3的輸入數(shù)據(jù)。本發(fā)明的測(cè)試序列建立思想是對(duì)于給出的軟件測(cè)試任務(wù)集和資源集若互相獨(dú) 立,各個(gè)任務(wù)對(duì)資源的占有情況互相獨(dú)立,沒(méi)有祖先關(guān)系,我們可以對(duì)其各個(gè)任務(wù)建立串行 測(cè)試序列,其建立過(guò)程比較簡(jiǎn)單,若測(cè)試任務(wù)和資源占有情況如以上所示,建立測(cè)試序列思 想如下第一步分析此八個(gè)任務(wù)和六個(gè)資源占有情況,由于t2的輸出數(shù)據(jù)是t3的輸入數(shù) 據(jù),所以t2測(cè)試在t3之前,測(cè)試資源集r6也是t2測(cè)試所要占有的資源集,t2還多占有一 個(gè)資源集r3與、并無(wú)關(guān)系,因此可安排、在t2測(cè)試之前,t3和t4共同占有資源集ri,可安 排t3在t4測(cè)試之前,所以可得測(cè)試序列圖2。第二步t5與t2共同占有資源集r3,并且t5和、占有資源集各不相同,所以可以 安排t5在t2測(cè)試之前,t5和并行測(cè)試,由于t2和t6共同占有資源集r3,且t3和t6所占 有的資源集各不相同,t4和t6共同占有資源集r2,t6控制相關(guān)于、,所以可安排t6在t2測(cè) 試之后,t3和t6并行測(cè)試,t6在t4測(cè)試之前,生成序列圖3。第三步:t7和t8共同占有資源集r2,t8和t6共同占有資源集r2,t7與r5和占有 資源各不相同,t8和t2占有資源各不相同,所以可安排,t7與t5和并行測(cè)試,t8和t2并 行測(cè)試,t7在t8測(cè)試之前,t8在t6測(cè)試之前,生成序列圖4。1. 2)完成了軟件并行測(cè)試序列的建立,但圖4不能很好的反應(yīng)資源相互共享,依 賴關(guān)系,下邊建立基于著色Petri網(wǎng)的并行測(cè)試模型,用橢圓表示庫(kù)所,用矩形表示變遷。, 兩個(gè)或兩個(gè)以上的標(biāo)記構(gòu)成了復(fù)合標(biāo)記類型,用rj>表示。同時(shí),還需要為每個(gè)顏色的 標(biāo)記聲明一個(gè)變量,并將變量綁定到相應(yīng)的標(biāo)記,類型聲明Type = with rt, Type r2 = with r2, Type r3 = with r3Type r4 = with r4, Type r5 = with r5, Type r6 = with r6Type H = with^j, r^,Var^j, r^ :H, Var Vj :ri = 1,2,3,6圖5中有色標(biāo)記均用資源名稱標(biāo)注出來(lái),弧表達(dá)式和警界函數(shù)表達(dá)式中的變量Vl, V2, v3,v4, v5, v6,分別對(duì)應(yīng)著標(biāo)記顏色r” r2,r3,r4,r5,r6,,因此變遷的綁定時(shí)確定的,可將 引發(fā)步稱為變遷,將引發(fā)序列稱為變遷序列,1. 3)完成了軟件并行測(cè)試的著色petri網(wǎng)模型的建立,下面運(yùn)用可達(dá)樹(shù)分析方法 對(duì)所建立的模型進(jìn)行分析,其步驟包括以下部分。丨丨—可達(dá)性算法FindFunc (v) {int Node[S_count];int Flag = 0 ;NodeCopy (v, *Node []) ;// 獲取節(jié)點(diǎn) Token 集NodeFind(Node[]);for (int i = 0 ;i < Keep_count ;i++) {Flag = NodeCmp (Node []);if (Flag)
print ( “Μ 可達(dá)”);else print ( “Μ 不可達(dá)”);}}//查找NodeFind (Node []) {for(int i = O ;i < Node_count ;i++) {Find (Node [i]);//比較Ke印(i) ;}}//記錄Il 比較int NodeCmp (Node []) {for (int i = O ;i < Root_count ;i++) {if (Find (Node [i]));Return 1 ;}}初始標(biāo)記Mtl = ((Pl, r6) (p9,r3) (p10, r2,r4)表示系統(tǒng)在初始狀態(tài)下所有資源都可 供分配。在初始標(biāo)識(shí)Mtl下,變遷t1; t5,t7是并發(fā)使能的。第一步在初始標(biāo)記M0 = ((Pl,r6) (p9,r3) (P1 ,r2, r4))t2, t8 下,進(jìn)行變遷 t5, t7并行測(cè)試,變遷結(jié)束后,得到新的庫(kù)所和托肯,((P2, r6) (p3,r3) (pn,r2, r4)第二步變遷形成的庫(kù)所加入新的成員庫(kù)所M1 = ((p2,r6) (p3,r3) (pn,r2,r4) (p12, r5))進(jìn)行第二次變遷,t2,t8并行測(cè)試。第三步變遷后形成新的標(biāo)識(shí)M2 = ((p4, r3, r6) (ρ5,Γι) (ρ13,r2, r5) (ρ10, r4)),同理 方法進(jìn)行t3,t6變遷,按此方法我們得到可達(dá)樹(shù)圖6。圖6可達(dá)樹(shù)各結(jié)點(diǎn)中庫(kù)所所包含的標(biāo)記不超過(guò)兩個(gè),且當(dāng)庫(kù)所包含兩個(gè)標(biāo)記時(shí), 標(biāo)記顏色各不相同,因此所建圖5petri網(wǎng)是安全的,有界的??蛇_(dá)樹(shù)中各變遷至少引發(fā)一次,沒(méi)有從不引發(fā)的變遷。樹(shù)中每個(gè)標(biāo)號(hào)都有后繼標(biāo) 號(hào),即每個(gè)標(biāo)號(hào)都是可以引發(fā)的。對(duì)于可達(dá)集R(Mtl),M0 = ((Pl, r6) (p9,r3) (p10, r2, r4),每 一標(biāo)號(hào)M'都有一條從根Mtl到M'的變遷路徑,即3廣:Mq (β >Μ'.根據(jù)活性的定義,可 知圖5的Petri網(wǎng)是活的,不會(huì)有死鎖發(fā)生。在引發(fā)變遷t6前,其它變遷都只能引發(fā)有限次,對(duì)于任意一個(gè)變遷,在它引發(fā)之 前,其它變遷都只能引發(fā)有限次,因此圖5的petri網(wǎng)是公平的。M0到M4之間可以周而復(fù)始的進(jìn)行,形成一個(gè)閉環(huán),所以圖5所建立的petri網(wǎng)是可逆的。
權(quán)利要求
一種基于著色petri網(wǎng)的軟件并行測(cè)試方法,其特征在于,包括以下步驟1.1)根據(jù)測(cè)試任務(wù)集和資源集,分析其為父任務(wù),子任務(wù),祖先任務(wù),數(shù)據(jù)相關(guān),資源相關(guān)或控制相關(guān)。1.2)依據(jù)分析結(jié)果,若其各自資源獨(dú)立,并無(wú)相互依賴關(guān)系,測(cè)試任務(wù)對(duì)于各自的所占有的資源也相互獨(dú)立,可把它歸為串行測(cè)試,若測(cè)試任務(wù)和資源相互依從,互為父任務(wù),子任務(wù),祖先任務(wù),并且數(shù)據(jù)相關(guān),資源相關(guān),控制相關(guān),可把它歸為并行測(cè)試。1.3)對(duì)于串行測(cè)試和并行測(cè)試建立各自所對(duì)應(yīng)的petri網(wǎng)模型。1.4)對(duì)于各自的模型建立可達(dá)樹(shù)。1.5)對(duì)于可達(dá)樹(shù)模型進(jìn)行可達(dá)性分析和驗(yàn)證。
2.本發(fā)明根據(jù)根據(jù)測(cè)試任務(wù)集和資源集之間的關(guān)系,其特征是對(duì)軟件測(cè)試對(duì)象進(jìn)行分 析歸類,其分析方法所述1. 1)。屬于串行調(diào)度的建立串行測(cè)試序列集,屬于并行的我們依據(jù) 并行調(diào)度算法建立并行測(cè)試序列集。這種軟件測(cè)試方法可以在相同時(shí)間內(nèi)測(cè)試多個(gè)軟件對(duì) 象,提高了測(cè)試效率,對(duì)貴重設(shè)備的共享來(lái)節(jié)約測(cè)試成本。
3.本發(fā)明對(duì)于軟件并行測(cè)試建立起了著色petri網(wǎng)模型,其方法所述1.2)。其特征是 根據(jù)著色Petri網(wǎng)的可達(dá)性方法對(duì)其進(jìn)行分析和驗(yàn)證,其分析驗(yàn)證所述1.3)。解決了軟件 并行測(cè)試執(zhí)行覆蓋率問(wèn)題。
全文摘要
本發(fā)明公布了一種基于著色petri網(wǎng)軟件并行測(cè)試方法,本發(fā)明所述方法包括如下步驟a)對(duì)軟件測(cè)試任務(wù)集和資源集進(jìn)行分析;b)根據(jù)分析結(jié)果對(duì)其進(jìn)行測(cè)試分類,確定是串行測(cè)試或并行測(cè)試;c)生成串行任務(wù)序列或并行任務(wù)序列;d)檢驗(yàn)所建序列的正確性,若不正確,返回上一級(jí);e)序列真確,對(duì)其建立著色petri網(wǎng)模型;f)對(duì)模型進(jìn)行可達(dá)性分析和驗(yàn)證;g)處理分析結(jié)果。采用本發(fā)明所提供的方法,簡(jiǎn)化了軟件測(cè)試任務(wù)的復(fù)雜度,節(jié)約了測(cè)試時(shí)間,提高了測(cè)試效率。
文檔編號(hào)G06F11/36GK101853201SQ20101018013
公開(kāi)日2010年10月6日 申請(qǐng)日期2010年5月24日 優(yōu)先權(quán)日2010年5月24日
發(fā)明者劉久富, 婁堅(jiān)波, 李金奎, 王偉, 蘇青婷, 陳奎 申請(qǐng)人:南京航空航天大學(xué)