Testbed安裝說明及單元測試指導(dǎo)書_第1頁
Testbed安裝說明及單元測試指導(dǎo)書_第2頁
Testbed安裝說明及單元測試指導(dǎo)書_第3頁
Testbed安裝說明及單元測試指導(dǎo)書_第4頁
Testbed安裝說明及單元測試指導(dǎo)書_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上Testbed工具單元測試指導(dǎo)書1 目的本文檔用于指導(dǎo)測試人員在項目過程中使用Testbed工具進(jìn)行單元測試,主要包括單元測試介紹、工具的安裝、單元測試相關(guān)操作,以及在工程項目中使用Testbed工具進(jìn)行單元測試常見問題處理和注意事項。2 說明該指導(dǎo)書針對的Testbed工具版本為8.2 的Windows 7版本,編譯器采用GCC。3 單元測試介紹3.1 測試對象軟件單元。GJB2786的定義:計算機(jī)軟件部件設(shè)計中確定的能單獨(dú)測試的部分GJB2786A的定義:計算機(jī)軟件配置項設(shè)計中的一個元素;例如,CSCI的一個主要構(gòu)成部分、這種構(gòu)成部分的一個部件、一個類、對象、模塊

2、、函數(shù)、子程序或者數(shù)據(jù)庫。軟件單元可以出現(xiàn)在層次結(jié)構(gòu)的不同層上,并可以由其他軟件單元組成。設(shè)計中的軟件單元與實(shí)現(xiàn)他們的代碼和數(shù)據(jù)實(shí)體(子程序、過程、數(shù)據(jù)庫、數(shù)據(jù)文件等)之間,或與包含這些實(shí)體的計算機(jī)文件之間并不一定有一一對應(yīng)的關(guān)系。3.2 測試目的檢查每個單元能否正確地實(shí)現(xiàn)設(shè)計說明中的功能、性能、接口和其他設(shè)計約束等要求,發(fā)現(xiàn)單元內(nèi)可能存在的各種錯誤。3.3 測試依據(jù)軟件設(shè)計文檔。3.4 為什么進(jìn)行單元測試1. 確保軟件單元的正確性2. 確保單元之間交互的正確性3. 明確函數(shù)的目的4. 便于定位錯誤5. 利于代碼的重構(gòu)6. 可以實(shí)現(xiàn)自動化回歸測試3.5 單元測試工具ü 流行的測試軟件

3、: Tburn、C+Test、Cantata+、VectorCAST、 Visual Unit、Tessyü 優(yōu)點(diǎn): 一般都擁有自動化用例生成功能,具有方便的可視化功能,可以統(tǒng)計各類型的代碼覆蓋率信息。ü 缺點(diǎn): 都是商業(yè)軟件,測試環(huán)境和開發(fā)環(huán)境完全脫離。3.6 覆蓋率類型 語句覆蓋:又稱行覆蓋(Line Coverage),是最常用也是最常見的一種覆蓋方式,就是度量被測代碼中每個可執(zhí)行語句是否被執(zhí)行到了。這里說的是“可執(zhí)行語句”,因此就不會包括像C+的頭文件聲明,代碼注釋,空行等非可執(zhí)行語句。 判定覆蓋(Decision Coverage):又稱分支覆蓋(Branch C

4、overage)。它度量程序中每一個判定的每一個分支是否都被測試到了。 條件覆蓋(Condition Coverage):它度量判定中的每個子表達(dá)式結(jié)果true和false是否被測試到了。 MC/DC覆蓋:MC/DC(Modified Condition Decision Coverage)是修訂的條件/判定覆蓋,判定中每個條件的所有可能結(jié)果至少出現(xiàn)一次,每個判定本身的所有可能結(jié)果也至少出現(xiàn)一次,每個判定中的每個條件都曾獨(dú)立的影響判定的結(jié)果至少一次, (獨(dú)立影響意思是在其他的條件不變的情況下,改變一個條件)。 路徑覆蓋:又稱斷言覆蓋(Predicate Coverage)。它度量了是否CSU的

