軟件單元測試(靜態(tài)、動態(tài)測試)設(shè)計_第1頁
軟件單元測試(靜態(tài)、動態(tài)測試)設(shè)計_第2頁
軟件單元測試(靜態(tài)、動態(tài)測試)設(shè)計_第3頁
軟件單元測試(靜態(tài)、動態(tài)測試)設(shè)計_第4頁
軟件單元測試(靜態(tài)、動態(tài)測試)設(shè)計_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件單元測試(靜態(tài)、動態(tài)測試)設(shè)計1測試范圍本文檔針對XXXXX軟件單元測試。單元指單個函數(shù)或幾個函數(shù)構(gòu)成的功能模塊。2測試目的單元測試是針對軟件設(shè)計的最小單位——程序模塊(函數(shù)或功能模塊),進行正確性檢驗的測試工作。單元測試的依據(jù)是詳細設(shè)計。在單元測試活動中,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。其目的在于發(fā)現(xiàn)每個程序模塊內(nèi)部可能存在的差錯。單元測試是軟件測試的基礎(chǔ),如果不進行單元測試,那么缺陷會越積越多并且分布得更廣、隱藏得更深,反而導(dǎo)致測試與改錯的代價大大增加。最糟糕的是無法估計測試與改錯的工作量,使進度失去控制。單元測試工作主要分為兩個步驟靜態(tài)測試和動態(tài)測試結(jié)構(gòu)分析、數(shù)據(jù)流分析、控制流分析等。它可工具自動進行。靜態(tài)測試通過特性的分析,找出欠缺和可疑之處,例如不匹配的參數(shù)、不適當(dāng)?shù)难h(huán)嵌套和分支嵌套、不允許的遞歸、未使用過的變量、空指針的引用和可疑的計算等。靜態(tài)測試結(jié)果可用于進一步的查錯,并動為態(tài)測試時的測試用例選取提供指導(dǎo)。。靜態(tài)測試:靜態(tài)測試包括代碼檢查、靜態(tài)以由人工進行,充分發(fā)揮人的邏輯思維優(yōu)勢,也可以借助軟件程序靜態(tài)動態(tài)測試:通過設(shè)計測試用例,執(zhí)行待測程序來跟蹤比較實際結(jié)果與預(yù)期結(jié)果來發(fā)現(xiàn)錯誤。經(jīng)驗表明,使用靜態(tài)測試法能夠有效的發(fā)現(xiàn)30%到70%的邏輯設(shè)計和編碼錯誤。但是代碼中仍會有大量的隱性錯誤無法通過視覺檢查發(fā)現(xiàn),必須通過動態(tài)執(zhí)行才能夠捕捉到。所以,動態(tài)測試也成了單元測試的重點與難點。3測試環(huán)境靜態(tài)測試:XP主機+TestBed靜態(tài)測試工具:XP主機+TBrun單元測試工具+TBConfig單元測試配置工具(支持目標(biāo)機平臺xxxxxxxxxxx開發(fā)環(huán)境)+xxxxxxxxxxx仿真環(huán)境動態(tài)測試

