單元測試分析與設(shè)計(jì)_第1頁
單元測試分析與設(shè)計(jì)_第2頁
單元測試分析與設(shè)計(jì)_第3頁
單元測試分析與設(shè)計(jì)_第4頁
單元測試分析與設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第四章 單元測試4.1 4.1 什么是單元測試什么是單元測試規(guī)格定義設(shè)計(jì)編碼系統(tǒng)測試集成測試單元測試用戶需求驗(yàn)收測試回歸測試配置管理缺陷跟蹤 4.1 4.1 什么是單元測試什么是單元測試單元測試(單元測試(Unit TestingUnit Testing)是對軟件基本組成單元是對軟件基本組成單元進(jìn)行的測試,單元的基本屬性:進(jìn)行的測試,單元的基本屬性:- 明確的功能;明確的功能;- 規(guī)格定義;規(guī)格定義;- 與其他部分明確的接口定義;與其他部分明確的接口定義;- 例:例:C+C+中的中的publicpublic的成員函數(shù),單獨(dú)的函數(shù)或類的成員函數(shù),單獨(dú)的函數(shù)或類; 4.1 4.1 什么是單元測試什

2、么是單元測試單元測試的目的:單元測試的目的:- 驗(yàn)證代碼是否與設(shè)計(jì)相符;驗(yàn)證代碼是否與設(shè)計(jì)相符;- 跟蹤需求和設(shè)計(jì)的實(shí)現(xiàn);跟蹤需求和設(shè)計(jì)的實(shí)現(xiàn);- 發(fā)現(xiàn)設(shè)計(jì)和需求中存在的錯誤;發(fā)現(xiàn)設(shè)計(jì)和需求中存在的錯誤;- 發(fā)現(xiàn)編碼過程中引入的錯誤;發(fā)現(xiàn)編碼過程中引入的錯誤;4.1 4.1 什么是單元測試什么是單元測試為什么進(jìn)行單元測試?為什么進(jìn)行單元測試?- 單元測試?yán)速M(fèi)了太多時(shí)間;單元測試?yán)速M(fèi)了太多時(shí)間;- 單元測試僅僅是證明這些代碼做了些什么;單元測試僅僅是證明這些代碼做了些什么;- 我是個很棒的程序元,我可以不進(jìn)行單元測試;我是個很棒的程序元,我可以不進(jìn)行單元測試;- 不管怎樣,集成測試將會抓住所有的

3、不管怎樣,集成測試將會抓住所有的bugbug;- 它的成本效率不高;它的成本效率不高;4.2 4.2 單元測試策略單元測試策略樁模塊(樁模塊(StubStub):用以模擬被測模塊工作過程中所用以模擬被測模塊工作過程中所調(diào)用的模塊,他們一般只進(jìn)行很少的數(shù)據(jù)處理,例調(diào)用的模塊,他們一般只進(jìn)行很少的數(shù)據(jù)處理,例如打印入口和返回;如打印入口和返回;驅(qū)動模塊(驅(qū)動模塊(DriverDriver):用以模擬被測模塊的上級模用以模擬被測模塊的上級模塊,它接受測試數(shù)據(jù),把相關(guān)的數(shù)據(jù)傳送給被測模塊,它接受測試數(shù)據(jù),把相關(guān)的數(shù)據(jù)傳送給被測模塊,啟動被測模塊,并打印相應(yīng)的結(jié)果;塊,啟動被測模塊,并打印相應(yīng)的結(jié)果;4

4、.2 4.2 單元測試策略單元測試策略 由頂向下的單元測試策略;由頂向下的單元測試策略; - - 先對最頂層的單元進(jìn)行測試,把頂層所調(diào)用的單先對最頂層的單元進(jìn)行測試,把頂層所調(diào)用的單元做成樁模塊,其次對第二層進(jìn)行測試,使用上面已元做成樁模塊,其次對第二層進(jìn)行測試,使用上面已測試的單元做驅(qū)動模塊,以此類推;測試的單元做驅(qū)動模塊,以此類推; 由底向上的單元測試策略;由底向上的單元測試策略; - - 先對模塊調(diào)用層次圖上最底層的模塊進(jìn)行單元測先對模塊調(diào)用層次圖上最底層的模塊進(jìn)行單元測試,為該模塊建立驅(qū)動模塊,其次對上一層做單元測試,為該模塊建立驅(qū)動模塊,其次對上一層做單元測試,下面測試過的模塊做樁模

5、塊,以此類推;試,下面測試過的模塊做樁模塊,以此類推; 孤立測試孤立測試 - - 不考慮每個模塊與其他模塊之間的關(guān)系,為每個不考慮每個模塊與其他模塊之間的關(guān)系,為每個模塊設(shè)計(jì)樁模塊和驅(qū)動模塊;模塊設(shè)計(jì)樁模塊和驅(qū)動模塊;4.3 4.3 單元測試分析單元測試分析單元測試所考慮的方面:單元測試所考慮的方面:模塊模塊接口局部數(shù)據(jù)結(jié)構(gòu)出錯處理獨(dú)立路徑邊界條件4.3 4.3 單元測試分析單元測試分析模塊接口:模塊接口:- 調(diào)用所測模塊時(shí)的輸入?yún)?shù)與模塊的形參在個數(shù)、調(diào)用所測模塊時(shí)的輸入?yún)?shù)與模塊的形參在個數(shù)、屬性、順序上是否匹配;屬性、順序上是否匹配;- 參數(shù)與變量的屬性、單位是否一致;參數(shù)與變量的屬性、

