版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、嵌入式軟件的覆蓋測試 摘要:覆蓋測試是驗證軟件功能結(jié)構(gòu)正確性以及查找問題的非常重要的方法和手段,它要借助一定的工具才能取得較好的效果,滿足軟件在質(zhì)量和時間上的雙重要求(純粹的人工測試工作量大、不方便、周期長)。如何利用好這方面比較成熟的工具,對其機理的研究及適應(yīng)性改造是很重要。本文著重描述這類工具的工作機理,以及對嵌入式軟件測試的特殊要求,并以對自主知識產(chǎn)權(quán)嵌入式操作系統(tǒng)的測試為例進行說明。
2、160; 關(guān)鍵詞:嵌入式操作系統(tǒng) 覆蓋測試 軟件測試工具 1 概述 軟件測試是很廣的概念。從其貫穿軟件生命周期全過程來看,測試可分為模塊測試、集成測試、系統(tǒng)測試等階段。測試還可分為靜態(tài)檢查和動態(tài)運行測試兩大類。在動態(tài)運行測試中,又可有基于程序結(jié)構(gòu)的白盒測試(或稱為覆蓋測試)和基于功能的黑盒測試。測試不僅關(guān)注程序的功能,還有性有測試、強度測試等等。 要達到比較好的測試效果,除了要有周全的測試計劃、可控
3、的測試過程、測試人員豐富的經(jīng)驗外,還需要借助一些行之有效的輔助工具,尤其在當(dāng)今軟件規(guī)模日益龐大、測試工作量成倍增加的情況下。對應(yīng)上述的測試分類情況,測試工具可劃分為:支持對程序源代碼進行靜態(tài)規(guī)則檢查和質(zhì)量評估的靜態(tài)分析工具、支持對程序單元進行動態(tài)覆蓋測試的工具、對軟件系統(tǒng)的整體運行性能進行測試的工具。另外,還有一些特殊用途的或?qū)S霉ぞ?,如協(xié)議測試儀、內(nèi)存檢測工具等。這些工具都有較為成熟的商業(yè)化產(chǎn)品,也可通過自行開發(fā)的方式獲得。 本文具體討論了對一類特殊的系統(tǒng)軟件嵌入式實時操作系統(tǒng)進行覆蓋測試的情況。內(nèi)容涉及對這類軟件特性的研究、測試的難點和特點、對
4、現(xiàn)有測試工具的適應(yīng)性改造和測試實例說明。 2 軟件覆蓋測試 覆蓋是一種白盒測試方法,測試人員必須擁有程序的規(guī)格說明和程序清單,以程序的內(nèi)部結(jié)構(gòu)為基礎(chǔ),來設(shè)計測試案例。其基本準則是則測試案例來盡可能多地覆蓋程序的內(nèi)部邏輯結(jié)構(gòu),發(fā)現(xiàn)其中的錯誤和問題。所以,覆蓋測試一般應(yīng)用在軟件測試的早期,即單元測試階段。 覆蓋的幾種方法或策略如表1所列。表1 幾種典型的覆蓋策略 覆蓋策略
5、;定 義 語句覆蓋 在制定測試案例時,使程序中的每個語句都至少執(zhí)行1次。其缺點是不能發(fā)現(xiàn)某些邏輯錯誤 判定覆蓋 執(zhí)行足夠的測試案例,使得程序中每個判定都獲得一次“真”值和“假”值,或者說使每一個分支都至少通過1次 條件覆蓋 執(zhí)行足夠的測試案例,使得判定中的每個條件
6、獲得各種可能的結(jié)果 判定/條件覆蓋 執(zhí)行足夠的測試案例,使得判定中的每個條件取得各種可能的值,并使得每個判定取得各種可能的結(jié)果 條件組合覆蓋 執(zhí)行足夠的測試案例,使得每個判定中的條件的各種組合都至少出現(xiàn)1次。其特點是覆蓋較充分,滿足條件組合覆蓋的測試案例也一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋。 從以上簡要介紹可看出,這幾種覆蓋策略的嚴格程序有如下趨勢:
7、; 其它一些覆蓋策略還包括:修改的條件/判斷覆蓋(通常簡稱為MCDC)、路徑覆蓋、函數(shù)覆蓋、調(diào)用覆蓋、線性代碼順序和跳轉(zhuǎn)覆蓋、數(shù)據(jù)流覆蓋、目標(biāo)代碼分支覆蓋、循環(huán)覆蓋、關(guān)系操作符覆蓋等。隨著軟件規(guī)模的增長,實現(xiàn)全面的覆蓋所需的測試案例的數(shù)目也越來越龐大,因此根據(jù)被測軟件對象的特點選擇適當(dāng)?shù)母采w策略是非常重要的;同時,要確定合理測試目標(biāo),達到100%的覆蓋往往要付出很大的代價,應(yīng)該同形式化評審等方法結(jié)合,以發(fā)現(xiàn)更多的軟件故障。 3 覆蓋測試工具 要取得較好的覆蓋測試效果,需要借助一定
8、的工具軟件。這些工具軟件一般具備如下的功能特點,可彌補人為測試的缺陷: 分析軟件內(nèi)部結(jié)構(gòu),幫助制定覆蓋策略及設(shè)計測試案例; 與適當(dāng)?shù)木幾g器結(jié)合,對被測軟件實施自動插裝,以便在其運行過程中生成覆蓋信息并收集這些信息; 根據(jù)搜集的覆蓋信息計算覆蓋率,幫助測試人員找到未被覆蓋的軟件部位,以改進測試案例提高覆蓋率。 在利用工具進行動態(tài)覆蓋測試時,需要3個要素:測試用例、插裝過的被測代碼、搜集覆蓋信息并進行分析的工具本身。
9、代碼插裝由工具自動完成,通過執(zhí)行測試用例,再由工具搜集覆蓋信息并進行分析,就可以看到覆蓋率指標(biāo)了。圖1展示實現(xiàn)覆蓋測試的基本過程。4 嵌入式軟件的覆蓋測試原理 嵌入式軟件的開發(fā)與通用軟件很大的不同點在于,需要采用交叉開發(fā)的方式:開發(fā)工具運行在軟硬件配置豐富的宿主機上,而嵌入式應(yīng)用程序運行在軟硬件資源相對缺乏的目標(biāo)機上。對于這類軟件的測試也存在著同樣的問題:測試工具運行在宿主機上,測試所需要的信息在目標(biāo)機上產(chǎn)生,并通過一定的物理/邏輯連接傳輸?shù)娇s主機上,由測試工具接收。因此,嵌入式軟件測試的一個重要問題是建立宿主機與目標(biāo)機之間的物理/邏輯連接,解決數(shù)
10、據(jù)信息的傳輸問題。 嵌入式軟件覆蓋測試的基本原理如圖2所示。 在目標(biāo)機方,插裝過的被測應(yīng)用程序?qū)⒏采w信息發(fā)送到消息隊列中,一個專門的任務(wù)負責(zé)在適當(dāng)?shù)臅r候?qū)⑦@些信息發(fā)送到宿主機方??s主機方有專門的模塊負責(zé)接收覆蓋信息。并交給分析工具分析和在線動態(tài)顯示覆蓋率的增長情況。 支持嵌入式軟件覆蓋測試的工具應(yīng)解決如下2方面的關(guān)鍵問題: *與嵌入式操作系統(tǒng)的結(jié)合 覆蓋測試工具與嵌入式操作系統(tǒng)
11、的結(jié)合體現(xiàn)在3方面。首先,在目標(biāo)機方,應(yīng)用任務(wù)與專門負責(zé)收集/上傳覆蓋信息的任務(wù)是通過消息隊列來傳遞數(shù)據(jù)的,該消息隊列可使用嵌入式操作系統(tǒng)的相應(yīng)機制實現(xiàn)。其次,這個專門任務(wù)也可以被看作一個特殊的應(yīng)用任務(wù),也必須有嵌入式操作系統(tǒng)的支持,因為任務(wù)管理是后者的基本功能之一。最后,目標(biāo)機與宿主機之間的通信可以采用串口或以太網(wǎng)方式,對串口的驅(qū)動或網(wǎng)絡(luò)協(xié)議均可使用嵌入式操作系統(tǒng)的相應(yīng)程序組件。 *與其它嵌入式交叉開發(fā)工具的關(guān)系 嵌入式應(yīng)用程序的開發(fā)通常采用交叉開發(fā)方式,幾乎所有的開發(fā)工具均要解決3部分的問題:宿主機
12、部分的功能、目標(biāo)機部分的功能、宿主機與目標(biāo)機的連接問題。其中,宿主機與目標(biāo)機的連接是個瓶頸,如果不同的工具要使用同一物理線路實現(xiàn)數(shù)據(jù)傳輸,則要解決對該物理線路(或者說硬件端口)的正確共享。比如在圖3所示的環(huán)境中,宿主機方的各種工具通過統(tǒng)一的接口目標(biāo)服務(wù)器(target server)實現(xiàn)對通信線路的訪問,目標(biāo)機方的調(diào)試代理(debug agent)則是各種信息(調(diào)試信息、覆蓋信息、時間信息、對象信息等)的收集與傳遞的核心。 5 Logiscope在嵌入式操作系統(tǒng)DeltaCORE測試中的應(yīng)用 Logis
13、cope是Verilog公司的CASE產(chǎn)品,對軟件的編碼、測試、維護提供多方面的服務(wù),并且支持嵌入式軟件的覆蓋測試。 5.1 測試前的準備 測試前的準備即為支持對DeltaCORE的測試所做的移植工作。 目前,Logiscope已經(jīng)為一些成熟的商用嵌入式操作系統(tǒng)提供了支持,比如pSOS。DeltaCORE是我國自主開發(fā)的嵌入式強實時操作系統(tǒng)內(nèi)核,為了利用Logiscope實現(xiàn)對DeltaCORE的應(yīng)用程序乃至DeltaCORE本身的測試,我們主要解決了第4節(jié)
14、中描述的第1個關(guān)鍵問題。 為了支持嵌入式程序的測試,Logiscope提供了運行在目標(biāo)機方的程序代碼(或稱為目標(biāo)機端的支持庫),里面包含了: *1個用來收集和發(fā)送覆蓋信息的主循環(huán)線程,該線程即是嵌入式應(yīng)用中的特殊任務(wù); *實現(xiàn)具體數(shù)據(jù)傳輸?shù)暮瘮?shù),包括對串口或網(wǎng)絡(luò)的驅(qū)動,它們將被上述線程調(diào)用; *插裝函數(shù)的實現(xiàn),這些函數(shù)被被測代碼調(diào)用,向緩沖中放入覆蓋消息塊; *對緩沖信息隊列的
15、管理; *初始化代碼。 例如,當(dāng)被測程序運行進入到一條if()語句時,整個過程如圖4所示。 為了支持對DeltaCORE的測試,將與這些機制相關(guān)的代碼進行移植,包括以下幾方面: *將收集和發(fā)送覆蓋信息的主循環(huán)線程作為在目標(biāo)機端運行的應(yīng)用程序中的特殊任務(wù); *對串口的驅(qū)動采用LambdaTOOL BSP(板級支持包)中的串口驅(qū)動代替,對網(wǎng)絡(luò)的驅(qū)動,用DeltaCORE的配套組件DeltaNET中的驅(qū)動程序?qū)崿F(xiàn); *利用DeltaCORE的信箱機制實現(xiàn)消息隊列的創(chuàng)建和管理,插裝代碼向這些信箱發(fā)送覆蓋消息塊; *在Det
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源電池維修及更換服務(wù)合同4篇
- 2024某城市地標(biāo)建筑設(shè)計與施工合同
- 2025年度消防水源及消防水池建設(shè)與維護合同4篇
- 2025年度環(huán)保技術(shù)研發(fā)采購追加合同3篇
- 2025年度新型農(nóng)業(yè)科技場咨詢服務(wù)合同范本4篇
- 2025年度住宅窗戶安全性能提升改造合同4篇
- 2024渣土運輸車加盟合同規(guī)范樣本3篇
- 2025年度智能汽車生產(chǎn)線廠房租賃合同3篇
- 2025年度市政綠化帶除草承包服務(wù)協(xié)議4篇
- 2025年度智能安防產(chǎn)品全國代理權(quán)授權(quán)合同范本4篇
- 醫(yī)療糾紛預(yù)防和處理條例通用課件
- 廚邦醬油推廣方案
- 乳腺癌診療指南(2024年版)
- 高三數(shù)學(xué)寒假作業(yè)1
- 保險產(chǎn)品創(chuàng)新與市場定位培訓(xùn)課件
- (完整文本版)體檢報告單模版
- 1例左舌鱗癌手術(shù)患者的圍手術(shù)期護理體會
- (完整)100道兩位數(shù)加減兩位數(shù)口算題(難)
- 鋼結(jié)構(gòu)牛腿計算
- 2023-2024學(xué)年重慶市兩江新區(qū)四上數(shù)學(xué)期末質(zhì)量檢測試題含答案
- 體外診斷試劑工作校準品產(chǎn)品校準品互換性(基質(zhì)效應(yīng))Excel計算模板
評論
0/150
提交評論