軟件工程與開發(fā)技術(shù)(西電第二版)第14章面向?qū)ο鬁y試基礎(chǔ)

上傳人:xiao****017 文檔編號:22141183 上傳時間:2021-05-21 格式:PPT 頁數(shù):30 大?。?05KB
收藏 版權(quán)申訴 舉報 下載
軟件工程與開發(fā)技術(shù)(西電第二版)第14章面向?qū)ο鬁y試基礎(chǔ)_第1頁
第1頁 / 共30頁
軟件工程與開發(fā)技術(shù)(西電第二版)第14章面向?qū)ο鬁y試基礎(chǔ)_第2頁
第2頁 / 共30頁
軟件工程與開發(fā)技術(shù)(西電第二版)第14章面向?qū)ο鬁y試基礎(chǔ)_第3頁
第3頁 / 共30頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《軟件工程與開發(fā)技術(shù)(西電第二版)第14章面向?qū)ο鬁y試基礎(chǔ)》由會員分享,可在線閱讀,更多相關(guān)《軟件工程與開發(fā)技術(shù)(西電第二版)第14章面向?qū)ο鬁y試基礎(chǔ)(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第 14章 面 向 對 象 測 試 基 礎(chǔ) 第14章 面向?qū)ο鬁y試基礎(chǔ) 14.1 面向?qū)ο蟮膯卧獪y試 14.2 面向?qū)ο蟮募蓽y試 14.3 面向?qū)ο蟮拇_認測試與系統(tǒng)測試 14.4 設(shè)計測試用例 14.5小結(jié) 第 14章 面 向 對 象 測 試 基 礎(chǔ) 14.1 面向?qū)ο蟮膯卧獪y試在面向?qū)ο蟮能浖_發(fā)中,“封裝”導(dǎo)致了類和對象的定義特點,這意味著類和類的實例(對象)包裝了屬性(數(shù)據(jù))和處理這些數(shù)據(jù)的操作(也稱為方法或服務(wù))。軟件的核心是“對象”,不像傳統(tǒng)軟件開發(fā)中的“單元”(或者說單元的概念改變了)。也就是說,封裝起來的類和對象是最小的可測試單元。一個類可以包含一組不同的操作,而一個特定的操作

2、也可能定義在一組不同的類中。因此,面向?qū)ο蟮能浖卧獪y試與傳統(tǒng)測試方法不一樣,它的含義發(fā)生了很大變化。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 面向?qū)ο筌浖膯卧獪y試不是獨立地測試單個操作,而是把所有操作都看成類的一部分,全面地測試類和對象所封裝的屬性和操縱這些屬性的操作整體。具體地說,在面向?qū)ο蟮膯卧獪y試中不僅要發(fā)現(xiàn)類的所有操作中存在的問題,還要考查一個類與其他的類協(xié)同工作時可能出現(xiàn)的錯誤。現(xiàn)以實例說明:在一個類層次中,操作A在超類中定義并被一組子類繼承,每個子類都可使用操作A,但是A要調(diào)用子類中定義的操作并處理子類的私有屬性。由于在不同的子類中使用操作A的環(huán)境有所不同,因此有必要在每個

3、子類的語境中測試操作A。這就是說,當(dāng)測試面向?qū)ο筌浖r,傳統(tǒng)的單元測試方法是不完備的,我們不能再獨立地對操作A進行測 試。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 14.2 面向?qū)ο蟮募蓽y試 1基于線程的測試(Thread_based Testing)基于線程的測試把響應(yīng)系統(tǒng)的一個輸入或一個事件所需要的一組類集成起來進行測試。應(yīng)當(dāng)分別集成并測試每個線程,同時為了避免產(chǎn)生副作用再進行回歸測試。該測試需要基于系統(tǒng)的動態(tài)模型。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 2基于使用的測試(Use_based Testing)基于使用的測試首先測試幾乎不使用服務(wù)器類的那些類(稱為獨立類);接著測

4、試使用獨立類的最下層的類(稱為依賴類);然后,對根據(jù)依賴類的使用關(guān)系,從下到上一個層次一個層次地持續(xù)進行測試,直至把整個軟件系統(tǒng)測試完為止。除了上述兩種測試方法,還有一種集群測試法,是面向?qū)ο筌浖蓽y試的一個步驟。為了檢查一群相互協(xié)作的類,用精心設(shè)計的測試用例,力圖發(fā)現(xiàn)協(xié)作錯誤,即集群測試。通過研究對象模型可以確定協(xié)作類。為減少測試工作的工作量,在進行集成測試時,可參考類關(guān)系圖或?qū)嶓w關(guān)系圖,確定不需要被重復(fù)測試的部分,從而優(yōu)化測 試用例,使測試能夠達到一定的標(biāo)準(zhǔn)。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 14.3 面向?qū)ο蟮拇_認測試與系統(tǒng)測試通過對軟件的單元測試和集成測試,僅能確認軟件開

