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

面向對象的白盒測試技術的研究與分析

2010-01-01 00:00:00巨志斌
軟件工程 2010年5期

摘要:本文討論了面向對象軟件的特點,從軟件測試的層次劃分出發,以一個自動售貨機為例設計了一個軟件系統的白盒測試用例,分析了白盒測試在面向對象軟件測試中的特點和測試的方法。

關鍵詞:面向對象;白盒測試;用例

1 引言

如何提高軟件質量是軟件工程致力解決的關鍵問題之一。軟件測試和驗證是保證軟件正確性和提高軟件可靠性的最基本和最重要的手段。自20世紀80年代以來,面向對象方法和技術的研究已遍及計算機軟件、硬件和應用各領域,在軟件工程領域更是得到了廣泛的重視,但研究的重點和成果主要集中于面向對象分析與技術方法學領域(即軟件開發的前期),而面向對象軟件測試技術的研究還比較薄弱。近年來,國內外對面向對象軟件測試進行了大量的研究,但目前該領域還處于百家爭鳴的階段,還未形成一套較為成熟與完善的軟件測試理論與方法。本文從軟件測試的層次劃分出發,對面向對象的測試方法和解決方案做一探討,并結合具體項目給出了實例設計。

2 面向對象理論

運用面向對象的方法和技術,首先必須明確什么是“面向對象”。曾經有很多年,“面向對象”被認為是使用一系列面向對象程序設計語言(如Ada95,C++,Smalltalk等)的軟件開發方法。現在“面向對象”己包含完整的軟件工程觀點,Peter Coad和Edward Yourdon給出了“面向對象”的如下定義:面向對象(Object-Oriented)=對象(Objects)+分類(Classification)+繼承(Inheritance)+通信(Communication)。

面向對象軟件的封裝性、繼承性、多態性和動態綁定等特性提高了軟件的可重用性,使軟件開發更快、質量更高,而且軟件易于維護、易于修改。通過組裝可利用子系統而產生更大的系統,然而另一方面,它卻給軟件測試帶來了更多的困難。與之相對應的軟件測試技術還相對滯后,如何探索出一套行之有效的方法,尤其是如何采用自動化的方法來測試這些軟件,己成為軟件測試者們所面臨的挑戰。

3 白盒測試的傳統方法

白盒測試方法主要依據邏輯段蓋準則,如語句覆蓋和判定覆蓋等。這些覆蓋準則是白盒測試方法的重要理論基礎,能夠指導測試人員設計出有效的測試用例。

SQA Team Test是測試Power Builder軟件的有用測試工具,它能夠與Power Builder對象緊密地結合在一起,根據使用SQA Team Test測試軟件的經驗和對該軟件的理解,認為設計出有效的測試用例仍是使用SQA Team Test測試軟件的關健性工作。能否設計出一系列有效的測試用例,將直接影響到軟件的測試效果,因為SQA Team Test測試軟件的測試思想是回歸測試,所以能否發現軟件中存在的問題,仍依賴于測試用例的設計。

從前面的分析中可以看出,無論是使用白盒測試方法還是使用SQA Team Test測試軟件,設計有效的測試用例是測試工作的重要環節。傳統的白盒測試方法是按照軟件模塊內的邏輯控制結構、運行過程和模塊間的組織結構與接口,逐個設計出針對每個模塊、每個子系統和系統的測試用例,因此每個模塊都會被測試到,或者說能夠保證測試的模塊被覆蓋。因為白盒測試的基礎是依據對程序結構的清楚描述,而模塊內部的邏輯履蓋由邏輯覆蓋準則提供保證。但是在事件驅動面向對象的軟件中,軟件的設計思路和軟件的結構與傳統的面向過程的軟件相比已經發生了相當大的改變,對象和事件概念在軟件開發中占有非常重要的地位,而傳統的白盒測試方法并不能適應這種變化。

4 面向對象白盒測試框架分析

測試設計是整個測試過程的關鍵部分,面向對象軟件開發中的白盒測試設計優劣更是整個測試工作的成敗所在。為此在本文中我們可以具體的實例來設計一個白盒測試的框架和方法。

面向對象的白盒測試通常不能獨立地測試一個方法(操作),這個方法相當于傳統的測試單元,而是將這個方法作為一個測試類的一部分。

如果一個基類中有一個方法,繼承類也繼承了這個方法,但是這個方法可能在繼承類中被私有數據和方法使用,所以盡管基類中已經測試了這個方法,但是每個繼承類也需要考慮對這個方法進行測試。一般從下面兩個方面進行考慮。

(1)繼承的成員函數是否都不需要測試。一般來說,對父類中已經測試過的成員函數,兩種情況需要在子類中重新測試,即繼承的成員函數在子類中作了改動,或成員函數調用了改動過的成員函數的部分。

(2)對父類的測試是否能照搬到子類。多態有幾種不同的形勢,如參數多態,包含多態,過載多態。包含多態和過載多態在面向對象語言中通常體現在子類與父類的繼承關系上。對具有包含多態的成員函數測試時,只需要在原有的測試分析的基礎上擴大測試用例中輸入數據的類型。