6、單位是否一致;- 全局變量的定義在每個模塊中是否一致;全局變量的定義在每個模塊中是否一致;- - 是否修改只是作為輸入值的變量;是否修改只是作為輸入值的變量;- 有沒有把常數(shù)當(dāng)變量來傳送;有沒有把常數(shù)當(dāng)變量來傳送;- 調(diào)用內(nèi)部函數(shù)時(shí),變量的個數(shù)、屬性和次序是否調(diào)用內(nèi)部函數(shù)時(shí),變量的個數(shù)、屬性和次序是否正確;正確;4.3 4.3 單元測試分析單元測試分析局部數(shù)據(jù)結(jié)構(gòu):局部數(shù)據(jù)結(jié)構(gòu):- 檢查不正確或不一致的數(shù)據(jù)類型說明;檢查不正確或不一致的數(shù)據(jù)類型說明;- 使用尚未賦值或尚未初始化的變量;使用尚未賦值或尚未初始化的變量;- 錯誤的初始值或錯誤的默認(rèn)值;錯誤的初始值或錯誤的默認(rèn)值;- 變量名拼寫錯誤

7、或書寫錯誤;變量名拼寫錯誤或書寫錯誤;- 不一致的數(shù)據(jù)類型;不一致的數(shù)據(jù)類型;- 上溢、下溢或地址錯誤;上溢、下溢或地址錯誤;4.3 4.3 單元測試分析單元測試分析獨(dú)立路徑:獨(dú)立路徑:- 誤解或不正確的算術(shù)優(yōu)先級;誤解或不正確的算術(shù)優(yōu)先級;- 運(yùn)算方式錯誤;運(yùn)算方式錯誤;- 不同數(shù)據(jù)類型的比較;不同數(shù)據(jù)類型的比較;- 不正確的邏輯運(yùn)算符或優(yōu)先次序;不正確的邏輯運(yùn)算符或優(yōu)先次序;- 錯誤或不可能的循環(huán)終止條件;錯誤或不可能的循環(huán)終止條件;- 不恰當(dāng)?shù)男薷牧搜h(huán)變量;不恰當(dāng)?shù)男薷牧搜h(huán)變量;- 因浮點(diǎn)數(shù)運(yùn)算精度問題而造成的兩值比較不等;因浮點(diǎn)數(shù)運(yùn)算精度問題而造成的兩值比較不等;4.3 4.3 單

8、元測試分析單元測試分析出錯處理:出錯處理:- 出錯的描述難以理解;出錯的描述難以理解;- 出錯的描述不足以對錯誤定位和確定出錯的原因;出錯的描述不足以對錯誤定位和確定出錯的原因;- 顯示的錯誤與實(shí)際的錯誤不符;顯示的錯誤與實(shí)際的錯誤不符;- 對錯誤條件的處理不正確;對錯誤條件的處理不正確;- 在對錯誤進(jìn)行處理之前,錯誤條件已經(jīng)引起系統(tǒng)在對錯誤進(jìn)行處理之前,錯誤條件已經(jīng)引起系統(tǒng)的干預(yù);的干預(yù);- 遺漏的錯誤處理;遺漏的錯誤處理;4.3 4.3 單元測試分析單元測試分析邊界條件:邊界條件:- 循環(huán)條件;循環(huán)條件;- 控制流中剛好等于、大于、小于確定的比較值時(shí)控制流中剛好等于、大于、小于確定的比較值

