嵌入式軟件測試系統的設計與實現_圖文_第1頁
嵌入式軟件測試系統的設計與實現_圖文_第2頁
嵌入式軟件測試系統的設計與實現_圖文_第3頁
嵌入式軟件測試系統的設計與實現_圖文_第4頁
嵌入式軟件測試系統的設計與實現_圖文_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2008年 1月 271應用天地 中國科技核心期刊嵌入式軟件測試系統的設計與實現3劉利枚 周鮮成 石 彪(湖南商學院計算機與電子工程系 長沙 410205摘 要 :隨著嵌入式技術的發展 , 如何對它進行快速有效的測試已經成為現在的一大熱點 。 本文提出了一種通用的嵌入 式軟件測試系統的基本框架圖 , 該測試系統分為五個功能模塊 :功能測試模塊 , 代碼性能測試模塊 , 數據分析和文檔報告 模塊和通信接口轉換模塊 。 并且使用程序插樁的方法 , 設計并實現了基于匯編的嵌入式自動測試系統 。有效的解決了傳 統手工測試程序帶來的一些問題 , 滿足了國內用戶對嵌入式匯編進行測試的需求 。 關鍵詞 :嵌

2、入式系統 ; 程序插樁 ; 軟件測試 中圖分類號 :TP311. 5 文獻標識碼 :ADesign and implementation of system Shi Biao(Department of , Hunan Business College , Changsha 410205Abstract :With the embedded technology , how to test it quickly and effectively has become a hot problem. This paper introduces a basic f rame of the embedd

3、ed system which consists of five f unction module :f unction testing mod 2ule , code performance testing module , data analysis and document report module , and communication conversion module. Using the method of program instrumentation , this paper has designed and implemented the embedded softwar

4、e testing sys 2tem in assemble language . This method has solve the problem of traditional test based on handwork , and matched the user s demand for embedded testing system based on assemble language. K eyw ords :embedded system ;program instrument ;software testing3基金項目 :湖南省教育廳項目 (07C402 、 湖南省自然科學

5、基金項目 (06JJ50110 作者簡介 :劉利枚 (19752 , 女 , 講師 , 主要研究方向為軟件測試 、 人工智能 。0 引 言隨著越來越多的領域使用軟件和微處理器控制各種 嵌入式設備 , 對日益復雜的嵌入式軟件如何進行快速有效 的測試成了目前的一大關注的熱點 。而傳統的測試一般 采用手工的方式進行 , 效率低 、 效果差 , 存在漏洞和隱患 。本文提出了一種通用的嵌入式軟件測試系統 , 并設計 和實現了匯編的嵌入式測試系統 , 該測試系統主要針對代 碼進行性能測試 , 有效地解決了手工測試程序帶來的一些 問題 。1 嵌入式軟件測試的總體框架結構本文提出了一種通用的嵌入式軟件測試系統

6、 , 它的總 體框架結構如圖 1所示。圖 1 嵌入式軟件測試系統總體框架圖 該測試系統由 5大模塊 (子系統 組成 , 即功能測試模 塊 、 代碼性能測試模塊 、 數據分析模塊 、 文檔報告模塊和通95應用天地2008年 1月 271中國科技核心期刊信接口轉換模塊 。其中功能測試系統主要通過產生目標系統需要的測 試信號并接收其輸出來判斷目標系統軟硬件在功能上是 否達到設計要求 , 主要屬于黑盒測試 。代碼性能測試系統主要通過對嵌入式系統軟件部分 進行代碼級的測試 , 如覆蓋測試 , 追蹤測試以及其它一些 性能分析等來判斷軟件設計是否存在缺陷 , 主要屬于白盒 測試 。該框圖的測試流程如下 :步

7、驟 1:測試用戶通過圖形化用戶界面選擇要完成的 功能是進行代碼測試還是功能測試 ;步驟 2:系統根據用戶的選擇 , 自動生成相應的測試用 例 , 如果用戶選擇的是代碼性能測試 , 系統還需對源代碼 進行自動插樁 , 然后通過通信接口轉換模塊將數據傳輸到 目標系統中 ;步驟 3:目標系統運行后 , 將得到的測試結果又通過通 信轉換模塊反饋到數據分析和文檔報告模塊 ;步驟 4:數據分析和文檔報告模塊將接收的數據進行 分析 , 生成通用格式的測試報告 , 并將圖形化的測試結果 以圖像對象的方式插入測試報告中 , 最后將結果返回給 用戶 ;步驟 5:用戶再根據測試是否滿足要求 , 再調整測試參 數 。

8、 如果沒有滿足就進入步驟 1, 如果滿足了則測試結束 。2 基于匯編的嵌入式軟件測試系統本文還設計與實現了基于匯編的嵌入式軟件測試系 統 , 它的結構框圖如圖 2所示 , 它主要由 4部分組成 :程序 的插樁過程 (包括預處理和詞法語法分析 、 測試用例的生 成和加入 、 環境。圖 2 基于匯編的嵌入式測試系統框圖 被測試程序經過預處理后 , 進行語法詞法分析 , 從而 確定插樁函數的位置 , 在一些關鍵的字段和函數處插入插 樁的樁 , 然后編譯生成含有插樁函數的目標文件 。在動態 測試的集成環境中 , 用戶選擇需要測試類型 (分支覆蓋還 是語句覆蓋 , 相應的生成 1個插樁記錄文件 , 里面

9、記錄了 該測試類型中的所有函數的位置或者 ID 號 , 并且自動生 成相應的測試用例 。根據插樁選擇記錄文件激活相應的 插樁函數 。 系統運行后 , 將得到的信息返回給測試機 , 就 能將測試結果記錄到事先確定的緩沖區或文件中 。測試 人員就能根據測試結果與期望值相比較來判定覆蓋情況 是否滿足要求了 。 若不能滿足要求 , 就利用工具進行覆蓋 情況分析 , 找出未覆蓋目標 , 根據控制流圖 , 找出到達此目 標的路徑 , 依據此路徑上各分支節點要到達此目標應滿足 的條件 , 設計新的測試用例 (當然 , 有些目標很難覆蓋或根 本不可能覆蓋 , 以增加覆蓋率 , 最后將結果以 GU I 的形式顯

10、示 。211 預處理預處理部分主要是完成宏替換和將相應的短跳轉轉 換成長跳轉 1。匯編程序中大量采用短跳轉 , 即僅用 1個 8位 B YTE 表示相對的偏移地址 。 在進行匯編程序的探針插樁時 , 使 得原來目標程序的相對地址發生改變 , 可能超出區間限 制 , 因此在插樁前就需進行預處理 。目標程序預處理的方 法是將所有的短跳轉改為相應的長跳轉 。在匯編程序中 , 宏調用因其執行速度快而常被采用 。 若在宏里插入探針 , 將導致程序規模的迅速膨脹 。對于有 時空約束的嵌入式軟件將無法運行 。預處理采用的方法 是將宏調用改為等價的過程 。2. 2 詞法語法分析詞法語法分析通常跟程序設計語言有

11、關 。詞法分析062008年 1月 271應用天地中國科技核心期刊負責將源程序中的若干字符劃分為若干記號 , 語法分析負 責從若干記號中完成程序結構分析 , 識別出函數體 、 語句 、 表達式 、 關鍵字 、 程序分支等 。 一般使用 unix 下的 lex/yacc 工具進行語法和詞法分析 。主要是建立一系列表格 , 方便 確定自動插樁的位置 2。2. 3 插樁技術一般來說 , 對程序進行動態測試的時候 , 基本上是使 用程序插樁來進行覆蓋測試 3。 程序插樁使被測試程序在 保持原有邏輯完整性基礎上在程序中插入一些探針函數 即插樁語句 , 它是一個子過程調用 , 調用的子過程能在運 行到插樁

12、點時記錄下有關的運行情況 ?;谶@些運行情 況的分析 , 可以獲得程序執行過程中變量值的變化情況 , 也可以用來檢測程序的分支覆蓋和語句覆蓋等覆蓋信息 。程序插樁的關鍵技術包括要探測哪些信息 、 在程序中 什么部位設置探針 、 如何設計探針 、 以及探針函數捕獲數 據的編碼和解碼 。(1 插樁位置 :插樁位置主要解決的是在哪兒插 , 劃分 , 探針主要插樁在其 要考慮 4種位置 : 程序的開始 STAR T : :線性塊 轉移指令之前 ; J MP condition L AB EL1 . 標號之前 ; L AB EL 1: . 程序的出口 。 RETEND插裝定位示例于右 。(2 插樁策略

13、:插樁策略主要解決的如何在程序中植入探針 , 包括植 入的位置和方法 5。 我們主要考慮塊探針和分支探針 。塊探針設計策略 :(linear block 又稱 “ 順序塊” , 它是若 干個相連順序語句的序列集合 。若該線性塊的第一條語 句被執行 , 則整個線性塊都語句都執行了 。這樣我們僅在 線性塊的開始或末尾處插入一個探針即可 , 這就避免了對 每條語句都進行的冗余插裝操作 。分支探針策略 :所有進行 TURE 或 FAUL SE 判斷的 語句 。 它是統計分支覆蓋率的探針測試點 。(3 插樁的過程 :首先在被測試的源程序中植入探針函數的樁 , 即函數的聲明 。 而插樁函數的原型在插樁函數

14、庫中定義 。在目 標文件連接成可執行文件時 , 則必須連入插樁函數庫 。探 針函數是否被觸發就要依據插樁選擇記錄文件了 , 要求不 同的覆蓋率測試會激活不同的插樁函數 。2. 4 動態測試結果存儲和分析將測試結果進行存儲和分析 , 計算出本次程序運行時 所得到的語句覆蓋率和分支覆蓋率 。程序運行后 , 將運行 的動態信息寫到緩沖區中 。執行的相應的順序塊 、 分支和 子程序設為 1, 未執行的為 0。 這樣通過對動態測試信息的 分析和計算 , 就可以將緩沖區中的內容翻譯成我們所需的 動態測試所需的覆蓋信息 。將上面測試后得到的結果放到 Tresult :=Tbcov , Tc 2cov , T

15、lcov , Toutput。 其中 表示語句覆蓋率 , Tc 2cov 表示分支覆蓋率 , Tlcov ; Toutput:=Abcov,表示期望達到的語, Alcov 表示 ; Aoutput 表示程序運行的期望 。3 結束語本文針對目前嵌入式系統測試這個熱點問題 , 提出了 一種實用的嵌入式軟件動態測試系統的結構框架 , 并且按 照這個思路實現了基于匯編的嵌入式軟件的代碼性能測 試系統 。 下一步工作就是開發一個嵌入式軟件的通用測 試平臺 , 能夠同時對多種語言開發的嵌入式系統進行代碼 和功能測試 。參 考 文 獻1王璞 , 張臻鑒 , 王玉璽 . 基于覆蓋的軟件測試技術在實時嵌入式軟件中的應用研究 J.計算機工程與設計 ,1998,19(6 :45249.2汪文勇 , 王學東 , 向渝 , 等 . 匯編嵌入式軟件程序流程圖自動 生 成 的 研 究 J .計 算 機 科 學 , 2005, 32(2 :1732175.3王學東 , 汪文勇 . 匯編程序覆蓋測試中

溫馨提示

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

評論

0/150

提交評論