5、每一個路徑分支都被執(zhí)行了。有多個分支嵌套時,需要對多個分支進(jìn)行排列組合。3.7 單元測試需要注意的地方1. 若對軟件單元進(jìn)行必要的靜態(tài)測試,應(yīng)先于動態(tài)測試。2. 理論上講,單元測試除了被測單元外都應(yīng)該打樁。3. 應(yīng)逐項測試軟件設(shè)計文檔規(guī)定的軟件單元的功能、性能等特性; 單元測試的直接依據(jù)是軟件設(shè)計文檔 從功能的角度出發(fā),而不是從程序的角度出發(fā)4. 軟件單元的每個特性應(yīng)至少被一個正常的測試用例和一個被認(rèn)可的異常測試用例覆蓋 正常與異常是相對于功能來說的 因此在軟件的設(shè)計文檔中,應(yīng)明確軟件功能,以及對應(yīng)的有效輸入 進(jìn)行單元測試時,用例需要同時包含有效范圍之內(nèi)的和有效范圍之外的輸入 空指針、異常值5

6、. 測試用例的輸入應(yīng)至少包括有效等價類值、無效等價類值和邊界等價類值 若軟件的設(shè)計文檔有明確的功能輸入范圍描述則可以進(jìn)行等價類劃分 若沒有明確輸入范圍,則可以根據(jù)被測單元的參數(shù)類型、用到的全局變量類型,取相應(yīng)的極 大值與極小值6. 測試用例應(yīng)達(dá)到要求的測試覆蓋率,對未達(dá)到所要求覆蓋率的情況需要說明原因 語句覆蓋 條件覆蓋 判定覆蓋 MC/DC覆蓋 路徑覆蓋7. 應(yīng)測試軟件單元輸出數(shù)據(jù)及其格式 確認(rèn)軟件單元的返回值數(shù)據(jù)類型與內(nèi)容是否與設(shè)計相一致4 軟件安裝4.1 Testbed工具安裝解壓Testbed 8.2(Win 7).zip,進(jìn)入安裝包目錄,雙擊setup.exe 進(jìn)行軟件安裝,安裝流程

7、如下所示。出現(xiàn)如下界面,選擇“是”,單擊“Next”。出現(xiàn)如下界面,點(diǎn)擊“Standard Workstation”,選擇“Typical”,點(diǎn)擊“Next”,默認(rèn)安裝在“C:LDRA_Toolsuite”目錄,可根據(jù)實(shí)際情況更改目錄。,出現(xiàn)如下界面,可選擇工作空間目錄,默認(rèn)為“C:LDRA_Workarea”,此處建議修改為具有較大空間目錄,后續(xù)創(chuàng)建用例默認(rèn)都在該目錄,點(diǎn)擊“Next”。出現(xiàn)如下界面,采用默認(rèn)設(shè)置,點(diǎn)擊“Next”。出現(xiàn)如下界面,選擇最后一個選項“Install Minimalist GNU for Win32 2.0.0.3”,點(diǎn)擊“Next”。出現(xiàn)如下界面,選擇“是”,點(diǎn)

8、擊“Next”。出現(xiàn)如下界面,可根據(jù)實(shí)際情況安裝所需要的額外工具,默認(rèn)不安裝,點(diǎn)擊“Next”。如果安裝過程中 出現(xiàn)錯誤,忽略。出現(xiàn)如下界面,點(diǎn)擊“Next”。等待安裝完成,出現(xiàn)如下界面,選擇“否”。出現(xiàn)如下界面,選擇“否”。出現(xiàn)如下界面,安裝完成。安裝完成后,桌面會出現(xiàn)如下四個圖標(biāo)。4.2 Testbed工具破解安裝進(jìn)入Testbed 8.2(Win 7)Testbed8.2破解目錄,拷貝Contestbed.exe、Testbed.exe、Toolsuite.ctl三個文件到Testbed的安裝目錄“C:LDRA_Toolsuite”下,直接覆蓋原文件。4.3 Testbed工具漢化安裝進(jìn)

