999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于有向同步交互圖的類族測試用例生成算法

2007-01-01 00:00:00龔紅仿李軍義
計算機應用研究 2007年6期

摘 要:根據類對象之間的消息通信產生的同步消息、消息傳遞以及消息等待的交互特征,設計了一種有向同步交互圖(DSIG)模型,提出了類繼承的同步交互路徑(SIAPaths)測試用例生成方法,給出了自動生成同步交互路徑的算法。同時,提出了同步交互序列測試充分性準則,并從基本交互路徑序列和基本交互消息序列的測試覆蓋率兩方面闡述了測試的可行性。

關鍵詞:類繼承測試; 有向同步圖; 交互路徑; 測試用例生成算法; 同步交互序列

中圖分類號:TP301.6文獻標志碼:A

文章編號:1001-3695(2007)06-0048-04

0 引言

面向對象的軟件測試是面向對象軟件開發不可缺少的一環。面向對象的繼承機制增加了類測試技術的復雜性[1~3],例如,類的多層繼承或多重繼承使得對象在消息傳遞過程中出現歧義性,產生狀態不可預料的錯誤;在測試基類的子類時,由于類的交互導致測試路徑爆炸的問題;在類族之間進行消息通信時,可能發生相互等待對方的輸出數據而產生死鎖問題。Fielder[4]指出,在父類充分測試的基礎上,被子類繼承的方法只需最小測試。Turner[5]主張在測試子類時,只需對被繼承的屬性和新屬性之間的交互進行測試。Perry等人[6]認為子類中繼承的方法和重新定義的方法都必須在子類環境中重新測試;對被繼承方法是充分的測試數據集未必對重定義的方法是充分的。Jorgensen[1]提出了事件消息驅動的Petri網(EMDPN)模型。文獻[7]將EMDPN模型運用于類的層次測試中,提出了基于EMDPN的類的層次測試用例生成方法;但其模型復雜、節點類型多樣,運用在類的繼承測試中過于復雜。本文將結構測試易形式化描述與功能測試強調輸入/輸出的特點[8]結合起來,用類及其子類對象的交互圖描述被測軟件的結構;對象間的消息傳遞就是類的輸入/輸出,構造類族的有向同步交互圖;再與協同路徑生成并行程序測試用例的方法[9,10]相結合,測試類的繼承間交互產生的錯誤。

1 有向同步交互圖

有向圖是構成軟件測試模型的基礎[11],其結構提供了面向對象軟件數據流分析框架。將類對象之間的同步通信與有向圖結合起來,得出有向同步圖的定義如下:

在較復雜的面向對象軟件系統中,可能同時存在較多的同步交互消息傳遞。因而將這些同步交互消息傳遞定義為同步交互消息序列集合。

定義3(同步交互消息序列集) 面向對象軟件系統中的同步交互消息序列集由同步消息序列集、消息傳遞序列集與消息等待序列集構成,即

2 用DSG表示類繼承間的交互

以哲學家就餐問題為例。假設類族A和B,類族A中的子類C的成員函數X()為重載函數,用于產生叉子數以及產生C的新對象便于交互測試;類族B中的子類D的成員函數Y()為重新定義的操作,表示哲學家的狀態,通過調用繼承的成員函數Z1()和Z2()分別控制叉子的拿起和放下。當一個哲學家拿起左邊和右邊的兩把叉子時,他便開始進餐;如果下一個哲學家想用他左邊或右邊的任何一把叉子,他必須等待;一個哲學家吃完后放下兩把叉子,并開始思考。其類圖和類間交互的狀態如圖1所示。下面是部分成員函數的C++偽代碼:

定義4(有向同步交互圖) 有向同步交互圖(Directed Synchronous Interactions Graph,DSIG)由有向同步圖和類族之間的同步交互消息組成,表示類族間的行為特征,可以描述為2 用DSG表示類繼承間的交互

以哲學家就餐問題為例。假設類族A和B,類族A中的子類C的成員函數X()為重載函數,用于產生叉子數以及產生C的新對象便于交互測試;類族B中的子類D的成員函數Y()為重新定義的操作,表示哲學家的狀態,通過調用繼承的成員函數Z1()和Z2()分別控制叉子的拿起和放下。當一個哲學家拿起左邊和右邊的兩把叉子時,他便開始進餐;如果下一個哲學家想用他左邊或右邊的任何一把叉子,他必須等待;一個哲學家吃完后放下兩把叉子,并開始思考。其類圖和類間交互的狀態如圖1所示。下面是部分成員函數的C++偽代碼:

3 基于DSIG的同步交互路徑生成算法

首先考慮生成基于DSG的測試用例,這些測試用例就是DSG的路徑和子路徑。下面定義基于DSG的子路徑集(Subpaths)。