4測試方案4.1靜態(tài)測試4.1.1代碼規(guī)則檢查遵循標(biāo)準(zhǔn)MISRA-C:2004,利用TestBed測試工具完成。4.1.2邊界值檢查確定邊界情況(剛好等于、稍小于和稍大于和剛剛大于等價類邊界值),在動態(tài)測試中將利用分析結(jié)果針對我們的系統(tǒng)在測試過程中輸入一些合法數(shù)據(jù)/非法數(shù)據(jù),主要在邊界值附近選取。其中涉及到等價類劃分,它是指將所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若干個等價區(qū)間,每個區(qū)間選取有代表性的一個或一組數(shù)進行測試。一般按照輸入?yún)?shù)邊界及函數(shù)內(nèi)部分支來劃分等價區(qū)。4.1.3數(shù)據(jù)流分析檢查數(shù)據(jù)流異常情況,利用TestBed測試工具完成。TestBed的StaticDataFlowAnalysis功能能對以下數(shù)據(jù)流異常情況(基于工程)進行報告:–UR聲明后沒有定義就被用引–DU定義后沒有被用引被用引–DD兩次定義之間沒有4.1.4控制流分析以有向圖的方它由許多節(jié)點組成,一個節(jié)點代表一條語句或數(shù)條語句(單入單出,無分支),接結(jié)點的叫邊,邊表示節(jié)點間的控制流向。)利用TestBed測試工具圖形化顯示函數(shù)內(nèi)部控制流圖,確認(rèn)其與函數(shù)設(shè)計流程一致。否有不可達代碼,利用TestBed測試工具LCSAJ分析完成式表示函數(shù)內(nèi)部控制流圖(控制流圖顯示一個函數(shù)的邏輯結(jié)構(gòu),連StaticFlowgraph可以檢查是

4.1.5檢查表檢查項備注檢查函數(shù)的邏輯正確性;所編寫的代碼算法、數(shù)據(jù)結(jié)構(gòu)定義(如:隊列、堆棧等)是否實現(xiàn)了所要求的功能函數(shù)接口的正確性檢查;形式參數(shù)個數(shù)、數(shù)據(jù)利用TestBed測試工具代碼規(guī)則檢查據(jù)流分析規(guī)則列表)完成類型、順序是否正確;返回值類型及返回值是(其中包含數(shù)否正確。輸入?yún)?shù)有沒有作正確性檢查;如果沒有作正確性檢查,確定該參數(shù)是否的確無需做參數(shù)正確性檢查,否則請?zhí)砑由蠀?shù)的正確性檢查。程序風(fēng)格的一致性、規(guī)范性是否符合《軟件編碼規(guī)范》函數(shù)內(nèi)部注釋是否完整,是否清晰簡潔;是否正確的反映了代碼的功能;是否做了多余的注釋。函數(shù)靜態(tài)調(diào)用關(guān)系圖是否和設(shè)計一致觀察TestBed測試工具staticCallgraph實現(xiàn)?4.1.6代碼走讀根據(jù)檢查表各項,以及以上各測試方法的要求通過測試工具TestBed并輔以人工方式對進行走讀,得到各項分析結(jié)果。另外對一些關(guān)鍵模塊,例如xxxxxx通信,以及一些和硬件緊密結(jié)合的軟件模塊,組織開發(fā)組、測試組及專家組對代碼逐行走讀討論。代碼進行注:以上各項利用TestBed進行分析時均需輔以人工方式協(xié)同完成。4.1.7猜錯分析模塊代碼對出錯程序重做安排,保證其邏輯的正確性,這種出錯處理應(yīng)當(dāng)是模塊功能的人員應(yīng)檢查模塊代碼是否對錯誤邏輯輸入進行檢驗,對錯誤條件的處理是否正確等以分析模塊的錯誤處理功能是否包含缺陷。應(yīng)能預(yù)見出錯的條件,并設(shè)置適當(dāng)?shù)某鲥e處理,以便在一旦程序出錯時,能一部分。測試4.2動態(tài)測試4.2.1測試方案單元測試是一個在隔離狀態(tài)下測試單個獨立軟件單元的過程,如下圖所示:圖單元測試應(yīng)為測試單元開發(fā)一個驅(qū)動模塊(driver)和(或)若干個樁模塊(在大多數(shù)場合稱為“主程序”,結(jié)果。樁模塊其實是一個假函數(shù),當(dāng)被測試的函數(shù)要stub)。驅(qū)動模塊相當(dāng)于所測單元的主程序。它接收測試數(shù)據(jù),把這些數(shù)據(jù)傳送給所測單元,最后再輸出實際測試調(diào)用另外一個函數(shù),為了避免因調(diào)用的函數(shù)出錯引起的測試函數(shù)出錯,要建立一個被調(diào)用函數(shù)的替代函數(shù),這個替代函數(shù)就是樁函數(shù)驅(qū)動函數(shù)和樁函數(shù)是測試使用的軟件,而不是軟件產(chǎn)品的組成部分,但它需要一定的開發(fā)費用。所測單元與它相關(guān)的驅(qū)動模塊及樁模塊共同構(gòu)成了一個“測試環(huán)境”,圖單元測試的測試環(huán)境使用TBrun單元測試工具可以自動生成測試驅(qū)動、樁模塊,這樣測試人員可將重點放在設(shè)計測試用例上。TBrun分析出被測試的單元的所創(chuàng)建管理樁,也可以讓用戶手工創(chuàng)建樁;TBrun自動創(chuàng)建的管理樁搭建好了一個面包含了大量的測試和追蹤信息,即用戶能控制這個樁函數(shù)有函數(shù)調(diào)用,TBrun可以自動的十分完善,靈活的測試框架,里如果函數(shù)原型或函數(shù)體存在,則參數(shù)列表自動被創(chuàng)建,返回類型也自動被創(chuàng)建。TBrun提供圖形界面方式輸入返回值,變量和調(diào)用次數(shù)信息,也允許在樁函數(shù)中插入用戶代碼。4.2.2測試步驟動態(tài)測試通常需要做如下三項工作:1.設(shè)計測試用例;2.編寫測試驅(qū)動與樁模塊;3.執(zhí)行測試,記錄并分析結(jié)果。測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。測試輸入數(shù)據(jù)可根據(jù)靜態(tài)分析的結(jié)果來選擇。編寫測試驅(qū)動與樁模塊、執(zhí)行測試、記錄并分析測試結(jié)果可由TBrun自動執(zhí)行結(jié)合人工操作來共同完成。4.2.3測試方法邊界值測試根據(jù)靜態(tài)分析中的邊界值分析結(jié)果,針對各函數(shù)輸入?yún)?shù)允許的取值范圍,取其邊界值以及邊界以外的值編寫測試用例做測試,以驗證在參數(shù)取得最大值和最值小的情況下,以及如超出取值范圍時,輸出是否正確。等價類測試將輸入數(shù)據(jù)進行等價區(qū)間劃分時可利用TBrun的范圍測試(range),給定范圍的初始值、范圍的、步長(即測試用例之間的間隔),TBrun會生成每個單獨的測試用例。還應(yīng)該考慮包括輸入?yún)?shù)的條件邊界(即函數(shù)最大值在設(shè)計測試用例內(nèi)部的if,while,for,switch子句等)。錯誤推測法列舉出程序中所有可能的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例

4.2.4測試覆蓋率要求利用單元測試進行覆蓋率分析。通常覆蓋率需求可以包括語句覆蓋,分支覆蓋,條件覆蓋等。語句覆蓋:指選擇足夠的測試用例,使得運行這些測試用例時,被測程序的每一個語句至少執(zhí)行一次分支覆蓋或“假值”,或者說使得程序中的每一個取“真”分支和取“假”分支至少經(jīng)歷一次:設(shè)計足夠的測試用例,使得程序中的每個判定至少都獲得一次“真值”條件覆蓋:構(gòu)造一組測試用例,使得每一判定語句中每個邏輯條

溫馨提示

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

評論

0/150

提交評論