從上面的分析可以看出,面向對象的軟件的白盒測試主要是針對軟件設計中的類和對象來進行測試的。因此鏈接被測試的軟件的類結構,是進行白盒測試的關鍵。由于封裝的原則,在面向對象軟件的類一般設計為私有或受保護類型,即類的屬性和方法是無法從外部直接訪問的,必須通過類中的公有方法來實現。因此設計測試用例時必須要注意對這些公有成員的才做。白盒測試邏輯覆蓋的方法主要包括語句覆蓋、分支覆蓋、條件覆蓋、條件組合覆蓋等。窮舉測試要求對所有可能的輸入和狀態執行所有的路徑,除非對一些小實例,窮舉測試是不現實的,通常是通過從所有可能的測試用例中確定最有可能檢測出最多錯誤的子集,進行有限的測試來發現盡可能多的錯誤。但是為了實現對類中所有方法的有效測試,必須設計足夠多的測試用例。

下面我們就以一個自動售貨機為例設計一個軟件系統的白盒測試用例。一個軟件系統是有很多的服務組成的,而每個服務時由很多的用例組成的,下面我們給出自動售貨機的用例和服務,如表1所示,描述用例的用例圖如圖1所示。

對用例的用戶描述往往采用系統序列圖,它將系統看做一個整體,并從用戶的角度描述用例的處理過程,以購買商品用例為例,給出其處理過程序列表如表2所示。

借助購買商品的流程可以對服務進行白盒測試。白盒測試主要進行基本路徑測試,我們在這里主要設計語句覆蓋測試和分支覆蓋測試,來設計面向對象軟件的白盒測試的測試用例,測試用例的設計原則是保證在測試中程序的每一個可執行語句至少執行一次,針對購買商品的流程得出的具體路徑有兩條,路徑1:1-2-3-4-5;路徑2:1-3a-2-3-5a-4-4a-5。

根據路徑生成測試用例:根據判斷節點給出的條件,選擇適當的數據以保證每一條路徑可以被測試到。只要設計出的測試用例能夠保證控制流程圖中的所有路徑都能被執行到,就可以使得程序中的每一個可執行語句至少執行一次,則服務中每個條件的真假兩種取值都可以得到測試,從而實現可以檢查程序的主要執行路徑,又可以覆蓋程序的所有分支,而且可以滿足語句覆蓋的要求。

5 小結

由于面向對象軟件自身的特點,使得面向對象的白盒測試有別于傳統的白盒測試思想。到目前為止,現有的面向對象軟件測試方法還存在許多問題,對面向對象軟件的白盒測試技術還有待進一步的深入研究,以便做出對軟件測試的理論和實踐有指導意義、有影響的成果。

參考文獻

[1]LARMAN C.UML和模式應用:面向對象分析與設計導論[M].姚淑珍,李虎,譯.北京:機械工業出版社,2001.

[2]JACOBSON I, BOOCH G, RUMBAUGH J.統一軟件開發過程[M].周伯生,馮學民,樊東平,譯.北京:機械工業出版社,2001.

[3]PRESSMAN R S.軟件工程:實踐者的研究方法[M].黃柏素,梅宏,譯.北京:機械工業出版社,1999.

主站蜘蛛池模板: yjizz国产在线视频网| 亚洲男人天堂久久| 亚洲h视频在线| 国产在线视频导航| 成人亚洲视频| 久久精品午夜视频| 色久综合在线| 国产人成午夜免费看| 国产精品香蕉在线观看不卡| 岛国精品一区免费视频在线观看| 操国产美女| 亚洲第一区精品日韩在线播放| 女人一级毛片| 精品午夜国产福利观看| 72种姿势欧美久久久久大黄蕉| 国产精品三级专区| 欧美日韩国产综合视频在线观看 | 91色综合综合热五月激情| 午夜日本永久乱码免费播放片| 白浆视频在线观看| AV在线麻免费观看网站| 亚洲区第一页| 久久女人网| 波多野结衣亚洲一区| 国产日韩精品一区在线不卡 | 国产精品网拍在线| 免费va国产在线观看| 国产97色在线| 日韩在线网址| 国产不卡网| 亚洲国产欧美中日韩成人综合视频| 中文字幕无线码一区| 久青草国产高清在线视频| 园内精品自拍视频在线播放| 国产成人永久免费视频| 欧美日韩中文字幕在线| 亚洲欧美一区在线| 97人妻精品专区久久久久| 免费播放毛片| 日韩AV无码免费一二三区| 久久国产精品娇妻素人| 欧美激情,国产精品| 亚洲无码91视频| 伊人91视频| 亚洲愉拍一区二区精品| 成人中文在线| 中文字幕人妻无码系列第三区| 四虎精品免费久久| 国产成人调教在线视频| 十八禁美女裸体网站| 欧美爱爱网| 亚洲成肉网| 无码aⅴ精品一区二区三区| 欧美一区中文字幕| 专干老肥熟女视频网站| 欧美一区国产| 人妻无码一区二区视频| 国产日韩精品一区在线不卡| 欧日韩在线不卡视频| 亚洲三级影院| 人妻21p大胆| 亚洲性日韩精品一区二区| 亚洲美女一区| 精品成人一区二区三区电影 | 国产超薄肉色丝袜网站| 中文字幕无线码一区| 无码AV高清毛片中国一级毛片 | 久无码久无码av无码| 亚洲三级视频在线观看| 国产精品视频观看裸模| 人人看人人鲁狠狠高清| 精品99在线观看| 欧美一级在线| 国产极品美女在线播放| 久久久久久午夜精品| 欧美色视频日本| 99久久精品免费看国产电影| 亚洲黄色激情网站| 婷婷六月综合| 潮喷在线无码白浆| 国产熟睡乱子伦视频网站| 曰韩人妻一区二区三区|