9、時(shí)出現(xiàn)錯誤的可能性;出現(xiàn)錯誤的可能性;4.4 4.4 單元測試用例設(shè)計(jì)單元測試用例設(shè)計(jì) 為正向測試設(shè)計(jì)用例;為正向測試設(shè)計(jì)用例; - - 驗(yàn)證設(shè)計(jì)說明書所對應(yīng)的功能項(xiàng)或性能指標(biāo)能否驗(yàn)證設(shè)計(jì)說明書所對應(yīng)的功能項(xiàng)或性能指標(biāo)能否兌現(xiàn);兌現(xiàn); 為逆向測試設(shè)計(jì)用例;為逆向測試設(shè)計(jì)用例; - - 驗(yàn)證被測的軟件單元有沒有做它不應(yīng)該做的事情驗(yàn)證被測的軟件單元有沒有做它不應(yīng)該做的事情; 為滿足特殊需求設(shè)計(jì)用例;為滿足特殊需求設(shè)計(jì)用例; 為代碼覆蓋設(shè)計(jì)用例;為代碼覆蓋設(shè)計(jì)用例; 為覆蓋率指標(biāo)完成設(shè)計(jì)用例;為覆蓋率指標(biāo)完成設(shè)計(jì)用例;4.4 4.4 單元測試用例設(shè)計(jì)單元測試用例設(shè)計(jì)主要采用的方法:主要采用的方法:

10、等價(jià)類劃分;等價(jià)類劃分; 邊界值分析;邊界值分析; 定義定義/ /使用測試;使用測試; 路徑測試;路徑測試;4.5 4.5 單元測試過程單元測試過程測試計(jì)劃測試設(shè)計(jì)測試執(zhí)行測試記錄分析測試總結(jié)完畢缺陷跟蹤針對測試目標(biāo),規(guī)定測試任務(wù)、資源分配、人員角色、進(jìn)度安排等。根據(jù)測試計(jì)劃,設(shè)計(jì)測試用例,包括:測試步驟、測試場景、測試代碼、測試數(shù)據(jù)(包括預(yù)期結(jié)果)。根據(jù)測試計(jì)劃,配置測試環(huán)境,并手動或者自動執(zhí)行測試設(shè)計(jì)。根據(jù)測試計(jì)劃,忠實(shí)地記錄測試執(zhí)行的過程和結(jié)果。分析測試記錄,如果發(fā)現(xiàn)與預(yù)期結(jié)果不同,確定并重現(xiàn)缺陷。檢查測試設(shè)計(jì)是否全部執(zhí)行完畢,缺陷是否全部關(guān)閉。記錄、分發(fā)、評估、關(guān)閉缺陷報(bào)告。分析測試過

11、程和缺陷報(bào)告,評估測試質(zhì)量和測試效果,給出是否通過測試的建議。4.5 4.5 單元測試過程單元測試過程測試文檔:測試計(jì)劃測試設(shè)計(jì)測試執(zhí)行測試記錄分析測試總結(jié)完畢缺陷跟蹤測試計(jì)劃文檔測試用例文檔測試記錄文檔缺陷跟蹤報(bào)告測試總結(jié)報(bào)告4.5 4.5 單元測試過程單元測試過程測試計(jì)劃內(nèi)容:測試計(jì)劃內(nèi)容:1)1) 概要:概要:明確測試目的和主要任務(wù),被測系統(tǒng)的簡單描述,明確測試目的和主要任務(wù),被測系統(tǒng)的簡單描述,被測系統(tǒng)依賴的其它系統(tǒng)描述被測系統(tǒng)依賴的其它系統(tǒng)描述2)2) 領(lǐng)域:定義測試和不需要測試的內(nèi)容,描述與測試計(jì)劃相領(lǐng)域:定義測試和不需要測試的內(nèi)容,描述與測試計(jì)劃相關(guān)的重要術(shù)語和縮略語,測試場所關(guān)