9、入Testbed 8.2(Win 7)Testbed8.2漢化目錄,拷貝CPEN.dat文件到目錄“C:LDRA_ToolsuiteC”下,直接覆蓋原文件;拷貝CPPPEN.dat文件到目錄“C:LDRA_ToolsuiteCPP”下,直接覆蓋原文件。5 單元測試操作5.1 被測對象選擇在Testbed中C碼中的“單元”就是一個函數(shù),每次對一個函數(shù)的代碼進(jìn)行測試,測試時每次需打開一個源文件。雙擊桌面“LDRA Testbed - C_C+ Static and Dynamic Analysis”圖標(biāo),打開程序LDRA Testbed,點(diǎn)擊Testbed的菜單File-> Select F

10、ile, 通過文件瀏覽窗口,選擇要測試單元所在的源文件。本文以Testbed示例代碼為例來逐步介紹單元測試過程。 如C:LDRA_WorkareaExamplesC_tbrun_examplesGgrocers.c。點(diǎn)擊“打開”之后,可以在工具快捷按鈕欄的下方看見目前選擇的文件。5.2 編譯器的確認(rèn)與切換在使用TBrun 進(jìn)行單元測試前需要先確認(rèn)當(dāng)前使用的編譯器是否是正確的,如果不是正確的編譯器可以切換為正確的編譯器,其操作如下:1. 確認(rèn)編譯器是否為目標(biāo)編譯器在Testbed 中右上角的“Options”窗口中要確認(rèn)“Current Compiler”和“Default Compiler”所

11、顯示的內(nèi)容,需要注意兩點(diǎn),“Current”和“Default”是否是目標(biāo)編譯器“Current”和“Default”是否是一樣的,應(yīng)該相同才可以。2. 切換編譯器如果編譯器不是用戶想要的目標(biāo)編譯器需要切換,切換方法如下:點(diǎn)擊Testbed菜單Configure->Switch Compiler ,在彈出窗口的編譯器列表中選擇目標(biāo)編譯器,然后點(diǎn)擊Select 按鈕即可。如果Other Compilers列表中沒有找到需要的編譯器,可以通過“Add Compiler”添加所需要的編譯器。點(diǎn)擊“Add Compiler”,彈出的窗口中點(diǎn)擊“是”,進(jìn)入編譯工具安裝向?qū)В缦聢D所示。點(diǎn)擊“Nex

12、t”,彈出的向?qū)е羞x擇需要安裝的編譯器,本文以安裝“Wind River Tornado”編譯器為例,如下圖所示。點(diǎn)擊“Next”,編譯器安裝成功,如下圖所示。點(diǎn)擊Testbed菜單Configure->Switch Compiler,在彈出的窗口中,當(dāng)前默認(rèn)編譯器為安裝的新的編譯器,如下圖所示。如果“Current Compiler”和“Default Compiler”不一致,需要設(shè)置為一致,如下圖所示。設(shè)置方式為點(diǎn)擊Testbed 菜單Configure->Switch Compiler ,在彈出窗口中點(diǎn)擊ResetCurrent File按鈕來設(shè)置。5.3 打開單元測試模塊

13、Tbrun由Testbed 進(jìn)入Tbrun 有三種模式,每種模式對應(yīng)不同的測試類型,三種模式分別為:“Integration Unit/Module Test”(集成測試,所有的函數(shù)都集成起來)、“Isolation Unit/Module Test”(集成測試,適合增量測試,只有選定的函數(shù)集成,未選中的將被打樁)和“Unit Test Only”。C代碼的單元測試使用“Unit Test Only”模式,CPP的單元測試使用另外兩種模式皆可。點(diǎn)擊Testbed 菜單TBrun-> Unit Test Only,即可進(jìn)入Tbrun 模塊。5.4 創(chuàng)建測試序列(Sequence)在TBru

14、n 中是使用測試序列(sequence)來容納測試用例和測試數(shù)據(jù)的,進(jìn)入Tbrun 后第一步需要做的就是創(chuàng)建測試序列。建議每一個函數(shù)對應(yīng)一個測試序列,便于用例管理。在TBrun 的菜單Sequence-> New 點(diǎn)擊,彈出測試序列創(chuàng)建窗口,在“Sequence name”下面需要用戶寫入Sequence 的名字(最好與函數(shù)名稱對應(yīng));窗體下面的選項卡設(shè)置如下,在“Code Coverage”選項卡中把選擇框“Code Coverage”選上,此項可自動計算覆蓋率信息, 在“Test Enviroment”選項卡中把選擇框“Create Dicitoary”、“Create User G

