陳銳忠,魏理豪,梁哲恒
(1.南方電網公司信息化評測重點實驗室 廣東 廣州 510600;2.廣東電網有限責任公司信息中心 廣東 廣州 510600)
基于UML建模的軟件測試系統(tǒng)設計
陳銳忠1,2,魏理豪1,2,梁哲恒1,2
(1.南方電網公司信息化評測重點實驗室 廣東 廣州 510600;2.廣東電網有限責任公司信息中心 廣東 廣州 510600)
針對當前UML建模在軟件設計中的廣泛應用,提出一種基于模型的軟件自動化測試方案。為實現(xiàn)測試方案,通過UML狀態(tài)圖對軟件模型進行構建,同時利用EFSM模型生成路徑轉換序列,借助Petri網的可覆蓋性、可達性,將UML狀態(tài)圖轉換為Petri網,再通過Petri網對上述轉換的路徑進行分析,從而消除了傳統(tǒng)測試用例生成時存在的缺點,最后通過實驗驗證了該算法的嚴謹性和有效性。
UML建模;軟件測試;EFSM模型;Petri網;用例生成
隨著現(xiàn)代軟件開發(fā)中UML建模工具的廣泛應用,如何對基于UML建模的開發(fā)模型進行測試,成為提高軟件開發(fā)質量的關鍵。而當前針對軟件測試的方案中包括V、W、H 3種測試模型。其中V型模型測試主要進行單元測試和集成測試;W模型則在軟件的測試中增加不同階段的同步驗證和確認,從而減少了開發(fā)的時間;H模型則更加貼近實際,是對某個功能進行具體的測試與執(zhí)行,即每個測試過程都可通過這個步驟對某個特定的功能進行測試。而測試用例生成作為其中比較突出的問題,很多研究者都提出通過模型的方式對其進行解決,如通過嵌入式擴展方案、EFSM模型等。文中則提出一種基于Petri網與UML的軟件自動化測試設計方案,并對該方案的實現(xiàn)進行了詳細的闡述。
Petri網作為現(xiàn)代計算機軟件開發(fā)中一種常用的分布式系統(tǒng)建模、分析和設計所采用的工具,其比較適合用于對系統(tǒng)進程、沖突、異步等關系進行描述。與其他的系統(tǒng)模型星幣,該模型可對設計中的并發(fā)問題進行準確的描述,從而使得該模型具有很大的優(yōu)勢。Petri網不僅可清晰的描述系統(tǒng)結構,還可對系統(tǒng)的動態(tài)行為進行描述。Petri網具有非常豐富的描述手段、嚴格的數(shù)學表示式、系統(tǒng)分析技術和圖形表達方法,與其他的軟件模型相比,在圖形化的表達和分析方面更具有優(yōu)勢。因此在本測試方案中,通過Petri網對軟件系統(tǒng)進行仿真、建模、分析和測試。
定義一:
定義滿足以下幾個條件的三元組被稱為一個網,表達式為:N=(S,T;F)
其中Dom(F)={x∈S∪T|?y∈S∪T:(x,y)∈F};cod(F)= {x∈S∪T|?y∈S∪T:(y,x)∈F}
在上述的定義中,S和T表示互不相交的兩個集合,都為Petri網當中的基礎元素。其中S和T分別表示為元,F(xiàn)表示為網的有向弧集。
定義二:
假設N=(S,T;F)表示為一個網絡,對任意的x∈P∪T,記作
其中·x表示為x的前置的集合,而x·則為x的后置的集合,·x∪x·為x的外延。
2.1UML模型到Petri網轉換思路
在系統(tǒng)的設計中,UML建模通常用于系統(tǒng)分析和設計階段的建模,但UML為半形式化,導致很難對關鍵的系統(tǒng)模型進行語義分析,并限制了其有效性。因此,必須將傳統(tǒng)的UML模型全部轉換為 Petri網,并借助現(xiàn)有的工具對其性質進行分析和驗證,以此驗證該模型在編程開發(fā)中存在的問題,提高系統(tǒng)運行的有效性。而在UML中,通常用狀態(tài)圖來對某對象按事件排序的行為建模。文中在將UML狀態(tài)圖進行建模的過程中,通過Petri網中的庫對對象的狀態(tài)進行表示,通過變遷來表示不同狀態(tài)之間的轉換,而轉換的條件則都通過庫所進行表示,其中轉換條件是否能夠成立則是看庫所中是否有托肯。具體轉換規(guī)則則如表1。
表1 狀態(tài)圖到Petri的轉換規(guī)則
而結合狀態(tài)圖的結構,不同的結構具有不同的轉換規(guī)則,如在初始、結束、簡單等狀態(tài)下采用的規(guī)則則不同。文中則給出一個完整的轉換示例對其進行說明,具體如圖1所示。
圖1 UML模型到Petri網轉換示例
2.2轉換設計
根據圖1實例所反映的映射規(guī)則,本文將UML到Petri網的具體轉換流程設計為如圖2所示。
圖2 UML模型到Petri網轉換流程
通過圖2看出,首先將其中的UML模型文件導出,此后通過模型轉換將原始的UML直接轉換為與其相對應的Petri網,最后再通過Petri分析技術對設計的模型進行分析驗證,從而查找在開發(fā)過程中存在的各種缺陷和問題,提高測試的準確性和有效性。其具體的實現(xiàn)方案為:
1)對輸入的UML狀態(tài)圖進行解析,從而讀出文件當中所有的元素,在讀出的文件中找出存在的所有Statemachine元素,并將該類型的元素全部放入到 list鏈表當中,其中每個元素則表示為相對應的狀態(tài)圖;
2)對list中的每個元素進行解析,找到statemachine元素的初始狀態(tài),并將該初始狀態(tài)直接轉換為與其對應的庫所,標記該初始狀態(tài),并將初始狀態(tài)的轉移直接轉換為在Petri網當中所對應的遷移,形成弧并與之連接;
3)標記被訪問的目標的狀態(tài),并創(chuàng)建在不同狀態(tài)下的Petri網所對應的庫所,同時創(chuàng)建遷移到庫所的弧與之連接;
4)循環(huán)前3個步驟,直到完成對所有導入狀態(tài)圖的標記,最后轉換結束。
要實現(xiàn)上述的關鍵,需要解決模型導入和導出問題。在對模型的導入中采用Eclipse插件對UML模型進行導入。而在導入中最為重要的這是對其中的信息進行提取,其中在導入的情況下,對狀態(tài)的描述中則利用xml,具體為:
在上述的描述中,SimpleState表示為狀態(tài),xmi.id表示為狀態(tài)的唯一標識,xmi.idref表示為狀態(tài)在通過轉換之后的id。在轉換中首先提取出名稱D,再提取出上述的id,通過轉換得到Petri網下的狀態(tài)庫所描述,代碼則為:
通過Petri網的坐標,定義出其中的庫所的大小。
通過上述對UML建模測試流程的分析,本文則以某自動售貨機的UML狀態(tài)圖為例進行測試。同時結合相關的測試工具,選擇Myeclipse中的UML2作為該系統(tǒng)的建模工具,具體的狀態(tài)圖則如圖3所示。
圖3 自動售貨機狀態(tài)圖
在圖3當中,總共存在著6個不同的狀態(tài)點,根據上述的規(guī)則可將其分為起始、終止、Eject等總共9個不同的結構,通過規(guī)則將其轉換為庫所,從而得到如圖4所示的Petri網結果。
圖4 Petri網轉換圖
該轉換圖實現(xiàn)的核心代碼為:
由此,通過圖4可很快地對不同的階段程序進行測試,從而查看整體運行的情況。
文中針對UML狀態(tài)圖的測試用例問題,設計了基于Petri網的轉換算法,并通過Myeclipse開發(fā)工具對上述的算法進行了試驗驗證,從而證明該方法在驗證軟件工程開發(fā)中的系統(tǒng)功能的有效性,為系統(tǒng)軟件功能的測試提供了新的參考。
[1]陳志德,曾凡平.UML狀態(tài)圖和Petri網絡在類測試用例生成的應用[J].小型微型計算機系統(tǒng),2010,31(3):519-522.
[2]佟偉光.軟件測試[M].北京:人民郵電出版社,2008.
[3]覃釗璇,曾一,柴艷欣,等.基于UML活動圖的多態(tài)性測試用例生成[J].計算機工程,2010,36(11):83-84.
[4]趙俊峰,周建濤,邢冠男.UML活動圖到Petri網的轉換方法及實現(xiàn)研究[J].計算機科學,2014(7):143-147.
[5]李龍澍,胡正梁.基于Petri網的UML形式化建模應用分析[J].計算機技術與發(fā)展,2010(4):76-79,83.
[6]馬超,林紅昌,丁佐華.基于UML和Petri網的建模及其驗證[J].浙江理工大學學報,2010(6):889-894.
[7]張廣泉,戎玫,陳琳琳.UML與軟件體系結構描述語言之間的轉換機制研究[J].計算機科學,2007(6):262-264,269.
[8]王建光,段富.一種UML模型到XML模型的轉換方法[J].計算機技術與發(fā)展,2007(7):123-126,174.
Software testing system design based on UML modeling
CHEN Rui-zhong1,2,WEI Li-hao1,2,LIANG Zhe-heng1,2
(1.CSG Key Laboratory of Software Testing,Guangzhou 510600,China;2.Guangdong Power Grid Information Center,Guangzhou 510600,China)
In view of the wide application of UML modeling in software design,a new model based software testing scheme is proposed.In order to implement the test plan,the software model is constructed by UML state diagram,and the EFSM model is used to generate the path transformation sequence.The UML state graph is transformed into Petri net and the Petri net is analyzed.
UML model;software testing;EFSM model;Petri net;use case generation
TN0
A
1674-6236(2016)21-0057-03
2015-10-31稿件編號:201510241
陳銳忠(1985—),男,廣東揭陽人,博士。研究方向:電力信息化,計算機體系結構。