• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

嵌入式軟件測試過程中的測試數據獲取技術

發布: 2011-5-27 09:47 | 作者: 郭永振 周潤松 翟艷芬 | 來源: 領測軟件測試網采編 | 查看: 19次 | 進入軟件測試論壇討論

領測軟件測試網

  1引言

  隨著航空、航天、核電等領域嵌入式產品在信息化、體系化、自主化和智能化等方面的飛速發展,軟件的規模越來越大、關鍵程度越來越高,軟件的質量與可靠性已經成為影響產品質量與可靠性的重要因素。軟件測試是目前普遍采用的提高軟件質量的重要手段,是軟件質量保證工作中的重要環節之一。測試數據獲取是軟件測試的首要前提,數據獲取的準確性、實時性和可靠性對測試質量有決定性影響,是評估被測對象的穩定性、安全性以及技術指標滿足用戶需求的重要依據。

  2數據獲取技術

  數據獲取是通過軟件、硬件等方式獲取測試數據以評價軟件質量的技術。根據測試數據的獲取手段,可以將嵌入式軟件測試的數據獲取技術分為3種方式[1]:實際的物理通道;開發工具IDE的虛擬I/O功能;讀取內存區數據。

  2.1 實際的物理通道

  若目標系統上含有可以外接的物理通道,如USB、I2C、I2S、SSI、SPI、UART、CAN、以太網、并口等接口,且使用這些物理通道對目標系統運行影響不大或者其影響可以接受時,可以將其作為測試通道使用。計算機含有USB、UART、以太網、并口等接口,在測試時可以直接使用這些物理通道與主機建立通信,實時獲得目標系統產生的測試數據。其他的通道需要外配轉換接口方能與計算機建立通信。當這些物理通道不能作為測試使用時,可以通過總線監聽的方式直接從CPU的地址總線和數據總線上獲取數據。

  實際的物理通道方式,數據獲取真實準確,實時性好,較為有效,但需要測試人員深入了解目標系統。

  2.2 開發工具虛擬I/O

  嵌入式軟件一般在交叉開發環境下開發,大多數嵌入式開發工具具備編譯、鏈接、加載、調試等功能,有些高級的開發工具IDE具備虛擬I/O功能,給測試帶來了很大的方便。比如: Tornado、TI CCS,在Tornado的shell中運行測試程序時,可以把printf的內容打印到消息窗口中;CCS可以支持fprintf,直接在主機上生成測試數據文件。

  開發工具虛擬I/O方式,數據獲取簡單容易,自動化程度較低,也有通過開發環境改造或者在開發環境上集成應用的途徑,來提高測試數據獲取的自動化程度。

  2.3 讀取內存數據

  若目標系統沒有可以供測試使用的物理通道,開發工具也不具備虛擬I/O功能,可以采用讀取內存數據的方式。具體實現方法是開辟一塊足夠大的緩存區,測試時可以借助開發工具來加載含有測試腳本的程序,在目標系統運行的過程中把測試數據寫入緩存區中,在測試過程中或者測試執行后,使用開發工具讀取內存的功能把緩存區中的數據讀取出來,在主機上保存成測試數據文件。

  讀取內存數據方式,適用性廣,但要求系統有足夠的內存資源,當涉及到實時性測試時需要記錄時間信息,對測試腳本的要求較高。

  3插樁技術

  插樁技術也叫軟件打點技術,在保持被測試程序原有邏輯正確性的基礎上,通過向程序中插入探測器,即信息采集的代碼段(可以是賦值語句或采集程序運行信息的函數),來捕獲測試數據,是一種侵入式的數據獲取技術。依據插樁的階段和對象不同,分為源代碼插樁和目標代碼插樁。源代碼插樁會因編程語言或版本不同而有所差異,但語法、語義信息全面,利于進行準確的插樁分析;目標代碼因代碼語法和語義信息不完整,易造成對程序運行錯誤的定位、捕獲和分析,插樁難度較大。

  程序插樁常用于實現覆蓋測試,來檢測程序的分支覆蓋、條件覆蓋、語句覆蓋、修改的分支/條件覆蓋(MC/DC);也可以用來捕獲程序執行過程中變量的變化情況,得出程序的控制流信息、數據流信息以及效率特性等性能信息。進行插樁之前,需要明確要探測哪些信息,在程序的什么部位放置探測器,探測器的數量,探測器所帶來的代碼膨脹影響等。以利用腳本語言Fortran進行程序插樁為例,在一般情況下,探測器的位置放置于程序塊的第一個可執行語句之前、有標號的可執行語句處、entry語句的前后、循環語句之后、條件語句之后、logical if語句之后、call語句之后、go to語句之后等。為方便測試的實現和管理,往往將探測器以函數調用的方式插入,并依據測試的目的不同將探測器分為不同類別,例如線性塊探測器、分支探測器、模塊探測器、時間探測器等。

  按照插樁實現的方式,主要有硬件采集方式的插樁、硬件收發方式的插樁以及純軟件方式的插樁。

  3.1 硬件采集方式

  硬件采集方式的插樁測試,需要在程序執行到插樁點時,通過外接的硬件采集器從目標板總線采集總線信號,并傳輸到測試用的計算機(以下稱為宿主機),進而進行測試分析,是一種硬件與軟件相結合的測試方法。其具體實現過程如圖1所示。

  圖1 硬件采集方式的插樁實現過程

  1) 預處理器對源代碼進行預處理,如去掉注釋行,將宏定義進行語義展開,生成中間代碼;插樁器對中間代碼進行插樁,生成插樁后的代碼,并建立符號數據庫以保存插樁標記等信息[4]。

  2) 插樁后的代碼通過編譯器翻譯成匯編代碼,匯編代碼通過匯編器翻譯成可重定位目標文件,可重定位目標文件再通過鏈接器進行鏈接,生成可執行目標文件。

  3) 可執行目標文件通過加載器加載到目標板中運行,當運行到探測點時,數據采集器讀取目標板上控制總線的控制信號、地址總線的地址信號和數據總線的數據信號,并將原始的測試數據傳送到宿主機,宿主機對原始測試數據進行處理生成初級測試數據。

  4) 測試數據管理器依照插樁標記等信息,對測試數據進行比較處理,得出最終的測試數據,如覆蓋率信息、控制流信息、數據流信息以及效率特性等性能信息。

  3.2 硬件收發方式

  硬件收發方式的插樁是采用軟硬件結合的方式,利用目標板上的通信資源,在軟件源代碼上插入包含程序運行狀態的信息記錄及其發送指令的探測器,在運行到插樁點時將測試數據傳輸到測試工具或宿主機上,進而進行測試分析的一種方法。硬件收發方式的插樁實現過程如圖2所示,由于插入的探測器中含有發送程序運行狀態的信息記錄的指令,當運行到探測點時,可以直接通過物理通道將原始測試數據發送到測試工具或宿主機,不需要通過數據采集器來采集總線上的各種信號,大大降低了數據獲取的難度和成本。

  圖2 硬件收發方式的插樁實現過程

延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: 安全性 計算機 嵌入式 軟件測試 技術指標

21/212>

關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97