15、lobals”、“Create Stubs”,注意“Test build”選擇框不要選,其他保持默認(rèn)設(shè)置即可;然后點(diǎn)擊“Continue”按鈕即可。5.5 創(chuàng)建測試用例在Tbrun窗體的右上角,點(diǎn)擊文件名能夠展開顯示文件中所包含的函數(shù),把鼠標(biāo)放到某個函數(shù)名上,右鍵彈出菜單點(diǎn)擊“Create New Test Case”,如下圖所示。彈出測試用例創(chuàng)建向?qū)Т翱?,如下圖所示。在此窗口中會顯示函數(shù)的基本信息,可不用關(guān)注,直接點(diǎn)擊按鈕“Continue”向下進(jìn)行,這樣一個用例創(chuàng)建完成, 可在左下角窗口中顯示已經(jīng)創(chuàng)建的用例, 以數(shù)字編號用例;在右下角窗口中會顯示此函數(shù)的輸入輸出參數(shù)。5.6 設(shè)定測試用例的

16、IO值測試用例的輸入輸出參數(shù)值的設(shè)定是測試的核心, 在這一步?jīng)Q定了有什么樣的輸入和用例運(yùn)行之后應(yīng)該有什么樣的輸出(預(yù)期輸出),從而實(shí)現(xiàn)了函數(shù)功能的驗證。對于函數(shù)的輸入輸出不只有函數(shù)的參數(shù),還包含函數(shù)內(nèi)部使用的全局變量。在右下角窗口中工具會顯示出函數(shù)的參數(shù)和內(nèi)部使用的全局變量, 并會顯示每個參數(shù)是輸入還是輸出,用戶給每個參數(shù)賦值即可,注意輸入以“I”標(biāo)識的,輸出是以“O”標(biāo)識的,此處的輸出是指預(yù)期的輸出值。對于標(biāo)識為“I”的變量一定要有一個確定的值,否則用例無法執(zhí)行。5.7 設(shè)定測試用例中樁函數(shù)樁使用一個函數(shù)原型相同的空函數(shù)來代替原函數(shù)。如果被測函數(shù)中調(diào)用了其他函數(shù), 則被調(diào)用函數(shù)會被打樁, 如

17、果被調(diào)用函數(shù)的返回值影響了被測函數(shù)的分支流程, 或被調(diào)用函數(shù)的動作影響了被測函數(shù)的分支流程,則需要對樁進(jìn)行設(shè)置,一般設(shè)置樁的返回值即可滿足。在Tbrun 的右下角窗口中,雙擊“Double-click to access”圖標(biāo)即可打開樁的屬性設(shè)置其返回值等。在樁函數(shù)右鍵,彈出菜單,選擇“Set Return Value On Exit”,彈出返回值設(shè)定窗口。在圖中的“Value”設(shè)定返回值,點(diǎn)擊“OK”。5.8 執(zhí)行測試用例測試用例的IO 設(shè)置和樁的設(shè)定之后,此用例就構(gòu)造完成了,接下來要做的就是執(zhí)行用例,有兩種運(yùn)行方式,操作方法如下:a. 一鍵式運(yùn)行用例;在測試用例管理窗口中的空白處右鍵可彈出

18、菜單,點(diǎn)擊“Run Test Case Driver”即可運(yùn)行用例。b. 分步式執(zhí)行用例;在測試用例管理窗口中的空白處右鍵可彈出菜單,按順序點(diǎn)擊“Generate Driver”、 “Build Driver”、 “Execute Driver”、(“Split Regression DriverOutput”)、“Process Regression Driver Output”,每執(zhí)行一步如果執(zhí)行成功則會在旁邊以“”提示,如果不成功則沒有“” ,請排查原因。5.9 查看執(zhí)行結(jié)果單元測試其測試結(jié)果由兩部分構(gòu)成:函數(shù)功能驗證和函數(shù)覆蓋率信息;函數(shù)功能的驗證是通過用例的執(zhí)行之后的用例確認(rèn)對話框中