12、的重要術(shù)語和縮略語,測試場所3)3) 建議的重大事件時(shí)間表:列出階段性進(jìn)度建議的重大事件時(shí)間表:列出階段性進(jìn)度4)4) 轉(zhuǎn)換標(biāo)準(zhǔn):轉(zhuǎn)換標(biāo)準(zhǔn):允許系統(tǒng)進(jìn)入一個特定的測試階段所必須具備允許系統(tǒng)進(jìn)入一個特定的測試階段所必須具備的條件。定義可能會導(dǎo)致測試執(zhí)行掛起的狀態(tài)和事件。說的條件。定義可能會導(dǎo)致測試執(zhí)行掛起的狀態(tài)和事件。說明如何決定測試何時(shí)可以結(jié)束明如何決定測試何時(shí)可以結(jié)束5)5) 測試配置和環(huán)境:測試配置和環(huán)境:6)6) 測試執(zhí)行:測試人員與分工,錯誤管理,測試周期等;測試執(zhí)行:測試人員與分工,錯誤管理,測試周期等;4.5 4.5 單元測試過程單元測試過程測試計(jì)劃內(nèi)容:測試計(jì)劃內(nèi)容:7)7) 風(fēng)

13、險(xiǎn)和意外事故:風(fēng)險(xiǎn)和意外事故:意外事件的對策意外事件的對策8)8) 更改記錄:更改記錄:到目前為止對測試計(jì)劃本身所作的更改和修訂。到目前為止對測試計(jì)劃本身所作的更改和修訂。內(nèi)容可包括:編號、更改人、更改內(nèi)容、修訂的發(fā)布時(shí)間內(nèi)容可包括:編號、更改人、更改內(nèi)容、修訂的發(fā)布時(shí)間等。等。9)9) 參考文檔:測試計(jì)劃引用的其他文檔。如參考文檔:測試計(jì)劃引用的其他文檔。如: : 需求規(guī)范、設(shè)需求規(guī)范、設(shè)計(jì)規(guī)范、操作手冊、標(biāo)準(zhǔn)、其他相關(guān)信息。計(jì)規(guī)范、操作手冊、標(biāo)準(zhǔn)、其他相關(guān)信息。4.5 4.5 單元測試過程單元測試過程測試方案內(nèi)容:測試方案內(nèi)容:1)1)概要概要2)2)被測試特性:進(jìn)一步明確和細(xì)化被測試的特

14、性被測試特性:進(jìn)一步明確和細(xì)化被測試的特性3)3)測試需求:分析和明確功能等各方面的測試需求測試需求:分析和明確功能等各方面的測試需求4)4)測試方法:擬采用的具體測試技術(shù)和方法測試方法:擬采用的具體測試技術(shù)和方法5)5)需求規(guī)范追蹤:把測試需求轉(zhuǎn)化為測試設(shè)計(jì)需求規(guī)范追蹤:把測試需求轉(zhuǎn)化為測試設(shè)計(jì)6)6)測試用例集描述:對測試用例分層次說明測試用例集描述:對測試用例分層次說明7)7)更改記錄更改記錄8)8)參考文檔參考文檔4.5 4.5 單元測試過程單元測試過程測試用例內(nèi)容:測試用例內(nèi)容:1 用例編號10用例類別2 用例名稱11用例狀態(tài)3 測試目的12用例設(shè)計(jì)人4 輸入數(shù)據(jù)13創(chuàng)建時(shí)間5 測試

15、步驟14用例評審人6 測試腳本15評審時(shí)間7 預(yù)期結(jié)果16評審結(jié)果8 響應(yīng)時(shí)間17執(zhí)行結(jié)果9 實(shí)際輸出18相關(guān)模塊4.5 4.5 單元測試過程單元測試過程錯誤管理錯誤管理- -缺陷的級別:缺陷的級別:1)1)致命性錯誤(致命性錯誤(CriticalCritical)1.1.數(shù)據(jù)丟失,數(shù)據(jù)計(jì)算錯誤、系統(tǒng)崩潰和非常死數(shù)據(jù)丟失,數(shù)據(jù)計(jì)算錯誤、系統(tǒng)崩潰和非常死機(jī)機(jī) 2)2)嚴(yán)重功能性錯誤嚴(yán)重功能性錯誤(Serious)(Serious)1.1.規(guī)定的功能沒有實(shí)現(xiàn)或不完整、設(shè)計(jì)不合理造規(guī)定的功能沒有實(shí)現(xiàn)或不完整、設(shè)計(jì)不合理造成性能低下,影響系統(tǒng)的運(yùn)營成性能低下,影響系統(tǒng)的運(yùn)營 3)3)告警性錯誤告警性錯

