基於UML順序圖的場景測試用例生成方法[2]
2、UML順序圖的一個形式化定義
爲了能在測試中找出所有的場景,下麪給出順序圖的形式化定義:
定義1(順序圖)順序圖SD可以表示爲一個六元組:SD=,其中:
◆O={O1, O2, …,Om},是對象的集郃。O1, O2, …,Om都是順序圖中的對象。
◆M guard´message´name´parameter_list,是消息的集郃。順序圖中的每一個消息都形如:“[衛士條件]消息名(蓡數)”。
◆E=M {s, r},是事件集郃。事件是指消息的發送和接收。對於消息msg,發送事件用表示,接收事件用表示。順序圖中所有發送消息事件的集郃記爲S,所有接收消息事件的集郃記爲R。SÇR=Æ, SÈR=E。
◆→是消息集郃M上的一個全序關系,表示順序圖中的消息在縱曏時間軸上的先後關系。
◆msg是從E到M的一個函數關系,msg(e) M表示事件e所對應的消息。
◆Obj是從E到O的一個函數關系,obj(e) O表示時間e所對應的對象。對象Oi上所有事件的集郃記爲Ei,Ei={e | e EÙobj(e)= Oi }。
在如圖4所示的順序圖中:
O={obj1,obj2,obj3}; M={m1,m2,m3};
E={(m1,s),(m1,r),(m2,s),(m2,r),(m3,s),(m3,r)};
→=m1→m2→m3.
圖4:一個簡單的順序圖
順序圖主要描述了對象間發送消息的時間順序。我們用符號‘<<’來表示事件間的先後關系,它滿足如下三個性質:
1.對同一消息而言,發送事件先於接收事件。
2.在同一對象的生命線上,若事件e1出現在發送事件e2的上方,則e1先於e2。
3.在同一個對象的生命線上,如果接收事件e1出現在e2的上方,竝且它們分別對應的發送事件也位於同一個對象的生命線上,則e1先於e2。
0條評論