19、的Pass/Fail結(jié)果反應(yīng)的。5.10 查看測試覆蓋率方式一:函數(shù)的覆蓋率信息可通過動態(tài)覆蓋率分析報告來查看, 在Tbrun 的菜單Result->Dynamic Coverage Analysis Report 點(diǎn)擊即可,此報告中包含整個文件中所有函數(shù)的語句、分支、MC/DC 覆蓋率信息。如下圖所示,該函數(shù)語句覆蓋率為67%,分支覆蓋率為50%。點(diǎn)擊buy_fruit_ex函數(shù),進(jìn)入語句、分支覆蓋詳細(xì)信息。其中“1”表示已覆蓋,“0”表示該語句或分支未覆蓋。如下圖所示。方式二:函數(shù)的覆蓋率信息可通過TBrun直接查看,如下圖所示,buy_fruit_ex函數(shù)語句覆蓋率為67%,分支覆

20、蓋率為50%。 方式三:一種圖形化的方式顯示函數(shù)的覆蓋率信息,在Tbrun的用例管理窗口,選中用例然后右鍵在彈出的菜單中選擇“View Flowgraph ”即可打開覆蓋率圖形化顯示窗體,圖中藍(lán)色的代表已經(jīng)覆蓋了的,紅色的代碼未覆蓋的。5.11 保存測試用例通過設(shè)計多個測試用例執(zhí)行,函數(shù)的功能全部驗證通過,并且覆蓋率的值也達(dá)到了測試規(guī)范中的要求的值,此函數(shù)的測試就可以結(jié)束了,以便于以后對此函數(shù)進(jìn)行回歸測試,需要用戶把用例保存起來,保存的操作如下:在Tbrun 的菜單Sequense Exprot Test Case(TCF) 點(diǎn)擊, 通過文件瀏覽窗體選擇一個目錄來保存對應(yīng)的TCF文件。至此單元

21、測試的主要操作流程結(jié)束。6 單元測試常見問題處理6.1 如何選擇編譯器類型?單元測試,考慮到測試的效率以及內(nèi)存分配使用問題,如果使用相應(yīng)的編譯環(huán)境和仿真器進(jìn)行運(yùn)行單元測試可能導(dǎo)致用例運(yùn)行時報內(nèi)存分配錯誤,以及由于是使用仿真器跑用例導(dǎo)致用例運(yùn)行效率過低。因此在單元測試除了Tornado開發(fā)環(huán)境可以選擇使用本身的仿真環(huán)境外(應(yīng)為Tornado的內(nèi)分配機(jī)制和仿真器相對和桌面程序類似,仿真運(yùn)行速度可以接受,并且比較不容易出錯)其他的程序都建議將被測代碼改造為gcc下可以編譯的程序進(jìn)行測試。6.2 如何解決編譯器找不到錯誤?執(zhí)行用例,如果遇到找不到編譯器的錯誤,可通過TBrun工具菜單Configure

22、->Driver Build & Execution Options中查看當(dāng)前編譯器,如下圖所示。彈出下面界面,當(dāng)前使用編譯器為cl,當(dāng)前環(huán)境未安裝。如果切換為gcc編譯器,可參考如下配置,如下圖所示。6.3 如何解決編譯找不到頭文件錯誤? 單元測試每次通過Testbed 來選擇一個文件,而我們每個用例是針對一個函數(shù)的,所以在編譯的時候會出現(xiàn)無法打開*.h的錯誤。解決該問題,有如下步驟:1. 首先需要在工作區(qū)域中增加頭文件所在路徑。通過Testbed工具,點(diǎn)擊菜單“Configure->Static Options”進(jìn)入靜態(tài)分析選項頁面,如下圖所示。點(diǎn)擊“Search Op

