許喬娜 黎劍愛 朱轉平
摘 要:嵌入式計算機技術是當前計算機行業一種比較流行的技術,嵌入式計算機已完全融入到我們生活當中,關系十分緊密,影響十分巨大。科學技術發展,嵌入式計算機用途范圍逐漸廣泛,在使用過程中,嵌入式計算機擁有很多功能,能夠滿足客戶對不同功能的需求。但是,由于嵌入式類型計算機相比其他計算機軟件結構較為復雜,因此在使用前需要人們按照使用須知操作嵌入式計算機,并測試檢查分析嵌入式計算機軟件技術的有效性。本文介紹了嵌入式軟件的概念,讓讀者對嵌入式軟件有所了解,闡述了嵌入式軟件測試的相關技術,并利用這些技術測試檢查分析嵌入式計算機軟件。
關鍵詞:嵌入式軟件;計算機軟件;軟件測試;關鍵技術
嵌入式計算機,是針對實現某技術、某種網絡、或某種功能的計算機系統。用計算機技術,融合嵌入式系統,使計算機能夠實現的功能增多,比如計算機硬件的兼容性,和專業性較強的計算機軟件,從而滿足復雜多變的實際工程需求。如果開發某種功能需要,嵌入式計算機會對以下因素有著十分嚴格要求:開發的成本,功能需求可靠性,計算機的大小等。基于嵌入式技術,在對計算機處理器、應用、硬件、系統等進行操作的基礎上,能夠更進一步地保證計算機技術的實現。目前嵌入式軟件的現狀,被應用的行業范圍廣,尤其是工業領域,它能夠提升工作效率,保證產品的生產質量。我國工業發展迅速,進步很快,科學技術水平提高,相應的,嵌入式計算機技術水平也得到了空前的發展。我們絕大部分使用的計算機,是普通型計算機。而嵌入式計算機是一種專業性較強的計算機系統,以實現某技術或某一種網絡為目標,是一種新型的計算機系統。針對客戶要求嵌入式計算機開發出某種功能,提升工作效率。嵌入式計算機應用范圍廣,其軟件愈加復雜,所以,現在測試嵌入式計算機軟件顯得更為重要。嵌入式軟件跟普通計算機性質一樣,一般安裝在嵌入式計算機中,是自動化核心。一般情況下,根據工作需要,選擇嵌入式軟件完成相應功能,對嵌入式軟件的穩定性要求要很嚴格,測試檢查分析嵌入式計算機件,保證其能夠穩定正常工作。
2.嵌入式軟件測試方法
本文重點介紹了針對嵌入式軟件的幾種測試方法:靜態分析、軟件質量度量、性能分析、內存分析、覆蓋率分析、單元/集成測試、系統測試。
2.1靜態分析
靜態分析是一種利用測試工具對代碼進行的機械性和程序化的分析方法。靜態分析是直接對源代碼進行代碼走讀、靜態掃描和分析,不需要編譯或運行代碼,也不會受到其他缺陷和其他模塊的影響。工具舉例:PolySpace工具是一種嵌入式軟件的靜態分析工具。它包括PolySpaceBugFinder和PolySpaceCodeProver兩個模塊。PolySpaceBugFinder是靜態代碼分析軟件,可以發現C/C++代碼中的各類缺陷,包括運行時錯誤,數據流問題,編程問題等各類代碼缺陷。PolySpaceCodeProver使用抽象解釋和靜態分析方法來證明,識別和分析運行時錯誤,例如溢出,除零和指針的越界。
2.2軟件質量度量
軟件質量度量是衡量軟件是否符合需求、標準的重要體現,它的目的在于利用度量來改進軟件過程。要確保軟件的整體質量,就需要在各個環節嚴格控制。工具舉例:很多嵌入式軟件是用C或C++語言編寫,但編程語言本身并不安全,QAC/QAC++是一種代碼靜態分析工具,它的靜態分析能力包括:質量度量和軟件結構分析。
2.3性能分析
近年來,嵌入式系統被廣泛應用于汽車、家電、通信、制造等各個領域,領域間的競爭也激發了嵌入式技術的快速發展,對軟件性能分析是嵌入式開發過程中至關重要的一部分,嵌入軟件的性能分析是嵌入式環境下重要的測試方法。工具舉例:RapiTime是一種軟件運行時間評估工具:它能夠進行軟件時間性能的測量,通過分析得出最差執行時間數據,并為代碼優化提供指導。它的特點包括檢查不同的函數對于最差、最優以及平均執行時間的影響;通過大量調用來查看執行時間的變化;對于函數自身的上下文、循環以及數據塊進行分析等。
2.4內存分析
嵌入式系統的內存是有限的,但對實時性要求又很高。內存問題主要包括內存泄露、內存崩潰、內存碎片。其中內存泄露問題尤為嚴重,它會導致系統可用內存減少,甚至導致系統崩潰。現在已經有許多工具來解決內存泄露問題,如Mtrace、Memwatch、Purify等。這些工具使用庫跟蹤、動態檢測、程序插樁等技術來發現和定位內存泄露的問題。
2.5覆蓋率分析
覆蓋率測試(也成邏輯測試)是度量測試完整性和查找軟件問題的必要手段,是測試有效性的度量。覆蓋率測試的目的是確保軟件所有的程序至少被執行一次,盡可能全的覆蓋軟件程序的各個語句及其分支結構,以便發現軟件中的錯誤和問題。工具舉例:RapiCover是一款基于目標硬件的嵌入式軟件的測試覆蓋率分析工具,針對所使用的測試用例給出對應的現場測試覆蓋率信息,其插樁點的開銷極小,并能針對目標板的實際情況提供靈活的支持方式。它的特點包括:支持C、C++、Ada編程語言;極小的時間開銷;語句覆蓋,變量定義、條件判斷或循環等。
2.6單元/集成測試
嵌入式軟件的單元測試大多是在宿主機環境下進行的,只有少數情況下需要在目標機環境下進行。單元測試主要是進行白盒測試,應盡可能地測試每一個函數,每一個條件分支、每一個程序語句,提高代碼的測試覆蓋率。在單元測試完成后,接下來需要進行集成測試。集成測試又稱為組裝測試,是將各模塊合成一個組件,并測試它們間的接口。工具舉例:Tessy軟件是一款專門針對嵌入式軟件動態測試的工具。它可以對C/C++代碼進行單元測試和集成測試。
2.7系統測試
嵌入式軟件系統測試的目的與通用軟件類似,都是通過與需求做比較來發現軟件缺陷。嵌入式軟件的系統測試應綜合運行各種測試用例設計方法,并根據需求規格說明書來設計,在目標機環境下運行。
系統測試階段除了功能測試外,還應該包括意外測試、破壞性測試、性能測試等。在系統測試中,隨機測試是比較經濟有效的一種測試方法。將隨機測試結果和操作規范的要求作比較,還可以得到軟件可靠性的估計。有效地將隨機抽樣測試與其他測試技術結合可以產生更強大和更高效的測試策略。
三、結束語
綜上所述,得益于信息技術的快速發展,計算機軟硬件方面都取得較大的進步。當前,計算機硬件的發展不斷趨于穩定,但軟件方面還是時有故障發生。因此對嵌入式軟件功能測試工作還應該進行進一步的優化。嵌入式系統的應用不斷擴大,開發技術也在不斷成熟,這種方式對計算機軟件的發展大有裨益。但實際進行嵌入式軟件功能測試時仍存在一定的難度,因此需要采取一定的措施改善測試情況,并在工作實踐中對技術及工具不斷的創新和改良,以促進嵌入式軟件功能測試的有效進行。
參考文獻:
[1] 嵌入式軟件測試技術綜述[J].陳濤.電子技術與軟件工程.2017(20)
[2] 嵌入式軟件測試自動化技術研究[J].王俊凱.通訊世界.2018(04)
[3] 關于嵌入式軟件測試技術分析[J].包瑋琛.電子技術與軟件工程.2017(03)
[4] 嵌入式軟件測試環境研究[J].于慧媛,張海軍,王敏帥.科技視界.2018(21)
(作者單位:珠海格力電器股份有限公司)