版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第9章 嵌入式測試(csh) 共三十四頁本章(bn zhn)內(nèi)容9.1 嵌入式軟件測試的方法 9.2 嵌入式軟件測試的過程 9.3 嵌入式軟件測試的特點(tdin) 9.4 嵌入式軟件測試的工具 9.5 嵌入式軟件測試策略 9.6 嵌入式軟件測試實例 共三十四頁9.1 嵌入式軟件測試(csh)的方法嵌入式軟件測試分為4個階段,即模塊測試、集成測試、系統(tǒng)測試、硬件/軟件集成測試。前3個階段適用于任何軟件的測試,硬件/軟件集成測試階段是嵌入式軟件所特有的,目的是驗證嵌入式軟件與其所控制的硬件設(shè)備能否正確地交互。在嵌入式軟件測試中,常采取折中(zhzhng)的方式?;谀繕藱C的測試消耗較多的經(jīng)費和時
2、間,而基于宿主機的測試代價較小,但畢竟是在模擬環(huán)境中進行的。目前的趨勢是把更多的測試轉(zhuǎn)移到宿主環(huán)境中進行,但是,目標環(huán)境的復雜性和獨特性不可能完全模擬。共三十四頁在目標環(huán)境和宿主環(huán)境中的測試可以出現(xiàn)不同的軟件缺陷。在宿主環(huán)境中,可以進行邏輯或界面的測試以及與硬件無關(guān)的測試。這一部分的測試所消耗的時間通常相對較少,用調(diào)試(dio sh)工具可以更快地完成調(diào)試(dio sh)和測試任務。而與定時問題有關(guān)的白盒測試、中斷測試、硬件接口測試只能在目標環(huán)境中進行。在軟件測試周期中,基于目標的測試是在較晚的硬件/軟件集成測試階段開始的。共三十四頁9.2 嵌入式軟件測試(csh)的過程根據(jù)嵌入式系統(tǒng)的開發(fā)流
3、程,為了最經(jīng)濟地實現(xiàn)系統(tǒng)的功能,一般采用自頂向下、層層推進的方法對嵌入式系統(tǒng)進行測試。嵌入式軟件測試的總體步驟為:首先進行操作系統(tǒng)移植并編寫系統(tǒng)底層(d cn)驅(qū)動,然后進行系統(tǒng)平臺測試,其中包括硬件電路測試、操作系統(tǒng)及底層(d cn)驅(qū)動程序的測試等。如果此測試通過,可以進入下一步的開發(fā)用模塊化的方法編寫應用代碼,隨后再對軟件模塊進行測試。如果所有的模塊都通過測試,需要進行集成測試。如果集成測試通過,則需要進行系統(tǒng)測試。如果系統(tǒng)測試通過,就可以退出測試。在第一件產(chǎn)品生產(chǎn)出來之后,需要對產(chǎn)品進行測試,如果測試通過,則表示嵌入式產(chǎn)品的所有測試步驟已經(jīng)完成。共三十四頁YN開始NNNYYYYY根據(jù)需
4、求修改程序代碼只修改應用代碼測試通過?系統(tǒng)測試測試通過?集成測試編寫接口函數(shù),裝載到模塊數(shù)據(jù)之間測試通過?軟件模塊測試用模塊化的方法編寫應用代碼測試通過?系統(tǒng)平臺測試移植操作系統(tǒng),編寫系統(tǒng)底層驅(qū)動產(chǎn)品測試模塊接口函數(shù)確定錯誤模塊修改錯誤模塊代碼關(guān)聯(lián)矩陣確定需測試模塊修改錯誤模塊代碼N測試通過?結(jié)束共三十四頁9.3 嵌入式軟件測試(csh)的特點嵌入式軟件測試作為一種特殊的軟件測試,它的目的和原則同普通的軟件測試是一樣的,都是為了驗證或達到可靠性要求而對軟件所進行的測試。嵌入式軟件測試除了要遵循普通軟件測試的原則之外,還需要遵循以下幾個(j )原則:(1) 嵌入式軟件測試對軟件在硬件平臺的測試是
5、必不可少的。(2) 嵌入式軟件測試需要在特定的環(huán)境下對軟件進行測試。(3) 嵌入式軟件需進行必要的可靠性負載測試。 (4) 除了要對嵌入式軟件系統(tǒng)的功能進行測試之外,還需要對實時性進行測試。在判斷系統(tǒng)是否失效方面,除了看它的輸出結(jié)果是否正確,還應考慮其是否在規(guī)定的時間里輸出了結(jié)果。(5) 在對嵌入式軟件進行測試的時候,需要在特定的硬件平臺上進行性能測試、內(nèi)存測試、GUI測試、覆蓋分析測試。共三十四頁9.4 嵌入式軟件測試(csh)的工具1內(nèi)存分析工具在嵌入式系統(tǒng)中,內(nèi)存容量通常是有限的。內(nèi)存分析工具用來處理在動態(tài)內(nèi)存分配中存在的缺陷。動態(tài)內(nèi)存分配錯誤,通常是難以復原的,其導致的失效難以追蹤,使
6、用內(nèi)存分析工具可以避免這類缺陷進入功能測試階段。目前有兩類內(nèi)存分析工具:軟件工具和硬件工具?;谲浖膬?nèi)存分析工具可能會對代碼的性能造成很大影響,從而嚴重影響實時(sh sh)操作;基于硬件的內(nèi)存分析工具價格昂貴,而且只能在工具所限定的運行環(huán)境中使用。共三十四頁2性能分析工具性能分析工具會提供有關(guān)的數(shù)據(jù),說明執(zhí)行時間是如何消耗,什么時候消耗的,以及每個例程所用的時間。根據(jù)這些數(shù)據(jù),確定哪些例程消耗部分執(zhí)行時間,從而可以決定如何優(yōu)化軟件,以獲得更好的時間性能。對于大多數(shù)應用(yngyng)來說,大部分執(zhí)行時間用在相對少量的代碼上,費時的代碼估計只占所有軟件總量的5%20%。性能分析工具不僅能指出
7、哪些例程花費了時間,而且與調(diào)試工具聯(lián)合使用可以引導開發(fā)人員查看需要優(yōu)化的特定函數(shù),性能分析工具還可以引導開發(fā)人員發(fā)現(xiàn)在系統(tǒng)調(diào)用中存在的錯誤以及程序結(jié)構(gòu)上的缺陷。共三十四頁3GUI測試工具GUI測試工具可以作為腳本工具在開發(fā)環(huán)境中運行測試用例,其功能包括(boku)對操作的記錄和回放、抓取屏幕顯示供以后分析和比較、設(shè)置和管理測試過程。對沒有GUI的嵌入式設(shè)備,可以對其進行插樁來運行GUI測試腳本。共三十四頁4覆蓋分析工具在進行白盒測試時,可以使用(shyng)代碼覆蓋分析工具追蹤被執(zhí)行過的代碼。分析過程可以通過插樁的方式來完成,插樁可以是在測試環(huán)境中嵌入硬件,也可以是在可執(zhí)行代碼中加入軟件,也可
8、以是二者相結(jié)合。測試人員對結(jié)果數(shù)據(jù)加以總結(jié),確定哪些代碼被執(zhí)行過,哪些代碼被遺漏了。覆蓋分析工具一般會提供有關(guān)功能覆蓋、分支覆蓋、條件覆蓋的信息。對于嵌入式軟件來說,代碼覆蓋分析工具可能侵入代碼的執(zhí)行,影響實時代碼的運行過程。基于硬件的代碼覆蓋分析工具的侵入程度要小一些,但是價格一般比較昂貴,而且限制被測代碼的數(shù)量。共三十四頁補充(bchng):插樁插樁技術(shù)最早是由J.C. Huang 教授提出的, 它是在保證被測程序原有邏輯完整性的基礎(chǔ)上在程序中插入一些探針(又稱為“探測儀”),通過探針的執(zhí)行并拋出程序運行的特征數(shù)據(jù),通過對這些數(shù)據(jù)的分析,可以獲得程序的控制流和數(shù)據(jù)流信息,進而得到邏輯覆蓋等
9、動態(tài)信息,從而實現(xiàn)(shxin)測試目的的方法。共三十四頁9.5 嵌入式軟件測試(csh)策略在測試的各個階段,采用(ciyng)host-target或是cross-test,應遵循以下策略。1單元測試所有單元測試都可以在主機環(huán)境上進行,除非少數(shù)情況會特別指定了單元測試直接在目標環(huán)境進行。測試時,盡可能在主機環(huán)境中進行軟件測試,通過盡可能小的目標單元訪問所有目標指定的界面。在主機平臺完成測試后,可以在目標環(huán)境中重復作一次簡單的確認測試,在目標環(huán)境中進行確認測試將確定一些未知的、未預料到的、未說明的主機與目標機的不同之處。共三十四頁嵌入式軟件插樁測試(csh)插樁測試(csh)流程已編譯通過的
10、代碼NY插樁處理宿主機上編譯通過?下載到目標機上執(zhí)行數(shù)據(jù)返回到宿主機上宿主機處理數(shù)據(jù)共三十四頁嵌入式軟件插樁測試(csh)插樁測試(csh)原理循環(huán)源代碼插樁器插樁插樁后的源碼編譯后的源碼編譯器編譯編譯后的源碼觸發(fā)樁程序生成數(shù)據(jù)數(shù)據(jù)處理程序或軟件宿主機目 標 機串口線、JTAG網(wǎng)線、串口線、USB數(shù)據(jù)線共三十四頁2集成測試軟件集成也可在主機環(huán)境上完成,并在主機平臺上模擬目標環(huán)境運行。在目標環(huán)境上重復測試也是必需的,在此級別上的確認測試將確定一些環(huán)境上的問題,比如內(nèi)存定位和分配上的一些錯誤。有些嵌入式系統(tǒng)與目標環(huán)境耦合得非常緊密,則在主機環(huán)境做集成是不切實際的。 對于大型軟件的開發(fā)則可以(ky)
11、分為幾個級別的集成。低級別的軟件集成在主機平臺上完成有很大優(yōu)勢,越往后的集成越依賴于目標環(huán)境。共三十四頁3系統(tǒng)測試和確認測試所有的系統(tǒng)測試和確認測試都必須在目標環(huán)境下執(zhí)行。當然在主機上開發(fā)和執(zhí)行系統(tǒng)測試,然后移植到目標環(huán)境重復執(zhí)行是很方便(fngbin)的。確認測試最終必須在目標環(huán)境中進行,系統(tǒng)的確認必須在真實系統(tǒng)之下測試,而不能在主機環(huán)境下模擬。這關(guān)系到嵌入式軟件的最終使用。共三十四頁應用測試工具進行Cross-test時的策略:A) 使用測試工具的插樁功能(gngnng)(主機環(huán)境)執(zhí)行靜態(tài)測試分析,并且為動態(tài)覆蓋測試準備好一插樁好的軟件代碼。B) 使用源碼在主機環(huán)境執(zhí)行功能測試,修正軟件
12、的錯誤和測試腳本中的錯誤。C) 使用插裝后的軟件代碼執(zhí)行覆蓋率測試,添加測試用例或修正軟件的錯誤,保證達到所要求的覆蓋率目標。D) 在目標環(huán)境下重復(B),確認軟件在目標環(huán)境中執(zhí)行測試的正確性。E) 若測試需要達到極端的完整性,最好在目標系統(tǒng)上重復(C),確定軟件的覆蓋率沒有改變。共三十四頁19嵌入式軟件測式的基本方法拿來主義(n li zh y)充分借用PC軟件的測試方法靜態(tài)/動態(tài)白盒/黑盒單元測試/集成測試/系統(tǒng)測試全數(shù)字模擬測試交叉測試(Host/Target測試)真實環(huán)境驗證補充(bchng):嵌入式軟件測試方法(1)共三十四頁20嵌入式軟件測試方法(2)全數(shù)字模擬測試采用數(shù)學平臺的方
13、法,將嵌入式軟件從系統(tǒng)中剝離出來,通過開發(fā)CPU指令、常用芯片、I/O、中斷、時鐘等模擬器在HOST上實現(xiàn)嵌入式軟件的測試主要特點(tdin)與嵌入式硬件平臺脫鉤操作簡單,可以借鑒常規(guī)的軟件測試方法適用于功能測試有局限性共三十四頁21嵌入式軟件測試方法(3)全數(shù)字模擬測試的局限性通用性差,使用(shyng)不同語言編寫的嵌入式軟件,需要不同的仿真程序來執(zhí)行實時性與準確性難以反映出嵌入式軟件的真實情況,測試出與時序有關(guān)的故障價值不大。維護統(tǒng)一、精確的系統(tǒng)時鐘,理順時序關(guān)系相當困難,特別是當并發(fā)的事件要求一定的同步關(guān)系時。開發(fā)成本高。設(shè)計出一個能進行系統(tǒng)測試的的環(huán)境代價太大只能作為嵌入式軟件測試的
14、輔助手段共三十四頁22嵌入式軟件測試方法(4)交叉測試(Host/Target測試)與目標環(huán)境無關(guān)(wgun)的部分在PC機上完成充分利用高級語言的可移植性借鑒常規(guī)的軟件測試方法與模擬測試不同與硬件密切相關(guān)的部分在Target上完成需要調(diào)試環(huán)境支持測試工具需要支持目標環(huán)境最后在目標環(huán)境中確認主機平臺嵌入式系統(tǒng)調(diào)試環(huán)境共三十四頁2022年7月19日23嵌入式軟件測試方法(5)交叉測試的特點將大部分工作轉(zhuǎn)移到PC平臺上,在硬件(yn jin)環(huán)境未建好或調(diào)試工具缺乏時就可以開展可以充分地“拿來主義”適用于高級語言,如C,C+操作方便,測試成本較低。實時性受調(diào)試環(huán)境的制約目標環(huán)境中測試時要占用一定的
15、目標資源注意目標環(huán)境和主機環(huán)境的差異:目標編譯器的bug目標碼的驗證共三十四頁24如何開展交叉測試(Host/Target測試)選用帶有目標支持包(Target Package)的軟件測試工具確定哪些模塊與硬件無關(guān),哪些與硬件相關(guān)配置相應的調(diào)試環(huán)境和目標環(huán)境分別進行(jnxng)Host和Target測試Host:源代碼+測試用例-編譯連接-執(zhí)行-測試結(jié)果Target:源代碼+測試用例+目標包-編譯連接-下載-執(zhí)行-反饋測試結(jié)果交叉測試的嵌入式調(diào)試環(huán)境SimulatorEmulatorBDM/JTAG Emulator嵌入式軟件測試方法(6)共三十四頁25“拿來主義”靜態(tài)分析很重要Watts
16、S. Humphrey的說法很多軟件工程師認為動態(tài)測試比靜態(tài)測試更重要并非如此有經(jīng)驗的軟件工程師平均每寫1000行代碼將會出現(xiàn)100個錯誤80%的軟件錯誤歸咎于對于編寫語言的錯誤使用,而這些錯誤往往不是功能測試能解決的因此,軟件工程師應該消除錯誤,找出根源,預防再次發(fā)生同樣的問題靜態(tài)分析的重要內(nèi)容(nirng)代碼規(guī)則檢查實施簡單、方便無需執(zhí)行程序,與嵌入式環(huán)境無關(guān)早期介入,代價小,見效快有利于降低動態(tài)測試的難度有利于養(yǎng)成良好的編程習慣可以執(zhí)行自定的規(guī)范嵌入式軟件測試方法(7)共三十四頁26“拿來主義”動態(tài)測試不可少動態(tài)測試是驗證軟件功能最直接、最有效的手段通過運行被測程序驗證其功能、性能,檢
17、查代碼的執(zhí)行情況與靜態(tài)分析相輔相成需要事先(shxin)設(shè)計詳細、完備的測試用例可用白盒、黑盒等方法工作量較大、較枯燥動態(tài)測試的主要內(nèi)容功能、性能驗證,是否符合需求定義代碼覆蓋。哪些代碼執(zhí)行了,哪些沒有執(zhí)行,其比例如何嵌入式軟件測試方法(8)共三十四頁27“拿來主義”白盒黑盒相輔(xin f)成白盒測試與黑盒測試是軟件測試最常用、最常規(guī)的兩種技術(shù)白盒測試把測試對象看作一個透明的盒子,測試人員從其邏輯結(jié)構(gòu)入手,設(shè)計和選擇測試用例,對路徑、控制結(jié)構(gòu)、數(shù)據(jù)流等進行測試通過插裝檢查程序的狀態(tài),確定是否與預期的狀態(tài)一致側(cè)重于代碼運行的過程黑盒測試把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯
18、結(jié)構(gòu),只依據(jù)其需求定義,檢查程序運行的結(jié)果多用于功能測試和性能分析在程序的接口上進行需要設(shè)計“驅(qū)動”和“打樁”嵌入式軟件測試方法(9)共三十四頁2022年7月19日28“拿來主義”單元集成兩步走單元測試和集成測試是軟件測試的兩個階段單元測試將被測軟件分解為單元,逐個測試單元測試需要從程序的內(nèi)部結(jié)構(gòu)和功能出發(fā)設(shè)計測試用例。多個模塊可以平行地獨立進行單元測試可用白盒、黑盒等方法集成測試在單元測試的基礎(chǔ)上,將所有模塊按照(nzho)設(shè)計要求組裝起來測試主要測試內(nèi)容接口間參數(shù)傳遞集成的功能實現(xiàn)模塊間的影響嵌入式軟件測試方法(10)共三十四頁9.6 嵌入式軟件測試(csh)實例1) 軟件指令仿真軟件指令
19、仿真的主要工作是對相關(guān)的I/O操作進行替換。在80X86系列CPU指令集中,I/O指令有兩個IN和OUT,對這兩個指令,我們都定義相應的宏來代替(dit)其操作,同時在內(nèi)存中組織變量來代替(dit)I/O操作中的寄存器變量。在軟件中,I/O指令主要有以下幾類:IN REGISTER, BYTEIN REGISTER, WORDOUT BYTE, REGISTEROUT REGISTER, WORD共三十四頁構(gòu)造如下的宏指令仿真上述(shngsh)指令的功能:共三十四頁outw macro reg, port mov di, counto mov word ptr outbufdi, ax Inc di mov counto, di endm共三十四頁2)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《紅軍長征紅色記憶》課件
- 2025年全國法制宣傳日憲法知識競賽考試題庫及答案(230題)
- 《胎兒-母親監(jiān)護儀》
- 2024年07月浙江蒼南農(nóng)商銀行暑期實習生招考筆試歷年參考題庫附帶答案詳解
- 2024年淮南礦務局四十二處職工醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 第一單元 第6節(jié) 物聯(lián)網(wǎng)系統(tǒng)的搭建 說課稿 -2023-2024學年粵教清華版初中信息技術(shù)八年級下冊001
- 2024年??邶埲A孟祥榮診所高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年07月江西屆江西銀行校園招考筆試歷年參考題庫附帶答案詳解
- 2024年海南省??诟奂瘓F公司海港醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 高中信息技術(shù)人教版必修二 信息獲取與控制說課稿
- HSk-lesson07part2-第-七-課-最好的醫(yī)生是自己
- 抖音直播電商項目計劃書抖音電商創(chuàng)業(yè)商業(yè)計劃書抖音直播帶貨計劃書抖音電商運營方案
- TCPQS XF003-2023 滅火器產(chǎn)品維修、更換及售后服務
- htr-pm學習課件18燃耗測量系統(tǒng)
- GB/T 24218.2-2009紡織品非織造布試驗方法第2部分:厚度的測定
- 2022-2023學年度二年級數(shù)學.(上冊)寒假作業(yè)【每日一練】
- 鑄牢中華民族共同體意識學習PPT
- 公司年會小品《老同學顯擺大會》臺詞劇本手稿
- 獎勵旅游策劃與組織課件
- 《信息素養(yǎng)與實踐》課程教學大綱
- 行政事業(yè)單位內(nèi)部控制規(guī)范講解課件
評論
0/150
提交評論