23、tions”,彈出包括分析的文件,如下圖所示。點(diǎn)擊文件瀏覽按鈕,選擇工程頭文件所在路徑,點(diǎn)擊“Add Search Path”,新增路徑會出現(xiàn)在“Search Paths”列表中,如下圖所示。2. 排查找不到頭文件是否為平臺相關(guān)頭文件,如果是,選擇屏蔽此類頭文件。(屏蔽后部分已定義的類型可能無法找到,需要我們自定義頭文件,定義這些類型)。3. 部分環(huán)境通過步驟一添加頭文件所在路徑后,仍然找不到頭文件,排查文件中include的頭文件是否為相對路徑,如#include “./xx/xx.h”,如果不為相對路徑,修改為相對路徑。6.4 如何排查程序異常奔潰或無反應(yīng)?1. 排查代碼中是否有死循環(huán),如

24、果有死循環(huán),執(zhí)行用例會出現(xiàn)無反應(yīng)情況;2. 排查代碼中是否使用了空指針(可能情況為全局指針變量),訪問空指針,會導(dǎo)致程序奔潰;3. 排查代碼中是否直接訪問了內(nèi)存地址,直接訪問內(nèi)存地址,會導(dǎo)致程序崩潰。6.5 測試用例中如何增加用戶全局變量?單元測試每次通過Testbed 來選擇一個文件,而我們每個用例是針對一個函數(shù)的,所以在編譯的時候只編譯用戶代碼中的一個函數(shù),如果此函數(shù)中使用了全局變量, 且恰好此變量是用“extern”聲明的,即全局變量身體的聲明(定義)不在此文件內(nèi)部, 就需要用戶自己在Tbrun中添加此全局變量的聲明(定義)。操作如下:在Tbrun的菜單“Global Variables

25、->Create User Global”點(diǎn)擊即可彈出用戶全局變量定義窗口,在窗口中添入“Name”和“Declaration Type”,如果全局變量為數(shù)組,則需要填寫“Array Bounds”和“Initial Value”,點(diǎn)擊“完成”,創(chuàng)建完成。6.6 測試用例創(chuàng)建向?qū)е袑θ謹(jǐn)?shù)組和指針的處理創(chuàng)建用例過程中,可采用默認(rèn)步驟,暫不對全局?jǐn)?shù)組或指針做任何處理。用例創(chuàng)建完成后,可按照如下操作,對全局?jǐn)?shù)組賦值,或插入代碼,定義臨時變量并賦值,然后將該變量賦值給輸入指針。6.7 如何對Main函數(shù)進(jìn)行單元測試?對main函數(shù)進(jìn)行單元測試,創(chuàng)建用例時會報錯沖突,解決方法為修改源碼,重命名m

26、ain函數(shù)名稱為其他名稱,如main_test。6.8 導(dǎo)出測試用例,提示文件沒有寫權(quán)限?導(dǎo)出測試用例的文件路徑中有中文,會提示沒有權(quán)限。6.9 如何為未識別的函數(shù)打樁首先在call view視圖中,選中該函數(shù),點(diǎn)擊右鍵菜單create Mnanaged Stud ,設(shè)置其為樁函數(shù)。然后在call view中,選中該函數(shù),依次點(diǎn)擊菜單 Managed Stud Properties->parameters、Return type 設(shè)置輸入?yún)?shù),和函數(shù)返回類型。6.10 測試用例丟失了怎么辦用例丟了怎么辦?testbed有很好的備份機(jī)制,可以到備份文件夾中尋找。如下圖所示,備份文件夾在 L

27、DRA_workarea下的tbwrkfls下,文件夾以tbtcffiles結(jié)尾。6.11 誤刪除了用戶全局變量怎么辦?誤刪除了用戶全局變量,點(diǎn)擊工具條上的 按鈕,系統(tǒng)自動會將誤刪除的變量補(bǔ)充回來,。7 Testbed單元測試注意事項7.1 TESTBED測試程序處理過程程序編譯的大概過程,先生成樁文件(instrument file),然后編譯生成測試驅(qū)動文件.樁文件同源文件一個目錄,名稱為ixxx.c或inszt_xxx.c驅(qū)動文件在Tbwrkfls文件夾下,名稱為 s_xxx_seq.c7.2 函數(shù)中使用到的指針,要確保值有效例如,使用p->name,那么p所指向的結(jié)構(gòu)體struc