5、發(fā)的功能是正確的,不能確認在實際運行時,它是否滿足用戶要求,是否大量存在與實際使用條件下的各種應(yīng)用相矛盾的錯誤。為此在完成上述測試活動后,還必須經(jīng)過規(guī)范的確認測試和系統(tǒng)測試。面向?qū)ο筌浖拇_認測試或系統(tǒng)測試與傳統(tǒng)的確認測試一樣,通過設(shè)計測試用例,主要檢查用戶界面和用戶可識別的輸出,不再考慮類之間相互連接的細節(jié)。測試人員應(yīng)該認真研究動態(tài)模型和描述系統(tǒng)行為的腳本,為系統(tǒng)的輸入信息 設(shè)計出錯處理的通路,模擬錯誤的數(shù)據(jù)和軟件界面可能發(fā)生的錯誤,設(shè)計出合理的測試用例。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 14.4 設(shè)計測試用例14.4.1 測試用例概述類似于用例(Use Case)的定義,測試用

6、例(Test Case)是為實現(xiàn)某個特殊目標(biāo)(驗證或者找錯)而執(zhí)行系統(tǒng)的過程。它包括精心設(shè)計的一組測試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測試某個程序功能或者路徑是否滿足特定需求。測試用例包括對特定的軟件產(chǎn)品進行測試的任務(wù)描述,體現(xiàn)測試方案、方法、技術(shù)和策略,其內(nèi)容包括測試目標(biāo)、測試環(huán)境、輸入數(shù)據(jù)、測試步驟、預(yù)期結(jié)果、測試腳本等, 并形成文檔。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 測試用例是針對軟件產(chǎn)品的功能、業(yè)務(wù)規(guī)則和業(yè)務(wù)處理所設(shè)計的測試方案。對軟件的每個特定功能或運行操作路徑的測試構(gòu)成了一個個測試用例。不同類別的軟件,測試用例的策略、方法和側(cè)重點都是不同的。例如,企業(yè)信息管理類軟件,其

7、需求不確定或者變化較為頻繁,通常的策略是把測試數(shù)據(jù)和測試腳本從測試用例中劃分出來,以供重用。目前,面向?qū)ο筌浖臏y試用例的設(shè)計方法還處于研究、發(fā)展階段。1993年,Berard提出了指導(dǎo)面向?qū)ο蟮能浖y試用例設(shè)計的方法,要點如下: 第 14章 面 向 對 象 測 試 基 礎(chǔ) (1) 每一個測試用例都要有一個唯一的標(biāo)識,并與被測試的一個或幾個類相關(guān)聯(lián)起來。(2) 每個測試用例都要陳述測試目的。(3) 對每個測試用例要有相應(yīng)的測試步驟,包括被測對象的特定狀態(tài)、所使用的消息和操作、可能產(chǎn)生的錯誤及測試需要的外部環(huán)境。(4) 與傳統(tǒng)軟件測試(測試用例的設(shè)計由軟件的輸入處理輸出或單個模塊的算法細節(jié)驅(qū)動)

8、不同,面向?qū)ο鬁y試關(guān)注于設(shè)計適當(dāng)?shù)牟僮餍蛄幸詸z查類的狀態(tài)。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 測試用例分為基于黑盒的測試用例和基于白盒的測試用例。前者也叫做基于系統(tǒng)外部需求的測試用例,主要根據(jù)需求分析階段的用例規(guī)格描述和其他需求進行設(shè)計,只觀察系統(tǒng)的外觀表現(xiàn)是否滿足預(yù)期要求;后者又稱為基于系統(tǒng)內(nèi)部結(jié)構(gòu)的測試用例,主要依據(jù)分析設(shè)計階段的邏輯和物理模型,如類圖和順序圖以及代碼設(shè)計測試用例,旨在測試軟件功能執(zhí)行過程中對象的交互過程,包括消息、響應(yīng)以及各個程序路徑等。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 14.4.2 面向?qū)ο蟾拍顚y試用例設(shè)計的影響封裝性和繼承性是類的重要特性,這為

9、面向?qū)ο蟮能浖_發(fā)帶來很多好處,同時它又為面向?qū)ο蟮能浖y試帶來負面影響。類的屬性和操作是被封裝的,而測試需要了解對象的詳細狀態(tài)。同時,當(dāng)改變數(shù)據(jù)成員的結(jié)構(gòu)時,要測試是否影響了類的對外接口,是否導(dǎo)致相應(yīng)的外界必須改動。例如,強制的類型轉(zhuǎn)換會破壞數(shù)據(jù)的封裝性。請看下面的這段程序: 第 14章 面 向 對 象 測 試 基 礎(chǔ) class Hd int a=1; char *h=“Hd”;class Vb public:int b=2; char *v=Vb;Hd p;Vb *q=(Vb *)這樣,p的私有數(shù)據(jù)成員a可以通過q被隨意訪問,破壞了類Vb的封裝性。 第 14章 面 向 對 象 測 試 基

