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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論