28、t student需要時存在的,否則程序會跑飛。修改的方法是,定義一個用戶全局變量aaa ,類型為struct student,設(shè)置p的值為 & aaa。7.3 testbed中用例的輸入?yún)?shù)是有順序的。不合適的順序可能導(dǎo)致結(jié)果不正確或者程序異常例如,pstudent參數(shù)應(yīng)當(dāng)在pstudeng->name之前賦值。否則可能由于pstudent尚未設(shè)置有效值,就去取成員變量,而異常。7.4 testbed 的。若同時在用例的輸入界面和initial code中定義輸入?yún)?shù)值,清一定注意順序。例如,在initial code 中設(shè)置全局變量 pNode->next = NULL

29、,而用例輸入界面上設(shè)置 .pNode = &g_my_code,由于initial code先執(zhí)行,程序會異常。7.5 樁函數(shù)可以設(shè)置多個值,值用逗號分隔,各次調(diào)用取一個值例如, 2,第三次使用3。7.6 程序跑飛的調(diào)試先看序列文件夾下是否生成exh文件(執(zhí)行歷史文件),如果沒有,說明用例參數(shù)有問題,刪除不必要的參數(shù),檢查參數(shù)順序是否正確。如果有exh文件,查看代碼的執(zhí)行情況,了解到執(zhí)行了那些塊,最后出錯時執(zhí)行的代碼是哪個快??纱笾路治鰡栴}出現(xiàn)的范圍后,通過注釋樁文件中的代碼,逐步縮小范圍。具體方法:找到.exh最后一行編號值,在源程序同目錄下找到對應(yīng)的樁文件inszz_xxx.c 文

30、件,查找該編號值,該編號到下個編號之間的代碼就是程序跑飛的范圍。7.7 測試用例有問題時,可設(shè)置為suspend,先處理其他測試用例7.8 測試用例可以復(fù)制粘貼多份,修改參數(shù)后,通過resequence來執(zhí)行指定參數(shù)及其后的測試用例7.9 樁程序和驅(qū)動程序待會測試樁程序和源文件在同一個目錄,主要用于進(jìn)行覆蓋率的統(tǒng)計。名稱通常為ixxx.c或 ixxx.cpp;驅(qū)動程序在序列文件夾(xxx_seqwrkfls)測試用例執(zhí)行就是在執(zhí)行該程序先生成樁程序,創(chuàng)建測試用例時,生成驅(qū)動程序。7.10 tonado模擬器異常后,再執(zhí)行用例結(jié)果會有問題使用 vxworks 的tonado環(huán)境進(jìn)行嵌入式程序測試

31、時,清注意觀察模擬器的狀態(tài)。例如是否已經(jīng)有異常等,有問題了及時重啟。7.11 用例執(zhí)行出錯,原因可能是:a 某個全局變量可能被誤刪除掉了 ,這個在日志視圖可以看到相應(yīng)的錯誤。點(diǎn)擊工具條上G,恢復(fù)全局變量。b 用例參數(shù)值設(shè)置的順序不對,導(dǎo)致程序跑飛。例如,pstudent為結(jié)構(gòu)體類型的指針,如果用例中先設(shè)置 pstudent->name=“aaa”,再設(shè)置pstudent=&student1, 由于設(shè)置順序的問題,程序會跑飛。解決辦法:調(diào)整輸入順序。c 被測函數(shù)中使用到的指針未被初始化,導(dǎo)致執(zhí)行異常。例如,被測代碼中 pstudent->sex=1;由于pstudent為初始化,程序跑飛。解決辦法,定義一個類型為student的用戶全局變量student1,在測試用例中將pstudent 設(shè)置為&student1,這樣指針指到一個有效地址,程序就不跑飛了。7.12 testbed的編譯器環(huán)境配置使用 vxworks 的tonado環(huán)境進(jìn)行嵌入式程序測試時,清注意觀察模擬器的狀態(tài)。例如是否已經(jīng)有異常等,有問題了及時重啟。1.安裝tbc

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論