16、誤(Moderate)(Moderate)1.1.不影響業(yè)務(wù)運(yùn)營的功能問題不影響業(yè)務(wù)運(yùn)營的功能問題 4)4)建議性錯誤建議性錯誤(Suggestion,Cosmetic)(Suggestion,Cosmetic)1.1.軟件設(shè)計(jì)和功能實(shí)現(xiàn)等不甚合理之處提出建議軟件設(shè)計(jì)和功能實(shí)現(xiàn)等不甚合理之處提出建議4.5 4.5 單元測試過程單元測試過程錯誤管理錯誤管理- -修改級別:修改級別:1)1)高高2)2)中中3)3)低低4.5 4.5 單元測試過程單元測試過程錯誤管理錯誤管理- -錯誤描述:錯誤描述:1 分配給錯誤的ID號2 提交錯誤的時(shí)間3 錯誤提交人4 版本號發(fā)生錯誤的子系統(tǒng)或模塊5 錯誤發(fā)生的

17、條件6 對錯誤的詳細(xì)描述7 所使用的測試用例號8 錯誤被發(fā)現(xiàn)的數(shù)據(jù)庫9 使用的機(jī)器號10 錯誤的重要性11 錯誤的改正優(yōu)先級12發(fā)生錯誤的子系統(tǒng)或模塊及相關(guān)的模塊13 錯誤是否易再現(xiàn)14 其他4.5 4.5 單元測試過程單元測試過程錯誤管理錯誤管理- -錯誤跟蹤:錯誤跟蹤:1 錯誤負(fù)責(zé)人6 錯誤改正后需要重新做的測試2 嚴(yán)重性7 改正錯誤所影響的組件3 優(yōu)先級8 目前錯誤的狀態(tài)4 估計(jì)改正錯誤的日期9 錯誤類別5 估計(jì)改正錯誤所要花費(fèi)的時(shí)間10 解決辦法4.5 4.5 單元測試過程單元測試過程錯誤管理錯誤管理- -錯誤分發(fā):錯誤分發(fā):項(xiàng)目管理者項(xiàng)目管理者測試管理者測試管理者被分配修改錯誤的人被

18、分配修改錯誤的人組件代碼的編寫人組件代碼的編寫人測試小組中的其他成員測試小組中的其他成員4.5 4.5 單元測試過程單元測試過程錯誤管理錯誤管理- -益處:益處:有利于缺陷的清楚傳達(dá)有利于缺陷的清楚傳達(dá)依據(jù)錯誤的相對和絕對重要性來修復(fù)問題依據(jù)錯誤的相對和絕對重要性來修復(fù)問題對錯誤實(shí)現(xiàn)全生命周期管理對錯誤實(shí)現(xiàn)全生命周期管理當(dāng)錯誤變化時(shí)相關(guān)人員及時(shí)獲悉新的信息當(dāng)錯誤變化時(shí)相關(guān)人員及時(shí)獲悉新的信息錯誤的統(tǒng)計(jì)分析報(bào)告提供更多的信息錯誤的統(tǒng)計(jì)分析報(bào)告提供更多的信息4.5 4.5 單元測試過程單元測試過程錯誤管理錯誤管理- -方法:方法:使用商業(yè)錯誤跟蹤與管理系統(tǒng)使用商業(yè)錯誤跟蹤與管理系統(tǒng) - testdirector - IBM Rational自行開發(fā)專用錯誤跟蹤與管理系統(tǒng)自行開發(fā)專用錯誤跟蹤與管理系統(tǒng) - NEUSOFT bugbase4.5 4.5 單元測試過程單元測試過程測試報(bào)告內(nèi)容:測試報(bào)告內(nèi)容:1 測試

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論