10、 礎(chǔ) 此外,繼承不會減少對子類的測試,相反,會使測試過程更加復(fù)雜化。因此,繼承也給測試用例的設(shè)計帶來負面影響。當(dāng)父類與子類的環(huán)境不同時,父類的測試用例對子類沒有什么使用價值,必須為子類設(shè)計新的測試用例。在設(shè)計面向?qū)ο蟮臏y試用例時應(yīng)注意以下三點:(1) 繼承的成員函數(shù)需要測試。對于在父類中已經(jīng)測試過的成員函數(shù),根據(jù)具體情況仍需在子類中重新測試。一般在下述兩種情況下要對成員函數(shù)重新進行測試: 繼承的成員函數(shù)在子類中有所改動。 成員函數(shù)調(diào)用了改動過的成員函數(shù)。 第 14章 面 向 對 象 測 試 基 礎(chǔ) (2) 子類的測試用例可以參照父類。例如,有兩個不同的成員函數(shù)的定義如下:father:B()中

11、定義為if (value0) message(less);else if (value=0) message(equal);else message(more);son:B()中定義為if (value 賬戶余額 在步驟 2 處重新加入基本流 TC y 場景4 步驟 2 - 提款金額 賬戶余額 不執(zhí)行備選流 3,執(zhí)行基本流 TC z 場景4 步驟 2 - 提款金額 = 賬戶余額 不執(zhí)行備選流 3,執(zhí)行基本流 第 14章 面 向 對 象 測 試 基 礎(chǔ) 2基于白盒技術(shù)的單元測試的測試用例設(shè)計從理論上來講,白盒測試應(yīng)該測試程序每一條可能的路徑。在所有簡單的單元內(nèi)實現(xiàn)這樣的目標(biāo)是不切實際的。作為最基

12、本的測試,應(yīng)將每個決策(Decision)到?jīng)Q策路徑(DD 路徑)測試至少一次,這樣可確保將所有語句至少執(zhí)行一次。決策通常是指 if 語句,而 DD 路徑是兩個決策之間的路徑。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 要達到這種程度的測試覆蓋,測試用例應(yīng)確保:(1) 每個if語言的布爾表達式的求值結(jié)果為true和false。例如,表達式(a4)的求值結(jié)果為true/false 的四種組合,即滿足條件覆蓋。(2) 每一個循環(huán)至少要執(zhí)行零次、一次和一次以上。 (3) 可使用代碼覆蓋工具來確定白盒測試未測試到的代碼,另外在進行白盒測試的同時應(yīng)進行可靠性測試。例如,假設(shè)對類SetofPrime中的

13、isPrime函數(shù)執(zhí)行結(jié)構(gòu)測試。該函數(shù)檢查集合是否包含了某個指定的整數(shù)。isPrime函數(shù)的代碼和相應(yīng)的流程圖如圖14.2所示。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 圖14.2 基于白盒技術(shù)的測試用例設(shè)計 第 14章 面 向 對 象 測 試 基 礎(chǔ) 理論上,測試用例應(yīng)遍歷代碼內(nèi)路徑的所有組合情況。在 isPrime函數(shù)的for循環(huán)中存在兩個可選擇的路徑。測試用例可以一次、多次遍歷該循環(huán),或是根本就不遍歷。如果測試用例根本就沒有遍歷循環(huán),則在代碼中只能找到一條路徑。如果遍歷一次,將有三條路徑;如果遍歷兩次,將存在六條路徑。如此類推。因此路徑組合總數(shù)根本無法完全測試,必須選擇所有這些路徑的

14、子集。本例中,可以采用三個測試用例來執(zhí)行所有的語句,測試數(shù)據(jù)m分別為2、3、4,這和基于黑盒的等價類劃分方法得到的結(jié)果是一致的。 第 14章 面 向 對 象 測 試 基 礎(chǔ) 14.5 小 結(jié)面向?qū)ο鬁y試和傳統(tǒng)測試方法有很多類似的地方,主要區(qū)別在于面向?qū)ο鬁y試中的單元測試是以類作為基本單元的,必須針對類單元設(shè)計單元測試用例。除了類單元測試之外,還有類協(xié)作測試。面向?qū)ο蠓椒ㄔ谲浖y試中的應(yīng)用之一就是測試用例或測試案例(Test Case)概念的提出,這也是用例思想在軟件測試中的應(yīng)用即通過設(shè)計合適的測試案例來發(fā)現(xiàn)軟件設(shè)計中存在的問題。此時可根據(jù)用例的使用或者實現(xiàn)過程來設(shè)計測試用例,前者可以參照用例規(guī)格說明,后者可以根據(jù)參與實現(xiàn)的類之間的關(guān)系來設(shè)計用例,以便更好地發(fā)現(xiàn)類協(xié)作之間的問題。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!