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格式閱讀原文。

主站蜘蛛池模板: 91亚洲精品国产自在现线| 熟妇人妻无乱码中文字幕真矢织江| 日韩经典精品无码一区二区| 人妻精品久久无码区| 99在线观看免费视频| 久久公开视频| 国产精品一区在线麻豆| 亚洲欧美在线精品一区二区| 亚洲永久色| 91色在线观看| 国语少妇高潮| 国产黑丝视频在线观看| 熟女视频91| 国产一线在线| 精品一区二区无码av| 亚洲天堂色色人体| 天堂网亚洲系列亚洲系列| 国产在线欧美| 九色最新网址| 国产日本一线在线观看免费| 国产后式a一视频| 免费无码又爽又黄又刺激网站| 91久久偷偷做嫩草影院电| 特级精品毛片免费观看| 一级黄色欧美| 亚洲天堂高清| 欧美中文字幕在线二区| 又爽又黄又无遮挡网站| 人妻精品全国免费视频| 伊人91视频| 国产成人高清精品免费软件| 久夜色精品国产噜噜| 欧美视频在线播放观看免费福利资源| 成人精品在线观看| 免费观看三级毛片| 九九热精品在线视频| 久久99热这里只有精品免费看| 国产精品任我爽爆在线播放6080| 国产精品99r8在线观看| 日韩欧美中文在线| 亚洲无码高清免费视频亚洲| 亚洲精品视频免费| 欧美日韩在线观看一区二区三区| 亚洲av无码牛牛影视在线二区| 自拍偷拍欧美日韩| 久久综合伊人77777| 无码人妻免费| 国产激情在线视频| 亚洲妓女综合网995久久| 亚洲最大福利网站| 亚洲 日韩 激情 无码 中出| 亚洲中久无码永久在线观看软件 | 日韩无码黄色网站| 在线欧美国产| 欧洲成人免费视频| 国产99在线观看| 欧美成人精品一级在线观看| 中国精品自拍| 婷婷99视频精品全部在线观看| 久久6免费视频| 免费jjzz在在线播放国产| 国产爽妇精品| 中文字幕亚洲精品2页| 久久久久亚洲精品无码网站| 色综合久久88色综合天天提莫| 日本少妇又色又爽又高潮| 国产成人区在线观看视频| 久久一本精品久久久ー99| 久综合日韩| 亚洲无码一区在线观看| 女人18一级毛片免费观看| 国产综合精品日本亚洲777| 国产精品视频久| 国产精品三级专区| AV天堂资源福利在线观看| 国产情侣一区二区三区| 亚洲天堂免费| 国产高清在线丝袜精品一区| 婷婷开心中文字幕| 久久永久精品免费视频| 国产主播喷水| 国产精品一区在线观看你懂的|