4 測試覆蓋準則

Howden[12]指出,測試標準規定的不僅僅是生成測試用例的終止條件,而且也是軟件測試可靠性分析的重要依據。McGregor[2]提出了基于狀態的覆蓋率的類的測試充分性標準,指出以測試用列覆蓋了狀態轉換圖中多少個狀態為依據。但是,即使測試用例對所有的狀態轉換都覆蓋了至少一次,測試的充分性仍值得懷疑,因為還要關注各個操作在涉及狀態轉換時的交互問題。路徑覆蓋準則要優于其他已知的覆蓋準則[13],但是對于一般的軟件路徑數目太大,以至于實際難以實現。文獻[8]提出的基本路徑覆蓋準則指出,選取足夠多的數據使得每條路徑至少被覆蓋一次。但是在面向對象軟件測試中僅僅考慮基于路徑的覆蓋準則顯然是不夠的,面向對象的消息傳遞機制要求測試人員必須考慮消息傳遞和消息等待的覆蓋率問題;在類對象同步交互時,還要考慮同步交互消息的測試覆蓋情況。因而,將有向同步交互圖與并行程序有序序列測試充分性準則[14,15]結合起來,提出面向對象的類族交互測試的同步交互序列測試準則如下:

定義10(同步交互序列測試準則) 在測試含有m(m≥2)個類族的面向對象軟件系統時,將所有可行的同步交互路徑序列和同步交互消息序列至少執行一次,稱為同步交互序列測試準則(Synchronization Interaction Sequences Testing Criteria,SISC)。記為

由圖3可知,新提出的同步交互路徑自動生成算法得到的測試用例滿足SISC測試標準。因此新算法具有較好的覆蓋率。

5 結束語

本文算法能較好地自動生成測試用例,可以解決面向對象軟件測試中產生不可預料狀態、測試路徑爆炸以及測試時發生死鎖的問題。如何開發生成測試用例的工具,使得生成的測試用例更加自動化、規范化?如何進一步優化測試用例,提高生成測試用例的可行性?這些都是今后進一步研究的問題。

本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 欧美黄网在线| 久久婷婷色综合老司机| 日韩精品成人在线| 国产精品无码翘臀在线看纯欲| 搞黄网站免费观看| 亚洲视频在线观看免费视频| 精品人妻一区无码视频| 亚洲午夜国产精品无卡| 亚洲天堂.com| 久草视频精品| 人妻熟妇日韩AV在线播放| 乱系列中文字幕在线视频| 精品国产一二三区| 伊人久久大香线蕉成人综合网| 伊人激情综合网| 亚洲一区无码在线| 精品午夜国产福利观看| 久久久精品国产亚洲AV日韩| 亚洲自拍另类| 熟妇人妻无乱码中文字幕真矢织江| 欧美日韩va| 婷婷六月在线| 18禁影院亚洲专区| 99精品福利视频| 国产精品分类视频分类一区| 欧美成人日韩| 色播五月婷婷| 99re66精品视频在线观看 | 99视频在线观看免费| 天堂在线亚洲| 亚洲最黄视频| 久久久精品无码一二三区| 日韩一区精品视频一区二区| 91久久国产综合精品女同我| 97狠狠操| 亚洲人成网线在线播放va| 99精品伊人久久久大香线蕉| 露脸一二三区国语对白| 福利一区在线| 久久久久夜色精品波多野结衣| 丝袜美女被出水视频一区| 精品久久久无码专区中文字幕| 欧美无专区| 国产精品成人免费综合| 亚洲福利一区二区三区| 日韩二区三区无| 全免费a级毛片免费看不卡| 欧美在线综合视频| yjizz国产在线视频网| 亚洲人成网站在线观看播放不卡| 色偷偷一区| 国产精品制服| 无码国产伊人| 免费无码又爽又黄又刺激网站| 很黄的网站在线观看| 精品一区二区三区视频免费观看| 婷婷五月在线视频| 国产第一页免费浮力影院| 国产麻豆福利av在线播放| 激情六月丁香婷婷四房播| 中文字幕亚洲电影| 香蕉国产精品视频| www精品久久| 成人噜噜噜视频在线观看| 亚洲成在线观看| 欧美日本视频在线观看| 国产黄网站在线观看| 日韩在线2020专区| 国产精品亚洲片在线va| 国产99在线| 日韩欧美色综合| 丁香六月激情婷婷| 亚洲AV无码乱码在线观看裸奔| 欧美日韩精品一区二区视频| 国产乱人伦精品一区二区| 亚洲无码高清一区二区| 国产另类视频| 日韩东京热无码人妻| 九九九久久国产精品| 精品一区二区三区无码视频无码| 人妻中文字幕无码久久一区| 污网站免费在线观看|