版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單元測試9/21/20221課前問題1. 單元測試就是模塊測試嗎?2. 單元測試應該誰來做?9/21/20222本章內(nèi)容為什么要做單元測試?單元測試的概述 單元測試的方法和技術(shù)單元測試的內(nèi)容單元測試的過程9/21/202231 為什么要做單元測試對缺陷分析觀察結(jié)果原因思考9/21/20224對缺陷分析的思考故障發(fā)現(xiàn)階段需求缺陷設(shè)計缺陷編碼缺陷測試缺陷總計需求階段22設(shè)計階段105060編碼和單元測試251522系統(tǒng)測試12100103驗收測試002020總21/20225觀察結(jié)果編碼階段引入的缺陷遠遠多于其它階段系統(tǒng)測試發(fā)現(xiàn)的缺陷大多數(shù)是編碼缺陷測試版本頻繁,測試和項
2、目進度被無休止的拖延。 Why?9/21/20226原因1是否開發(fā)人員水平不夠?是否開發(fā)人員工作強度或工作時間不夠? 不是!9/21/20227原因2傳統(tǒng)的開發(fā)觀念?開發(fā)人員的任務是完成編程,讓系統(tǒng)正確運行起來。程序調(diào)試通過任務就完成了。自信自己的程序不會出錯。實際上:開發(fā)人員的任務是完成程序,直到交付和維護。人的失誤是不可避免的,無論多小心,都會有錯誤。9/21/20228原因3測試是測試人員的事情,我們只管編程和改正BUG? 錯! 測試是什么?9/21/20229測試生命周期9/21/202210測試分類確認測試 確認系統(tǒng)是否滿足了用戶的意圖。系統(tǒng)測試 將整個系統(tǒng)的硬件、軟件和人員等所有元
3、素結(jié)合在一起的測試,關(guān)注點是需求的驗證:系統(tǒng)是否正確完成了需要的功能。集成測試 部分模塊的組合測試,驗證接口和集成問題。單元測試9/21/202211原因4開發(fā)進度和任務緊,沒有時間做自測?必須關(guān)注質(zhì)量,如果質(zhì)量保證不了:1.太多缺陷,返工和測試延長,進度反而更慢。2.即使搶了市場先機,還是會被對手超過。對自測的時間和工作投入,可以在測試階段和維護階段撈回來,從總體上縮短項目周期。項目經(jīng)理應該足夠重視單元測試,并為單元測試安排足夠的時間。業(yè)界經(jīng)驗,1:19/21/202212如果把單元測試的任務堆積到系統(tǒng)測試階段,將會怎樣?大量的故障堆積在項目中后期:項目后10%的工作,占用了項目90%的時間
4、。故障難以定位故障飄忽不定開發(fā)、測試人員疲于奔命9/21/202213原因5單元測試難做? 單元測試比編寫程序更難嗎?Yes。9/21/202214XP極限編程測試先行,開發(fā)以測試為導向?qū)懖怀鰷y試用例,就談不上編寫單元代碼開發(fā)一個單元的代碼的步驟:1.設(shè)計和編寫測試它的用例代碼2.編寫單元的代碼3.使用前面的用例測試它單元測試是編碼的一部分!9/21/2022152 單元測試概述9/21/202216單元測試是什么?單元測試,是針對軟件設(shè)計的最小單位 程序模塊,進行正確性檢驗的測試工作。 Unit:函數(shù),源代碼文件,類把測試比作是清洗一臺機器: 系統(tǒng)測試就是清除機器外面的塵土。 集成測試就是保
5、證機器各個部件的接頭處干凈。 單元測試就是清洗各個零件的內(nèi)部。9/21/202217單元測試不是不是模塊測試?不是子系統(tǒng)測試不是功能測試?9/21/202218單元測試是自測的主要方式軟件模塊自測的手段:代碼走查:單人或多人評審閱讀代碼軟件模塊的系統(tǒng)級測試:從軟件模塊完成的功能方面,放在整個系統(tǒng)中進行驗證。單元測試:設(shè)計和編寫測試用例,運行檢查9/21/202219單元測試定義單元測試,是針對軟件設(shè)計的最小單位 代碼模塊,進行正確性檢驗的測試工作。 函數(shù) 文件(.c .cpp .java .pas) 類9/21/202220單元測試的對象單元單元測試的對象是軟件設(shè)計的最小單位單元。9/21/2
6、02221單元的特征軟件系統(tǒng)的基本組成單位由一個程序員完成在系統(tǒng)詳細規(guī)范中詳細說明其功能特性能被單獨地匯編和測試規(guī)模較小,邏輯較簡單9/21/202222單元測試特點關(guān)注程序的基本組成部分若干個單元可以并行測試發(fā)現(xiàn)錯誤后容易隔離和定位規(guī)模和復雜性較低,可利用多種測試技術(shù)進行比較充分細致的測試 9/21/202223單元測試關(guān)注點代碼 關(guān)注代碼問題,而不是功能問題。 功能測試是測試部的職責。9/21/202224單元測試內(nèi)容單元接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行路徑錯誤處理的路徑影響上述幾點的邊界條件9/21/202225單元測試時機盡早進行9/21/202226單元測試人選由誰去做由誰去做:通常由開發(fā)
7、人員自己測試 。也可是專職測試人員。也可是其他開發(fā)人員。開發(fā)者是單元測試的最佳人選9/21/202227單元測試應該開發(fā)人員來做代碼級的測試效率:了解和熟悉程序方法:白盒,不可能讓測試人員讀懂程序手段:通常需要通過編寫程序角度:開發(fā)人員提高質(zhì)量覺悟9/21/202228單元測試的目標單元測試的目標:確保模塊被正確地編碼 。使用詳細設(shè)計描述作為指南,對重要的控制路徑進行測試以發(fā)現(xiàn)模塊內(nèi)的錯誤。9/21/202229單元測試的依據(jù)單元測試的依據(jù)是詳細設(shè)計描述。9/21/202230單元測試退出準則什么時候可以停止:通常是當程序員感到代碼沒有缺陷時 。有的公司有量化的度量標準。(例如,當某段時間內(nèi)該
8、模塊千行代碼錯誤率小于某一閥值。)9/21/202231單元測試的量化要求舉例1.靜態(tài)檢查:編程規(guī)則觸犯率低于10%(每十行代碼至多有一個編碼規(guī)范錯誤)2.動態(tài)檢查:無內(nèi)存泄漏,無越界讀寫,無未處理異常3.測試用例: 語句覆蓋90%,關(guān)鍵模塊100% 判定覆蓋80%(關(guān)鍵模塊),條件覆蓋不要求 接口邊界檢查(關(guān)鍵模塊:根據(jù)80%原則,要求最復雜的,缺陷最集中的20%的單元) 最低測試范圍:修改的代碼和新增的代碼。單元測試記錄和文檔故障記錄:通常沒有記錄 ?;蛴涗洸蝗?。文檔:單元測試規(guī)程單元測試報告9/21/2022333單元測試方法 可用手段:白盒測試方法 靜態(tài)分析 動態(tài)分析 黑盒測試方法9/
9、21/202234單元測試方法怎樣去測試: 白盒為主 系統(tǒng)內(nèi)多個模塊可以并行地進行測試。關(guān)注覆蓋率(應對模塊內(nèi)所有重要的控制路徑設(shè)計測試用例,以便發(fā)現(xiàn)模塊內(nèi)部的錯誤。 )關(guān)注運行錯誤:如邏輯錯誤,算法錯誤,內(nèi)存錯誤,異常錯誤。黑盒為輔 接口錯誤9/21/202235為什么要白盒測試9/21/202236白盒測試技術(shù)實現(xiàn)手段:設(shè)計驅(qū)動和樁 為了得到一個完全隔離的單元,把此單元以外的代碼進行隔離和控制。 接口(輸入輸出),全局變量,子調(diào)用實現(xiàn)方法:代碼覆蓋 確保程序運行過所有邏輯路徑,各個角落得到清掃! 9/21/202237為什么單元要做覆蓋率測試?覆蓋率測試是單元測試的核心!是清除軟件代碼BU
10、G的最主要的手段!9/21/202238測試覆蓋率語句覆蓋率 以Statement為單位判定覆蓋率 以分支為單位條件覆蓋率 以邏輯條件為單位條件覆蓋判定覆蓋語句覆蓋9/21/202239白盒用例設(shè)計方法控制流: 基本路徑法,條件測試法數(shù)據(jù)流 循環(huán)測試9/21/202240基本路徑法控制流圖節(jié)點,邊,區(qū)域9/21/202241工具 Logiscope Audit1.根據(jù)代碼生成程序流程圖和控制流圖。2.自動計算環(huán)形復雜度。3.流圖和代碼對應。借助Logiscope Audit和Logiscope TestChecker,可以更加有效的進行單元測試。9/21/202242循環(huán)測試循環(huán)分類:簡單循環(huán)
11、,串接循環(huán),嵌套循環(huán),不規(guī)則循環(huán)。簡單循環(huán)9/21/202243循環(huán)測試嵌套循環(huán)串接循環(huán)9/21/202244循環(huán)測試不規(guī)則循環(huán)9/21/202245循環(huán)的測試用例設(shè)計簡單循環(huán)的測試集(假設(shè)有n次循環(huán)):1)整個跳過循環(huán)2)只有一次通過循環(huán)3)兩次通過循環(huán)4)某個m次通過循環(huán),mn5)n-1,n,n+1次通過循環(huán)9/21/202246循環(huán)的測試用例設(shè)計嵌套循環(huán)的測試集1.從最內(nèi)層循環(huán)開始,把其它循環(huán)設(shè)為最小值。2.從對最內(nèi)層循環(huán)使用簡單循環(huán)測試,使得外層循環(huán)為最小值3.由內(nèi)到外構(gòu)造下一個循環(huán)的測試,但其它外層循環(huán)最小,內(nèi)層循環(huán)為典型值。 4.繼續(xù)直到全部循環(huán)測試完。 9/21/202247循環(huán)
12、的測試用例設(shè)計串接循環(huán)的測試集如果兩個循環(huán)相互獨立,分別采用簡單循環(huán)方式。如果互相不獨立,比如上一個循環(huán)的計數(shù)是下一個循環(huán)計數(shù)的初始值,推薦使用嵌套循環(huán)方式。9/21/202248循環(huán)的測試用例設(shè)計不規(guī)則循環(huán) 盡量把這些循環(huán)重新設(shè)計為結(jié)構(gòu)化的程序設(shè)計。 結(jié)構(gòu)化編程的定義:任何一個控制流圖,如果可以化簡為環(huán)形復雜度為1的圖,它就滿足了結(jié)構(gòu)化編程的要求。 9/21/202249靜態(tài)分析編程規(guī)范檢查 遵循編程規(guī)范,可以大大降低編碼缺陷。標準有:C/C+軟件編程規(guī)范Java軟件編程規(guī)范 Delphi代碼編程規(guī)范 GUI通用軟件界面規(guī)范代碼質(zhì)量分析 分析代碼結(jié)構(gòu),給出復雜度,可維護性,穩(wěn)定性,可讀性等度
13、量,找出缺陷可能性最多的代碼,進行修改和單元測試。9/21/202250靜態(tài)分析工具Logiscope RuleChecker C/C+,Java Audit C/C+,JavaCodeClearCodeWizardPCLINT9/21/202251動態(tài)分析內(nèi)存錯誤:內(nèi)存泄漏,內(nèi)存(數(shù)組)越界讀寫,讀未經(jīng)過初始化的內(nèi)存,內(nèi)存分配錯誤。異常錯誤:沒有處理的異常覆蓋率檢查:尋找沒有運行的代碼, 內(nèi)部邊界點,強制錯誤運行效率分析:分析運行瓶頸,提高性能9/21/202252動態(tài)分析工具1.Rational PurifyPlus(PurifyPlus RealTime) Purify 內(nèi)存和運行錯誤
14、PureCovarage 代碼行覆蓋率 Quanlity 運行效率分析2.Parasoft Insure+3.BoundChecker9/21/202253黑盒測試把測試對象看做一個黑盒子,不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只關(guān)注接口。 待測單元(UUT)9/21/202254黑盒測試技術(shù)實現(xiàn)手段:設(shè)計驅(qū)動和樁 為了得到一個完全隔離的單元,把此單元以外的代碼進行隔離和控制。 接口(輸入輸出),全局變量,調(diào)用實現(xiàn)方法:用數(shù)據(jù)對接口進行測試 確保接口正確,預定的輸入,產(chǎn)生預料中的輸出。 9/21/202255黑盒用例設(shè)計方法按照功能需求等價類劃分邊界值9/21/202256測試用例代碼打樁編寫驅(qū)
15、動工具 C+Test(自動生成驅(qū)動、樁和部分用例數(shù)據(jù)) Rational Test RealTime,VectorCast(自動生成驅(qū)動、樁) JUnit,CppUnit,DUnit,cUnit(提供代碼框架)利用開發(fā)工具的Debug功能 斷點和修改變量,單步,插樁(Instrumentation)9/21/2022574單元測試的內(nèi)容單元測試內(nèi)容包括:1 模塊接口測試;2 模塊局部數(shù)據(jù)結(jié)構(gòu)測試;3 模塊邊界條件測試;4 模塊中所有獨立執(zhí)行通路測試;5 模塊的各條錯誤處理通路測試 9/21/2022584.1模塊接口測試模塊接口測試是單元測試的基礎(chǔ)。對模塊接口的測試保證在測試時進出程序單元的數(shù)
16、據(jù)流是正確的。只有在數(shù)據(jù)能正確流入、流出模塊的前提下,其他測試才有意義。所以模塊接口測試要在其它測試之前進行。 9/21/202259模塊接口測試內(nèi)容測試接口正確與否應該考慮下列因素:1 輸入的實際參數(shù)與形式參數(shù)的個數(shù)是否相同;2 輸入的實際參數(shù)與形式參數(shù)的屬性是否匹配;3 輸入的實際參數(shù)與形式參數(shù)的量綱是否一致;4 調(diào)用其他模塊時所給實際參數(shù)的個數(shù)是否與被調(diào)模塊的形參個數(shù)相同;9/21/202260模塊接口測試內(nèi)容5 調(diào)用其他模塊時所給實際參數(shù)的屬性是否與被調(diào)模塊的形參屬性匹配;6調(diào)用其他模塊時所給實際參數(shù)的量綱是否與被調(diào)模塊的形參量綱一致;7 調(diào)用預定義函數(shù)時所用參數(shù)的個數(shù)、屬性和次序是否
17、正確;8 是否存在與當前入口點無關(guān)的參數(shù)引用;9/21/202261模塊接口測試內(nèi)容9 是否修改了只讀型參數(shù);10 對跨模塊的全局變量的定義是否一致;11是否把某些約束作為參數(shù)傳遞。 9/21/202262模塊接口測試內(nèi)容當一個模塊執(zhí)行外部I/O操作的時候,必須進行附加的接口測試,考慮下列因素:1 文件屬性是否正確;2 OPEN/CLOSE語句是否正確;3 格式說明與輸入輸出語句是否匹配;9/21/202263模塊接口測試內(nèi)容4緩沖區(qū)大小與記錄長度是否匹配;5文件使用前是否已經(jīng)打開;6是否處理了文件結(jié)束條件;7是否處理了輸入/輸出錯誤;8在輸出信息中是否有文字性錯誤。 9/21/2022644
18、.2模塊局部數(shù)據(jù)結(jié)構(gòu)測試 對局部數(shù)據(jù)結(jié)構(gòu)的檢查保證臨時存儲的數(shù)據(jù)在算法執(zhí)行的整個過程中都能維持其完整性。局部數(shù)據(jù)結(jié)構(gòu)局部數(shù)據(jù)全局數(shù)據(jù)?9/21/202265檢查局部數(shù)據(jù)結(jié)構(gòu)檢查局部數(shù)據(jù)結(jié)構(gòu)是為了保證臨時存儲在模塊內(nèi)的數(shù)據(jù)在程序執(zhí)行過程中完整、正確。局部數(shù)據(jù)結(jié)構(gòu)往往是錯誤的根源,應仔細設(shè)計測試用例。9/21/202266檢查局部數(shù)據(jù)結(jié)構(gòu)常見錯誤:1 不正確或者不一致的數(shù)據(jù)類型描述;2變量無初值;3變量初始化或省缺值有錯;4不正確的變量名(拼錯或不正確地截斷); 5出現(xiàn)上溢、下溢和地址錯誤。 9/21/202267全局數(shù)據(jù)除了局部數(shù)據(jù)結(jié)構(gòu)外,單元測試時還應該查清全局數(shù)據(jù)(例如多個模塊共享全局數(shù)據(jù),
19、其它模塊修改全局數(shù)據(jù)對本模塊的影響評估)對模塊的影響。 9/21/2022684.3模塊邊界條件測試邊界條件測試是單元測試中最重要的一項任務。對邊界條件的測試保證模塊在極限或嚴格的情形下仍然能夠正確執(zhí)行。眾所周知,軟件經(jīng)常在邊界上失效,采用邊界值分析技術(shù),針對邊界值及其左、右設(shè)計測試用例,很有可能發(fā)現(xiàn)新的錯誤。 9/21/2022694.4模塊中獨立執(zhí)行路徑測試 單元測試中,應對模塊控制結(jié)構(gòu)中的每一條獨立執(zhí)行路徑(基本路徑)進行遍歷測試,以保證模塊中每條語句至少執(zhí)行一次。對執(zhí)行路徑的測試(即代碼覆蓋測試)是單元測試中最主要的任務。此時基本路徑測試和循環(huán)測試是最常用且最有效的測試技術(shù)。 9/21
20、/202270模塊中獨立執(zhí)行路徑的測試 測試用例應能發(fā)現(xiàn)由于錯誤計算、不正確的比較、或者不正常的控制流而產(chǎn)生的錯誤。還有其他常見的錯誤,如下:9/21/202271計算中常見的錯誤計算中常見的錯誤包括: 誤解或用錯了算術(shù)優(yōu)先級;混合類型的運算;變量初始化不正確;精度不夠精確;表達式的不正確符號表示。9/21/202272比較判斷常見錯誤比較判斷和控制流常常緊密地耦合在一起(比如,控制流的轉(zhuǎn)移是在比較之后發(fā)生的),測試用例應當能夠發(fā)現(xiàn)下列錯誤:不同數(shù)據(jù)類型之間進行比較;不正確地邏輯操作或優(yōu)先級;應該相等的地方由于精度的錯誤而不能相等。(因計算機表示的局限性)9/21/202273比較判斷常見錯誤
21、不正確的比較或變量出錯;不正常的或者不存在的循環(huán)終止條件;當遇到分支循環(huán)的時候不能退出;不適當?shù)匦薷难h(huán)變量。 9/21/2022744.5模塊的錯誤處理路徑測試 好的設(shè)計應能預見各種出錯條件,并預設(shè)各種出錯處理路徑。當錯誤真的發(fā)生的時候,錯誤處理被建立,以重定向或者干凈地終止處理。在錯誤處理部分應當考慮的潛在錯誤有下列情況:輸出的出錯描述信息難以理解;所報的錯誤與實際遇到的錯誤不一致;9/21/202275模塊的錯誤處理路徑測試 錯誤條件在錯誤處理之前就引起了系統(tǒng)異常;異常處理不當;錯誤描述中未能提供足夠的信息來幫助確定錯誤發(fā)生的位置。常見壞現(xiàn)象:把錯誤處理路徑加到了軟件中,但從不進行出錯路
22、徑的測試。 9/21/2022765單元測試過程9/21/202277按造哪些步驟做單元測試推薦的步驟:1.靜態(tài)檢查:用工具Logiscope或者人工檢查單2.動態(tài)檢查:用工具PurifyPlus或者人工調(diào)試3.測試用例執(zhí)行(工具或人工)設(shè)計測試用例及數(shù)據(jù);(提前)編寫測試用例代碼、腳本、驅(qū)動模塊和樁模塊;(提前)運行測試用例,記錄結(jié)果。(在步驟1,2之后進行) 單元測試的輸入軟件詳細設(shè)計(可以是代碼)待測單元列表和代碼可重用的已有測試用例9/21/202279單元測試的輸出1.編程規(guī)范檢查報告。(工具生成或人工編制)2.運行異常檢查報告。(工具生成或人工編制)3.測試用例執(zhí)行報告。(工具生成
23、或人工編制) 測試用例代碼 測試用例數(shù)據(jù)和說明 運行結(jié)果(覆蓋率統(tǒng)計)合格準則:同行可以讀懂,可以用它們來重新驗證或做回歸測試,鼓勵使用工具。 9/21/2022805.1單元測試用例設(shè)計單元測試常被看作編碼步驟的附屬品。在源代碼被開發(fā)、編譯調(diào)試、審查后,單元測試用例設(shè)計就開始了,也有可能提前。對設(shè)計信息的復審可能能夠為建立前面討論的每一類錯誤的測試用例提供指導。測試用例的設(shè)計應與設(shè)計信息的復審工作相結(jié)合,根據(jù)設(shè)計信息選取測試數(shù)據(jù),將增大發(fā)現(xiàn)上述各類錯誤的可能性。在確定測試用例的同時,應給出期望結(jié)果。 9/21/202281單元測試用例設(shè)計正常數(shù)據(jù):在測試中所用的正常數(shù)據(jù)的量是最大的,而且也是
24、最關(guān)鍵的。少量的測試數(shù)據(jù)不能完全覆蓋需求,但我們要從中提取出一些具有高度代表性的數(shù)據(jù)作為測試數(shù)據(jù),以減少測試時間。 邊緣數(shù)據(jù):邊緣測試是界于正常數(shù)據(jù)和錯誤數(shù)據(jù)之間的一種數(shù)據(jù)。它可以針對某一種編程語言、編程環(huán)境或特定的數(shù)據(jù)庫而專門設(shè)定。9/21/202282單元測試用例設(shè)計例如若使用SQL Server數(shù)據(jù)庫,則可把SQL Server關(guān)鍵字(如:;AS;Join等)設(shè)為邊緣數(shù)據(jù)。其它邊緣數(shù)據(jù)還有:HTML的HTML;等關(guān)鍵字以及空格、負數(shù)、超長字符等。邊緣數(shù)據(jù)要靠測試人員的豐富經(jīng)驗來制定。 錯誤數(shù)據(jù):顯而易見,錯誤數(shù)據(jù)就是編寫與程序輸入規(guī)范不符的數(shù)據(jù)從而檢測輸入篩選、錯誤處理等程序的分支。 9
25、/21/2022835.2代碼靜態(tài)檢查方法:審查走查通過代碼靜態(tài)檢查找到的錯誤可以比測試用例測試所能找到的錯誤更加深入;并且發(fā)現(xiàn)錯誤的時間也比測試用例要早。代碼檢查要以代碼標準(根各公司具體情況自行制定)為依據(jù)。(編程規(guī)范) 9/21/202284代碼靜態(tài)檢查內(nèi)容 代碼風格和規(guī)則審核 程序設(shè)計和結(jié)構(gòu)的審核 業(yè)務邏輯的審核 9/21/202285代碼風格和規(guī)則檢查代碼風格和規(guī)則的審核是在每個程序員完成一個模塊或類的 時候要進行編碼規(guī)范的檢查。要召開審核會議讓所有的項目組人員都參加。在會前項目經(jīng)理要做一個檢查表,以表的內(nèi)容為檢查依據(jù),檢查表的內(nèi)容主要是檢查的要點。在審核會上項目組的每一個人員都能看
26、到自己和其他人員的編碼問題,從而起到預防的作用。這些問題都要被解決,并且解決的結(jié)果要在審議會上被確認。自動檢查工具 9/21/202286程序設(shè)計和結(jié)構(gòu)的審核 進行程序設(shè)計和結(jié)構(gòu)的審議是因為開發(fā)工具的不同和項目時間的限制而造成設(shè)計不詳細。比較深入的設(shè)計通常是在編碼階段完成的,但由于程序人員和設(shè)計人員的經(jīng)驗是不同的,所以會出現(xiàn)很大的問題。我們引入了程序設(shè)計和結(jié)構(gòu)審核來保證質(zhì)量。審核人員要有先進的技術(shù)開發(fā)經(jīng)驗。9/21/202287程序設(shè)計和結(jié)構(gòu)的審核 在審核之前也要一個審核列表,列出主要幾項,如:程序的概要、詳細設(shè)計。但僅局限于列表是不夠的,審議人員 還要審議程序的精巧度和具有創(chuàng)造力的方面,這只
27、能靠經(jīng)驗而不能只靠列表中的內(nèi)容來審議。對于不同的程序員所檢測代碼的寬度和深度也是不同的。項目經(jīng)理可以根據(jù)程序員經(jīng)驗的不同制定被審議人員的寬度和深度。例如:年輕的程序員要審議所有代碼。但有經(jīng)驗的就可適當減少。 9/21/202288業(yè)務邏輯性審議業(yè)務邏輯性審議必須要在代碼完成后審議。業(yè)務邏輯審議實際上是審議單元模塊的功能。這些功能是以系統(tǒng)說明為依據(jù)的。審議人員要有開發(fā)的經(jīng)驗并且對系統(tǒng)也要熟悉。審議人員通過執(zhí)行程序從而了解底層代碼的狀態(tài)。這階段的審議實際也包含了前兩種審議,因為審議者也可以通過最后的結(jié)果檢測單元模塊設(shè)計和結(jié)構(gòu)的準確性。 9/21/202289單元測試過程代碼審查以上三種審議都要耗費
28、一定的時間和資源,但是它卻能更早地發(fā)現(xiàn)和解決不易顯現(xiàn)的錯誤。 代碼審查通過后,我們終于可以使用測試用例來進行代碼測試了。 9/21/2022905.3代碼動態(tài)檢查它主要包括: 編譯調(diào)試內(nèi)存泄漏檢查(工具)9/21/2022915.4測試用例執(zhí)行它主要包括: 功能測試 代碼覆蓋測試性能和健壯性測試9/21/202292功能測試我們可使用已編好的用例并以正常數(shù)據(jù)測試用例進行測試,若不能正常運行則要用調(diào)試工具調(diào)試。在這階段,我們要用大量正常數(shù)據(jù)去測試。測試后,該程序應可在絕大多數(shù)的正常數(shù)據(jù)中運行。 9/21/202293代碼覆蓋測試目標: 測試到每一個最小語句的代碼 測試到所有的輸出結(jié)果 我們應該通過一步步的調(diào)試去運行每個程序的所有語句和分支。如果我們想要百分之百地覆蓋就應適當運用邊緣數(shù)據(jù)和錯誤數(shù)據(jù)。測試在這個階段的質(zhì)量是難以掌握的。它基于程序員的責任心和經(jīng)驗。當這階段完成后,每個程序員所測的深度也是不同的。 。 9/21/202294性能和健壯性測試性能(代碼行性能分析工具):找到瓶頸,改進。穩(wěn)定性(健壯性):內(nèi)存泄漏、資源吊死9/21/202295單元測試環(huán)境驅(qū)動模塊樁模塊樁模塊樁模塊被測單元9/21/202296單元測試驅(qū)動模塊和樁模塊驅(qū)動模塊: 用以模擬被測單元的上層模塊,測試執(zhí)行時由驅(qū)動模塊調(diào)用被測單元使其運行。樁模塊: 模擬被測單元
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會計職業(yè)生涯規(guī)劃
- Unit3 Listening 說課稿2024-2025學年外研版七年級英語上冊
- 山東省聊城市陽谷縣四校2024-2025學年七年級上學期1月期末水平調(diào)研道德與法治試題(含答案)
- 二零二五年度城市停車場施工廉政管理服務合同3篇
- 貴州商學院《軟裝設(shè)計》2023-2024學年第一學期期末試卷
- 信息技術(shù)《使用掃描儀》說課稿
- 2025版家庭親子教育圖書訂閱服務合同范本3篇
- 二零二五年度家族企業(yè)股東股權(quán)繼承轉(zhuǎn)讓協(xié)議3篇
- 2024年江西省九江市潯陽區(qū)白水湖街道招聘社區(qū)工作者考前自測高頻考點模擬試題(共500題)含答案
- 貴州理工學院《藝術(shù)欣賞》2023-2024學年第一學期期末試卷
- 食堂項目經(jīng)理培訓
- 安全經(jīng)理述職報告
- 福建省泉州市2023-2024學年高一上學期期末質(zhì)檢英語試題 附答案
- 建筑項目經(jīng)理招聘面試題與參考回答(某大型集團公司)2024年
- 安保服務評分標準
- (高清版)DB34∕T 1337-2020 棉田全程安全除草技術(shù)規(guī)程
- 部編版小學語文二年級上冊單元測試卷含答案(全冊)
- 護理部年終總結(jié)
- 部編版三年級上冊語文語文期末質(zhì)量監(jiān)測(含答題卡)
- KISSSOFT操作與齒輪設(shè)計培訓教程
- 2024年第二季度粵港澳大灣區(qū)經(jīng)濟分析報告-PHBS
評論
0/150
提交評論