嵌入式計算機軟件測試關鍵技術研討論文
摘要:嵌入式計算機是計算機行業中一種比較先進的計算機技術。隨著科學技術的不斷發展,嵌入式計算機的使用范圍也越來越廣,在嵌入式計算機使用的過程中,能夠有效地保證對需要的功能的實現。但是,由于嵌入式計算機軟件的結構相對于其他類型的計算機來說比較復雜,這就要求我們要能夠按照使用需要,及時對嵌入式計算機軟件技術進行測試。文章根據現階段嵌入式計算機與嵌入式計算機軟件的概念,針對開發使用的技術進行分析,找出如何使用相關的技術對嵌入式計算機的軟件進行測試。
關鍵詞:嵌入式;計算機軟件;測試;關鍵技術
前言
隨著我國的工業不斷地進步,科學技術的不斷發展,嵌入式計算機技術也得到了很大程度的提升。我們身邊普通的計算機并不是嵌入式計算機,嵌入式計算機指的是專門針對某一個項目或者是某一個行業進行開發的專業計算機。嵌入式計算機不僅僅能夠實現對需求開發的功能,有效地提升工作的效率。嵌入式軟件是嵌入式計算機中安裝的軟件,一般情況下,嵌入式軟件都需要根據不同的工作需要,完成相應的功能,這就要求嵌入式軟件要具備一定的穩定性,對嵌入式計算機軟件進行測試,能夠很好地保證嵌入式軟件的正常工作。
1什么是嵌入式計算機
嵌入式計算機指的是針對某一種技術,或者是某一種網絡、某一種功能等專門開發的計算機系統,利用計算機技術,加入嵌入式系統,能夠實現對計算機硬件和軟件功能的增多,能夠更加適合實際運用的需要。嵌入式計算機針對某一種功能的需要進行開發,對開發的成本、功能的可靠性以及計算機的大小等因素,都有十分嚴格的要求。通過對計算機處理器、硬件、系統、應用等進行嵌入式技術的操作,能夠更加有效地保證計算機技術的實現。嵌入式計算機大多被應用在工業生產中,能夠提升工作效率,保證工作的質量[1]。
2什么是嵌入式計算機軟件
嵌入式計算機軟件指的是在嵌入式計算機中使用的軟件,能夠進行獨立功能的操作,嵌入式計算機軟件包括嵌入式微處理器、傳感器、控制器、定時器、儲存器等等。在嵌入式計算機中使用的電子芯片或是電子器件,將嵌入式計算機軟件安裝到嵌入式計算機中,能夠有效地實現常規計算機不具備的功能,比如:實時監控功能、對設備的管理功能、數據處理功能、進行移動計算等等,真正地實現了現代化自動化的電子處理,是實現現階段自動化與智能化的社會生產力的重要途徑,嵌入式計算機軟件就是自動化的核心部分[2]。我們可以將嵌入式計算機軟件分為:簡單嵌入式系統和復雜嵌入式系統兩種。簡單的嵌入式系統只能夠完成一項功能,比較典型的簡單嵌入式系統就是單片機。單片機通過ROM技術就能夠實現對系統的使用,能夠達到對程序控制的目的。復雜嵌入式系統的功能與普通的計算機系統功能并沒有什么過大的區別,只不過在復雜的嵌入式系統中,安裝了一些微型的嵌入式操作系統,以及嵌入式應用軟件在計算機中,能夠使計算機的功能得到相應的完善,這就是嵌入式計算機軟件的作用[3]。
3什么是嵌入式計算機軟件的測試
嵌入式計算機軟件相比普通的計算機軟件來說,更具有專業性,嵌入式計算機軟件只能夠在某一個制定的平臺或者系統中運行。但是嵌入式計算機軟件的開發環境與運行的環境還存在很大的差異,不能夠使用同一網絡環境。嵌入式計算機軟件需要使用交叉開發的形式,在進行開發的計算機中,安裝并運行開發工具,開始對軟件進行編譯,再將編譯完成的軟件通過下載的方式,將軟件發送到目標計算機中,當開發計算機與目標計算機都有了嵌入式軟件,就能夠建立通訊連接,并且能夠對軟件下達命令、下載數據等等。兩臺計算機的操作系統不同,計算機的處理器也有著一定的差異,這樣的方式會增加嵌入式軟件開發過程的步驟,增加了開發步驟的復雜性[4]。我們將對嵌入式軟件進行開發的計算機稱為宿主機,對軟件進行接收并運行的稱為目標機。宿主機對使用開發工具,利用宿主機的操作系統對計算機軟件進行開發,通過通信連接將計算機軟件發送到目標集中,盡管這一系列的操作看似很簡單,但是卻需要強大的系統和硬件的支持。在這種形式下進行運行的嵌入式計算機軟件開發的活動,一般情況下,宿主機都是我們平時工作生活中使用的通用計算機,也可以是開發微機或者是軟件工作站等等。目標機與宿主機不同,目標機能夠承載宿主機開發的嵌入式計算機軟件的運行,將嵌入式計算機軟件安裝在目標機中,就能夠實現嵌入式軟件的功能[5]。
4對嵌入式軟件測試關鍵技術進行研究
4.1對宿主機進行測試的技術研究
宿主機指的是對嵌入式軟件進行開發的計算機,對宿主機進行測試的方式有兩種,即靜態測試與動態測試兩種,這兩種方式使用的是代碼邏輯的方式對宿主機進行測試。
4.1.1靜態測試技術很多計算機軟件開發的專家,在對計算機軟件進行檢測的時候,通常使用的都是人工檢查的方式,由設計人員組成一個小組,小組的成員之間互相交流對軟件開發使用了哪些程序、使用的是什么算法進行的計算,并交代設計數據與軟件的模塊之間有什么樣的關系等。這樣的方式雖然能夠在一定程度上找出軟件中是否存在相關的問題。但是,由于現階段嵌入式計算機軟件的結構越來越復雜,設計的步驟越來越繁瑣,軟件設計的規模也在逐漸擴大,這就要求在一款軟件的設計過程中,可能會有很多的軟件設計師、工程師等一起參與到軟件的開發工作當中,每個工作人員的分工也大有不同,再使用從前的方式對軟件進行檢查,就會加重檢查工作的負擔[6]。這就要求我們,要根據現階段的計算機軟件開發的實際情況,找出最合適現階段軟件開發的檢測技術,對原始的計算機軟件的檢測工作進行優化升級,能夠使計算機軟件的檢查工作更加簡便。在檢查的過程中,加入適當的檢測技術,先對整個嵌入式計算機軟件的開發軟件系統框圖進行整理,并且對其設置自動連接的相關量,軟件的源代碼編程能夠通過自動化技術進行查找。這樣的方式能夠使軟件審查工作的工作效率有很大的提升,能夠使驗證工作的結果更加準確有效。我們可以通過靜態測試的方式,得到軟件中相關信息[7]。
。1)軟件的源代碼程序繪制過程的.邏輯圖,以及對軟件進行控制的工作流程。
。2)軟件系統完整的邏輯框圖,系統內部關系調節的網絡圖。
。3)軟件程序運行的路徑分析圖。
(4)軟件生成的不同部分的顯示圖。
。5)軟件不同部分顯示圖的位置信息,操作的頻率等信息。這些信息都能夠在靜態測試中得到實現,首先要使用靜態測試的系統對軟件的操作邏輯和控制系統進行分析,能夠有效地將軟件分析的更加精確,在進行軟件測試的過程中,能夠使測試的結果更加準確,并且能夠將測試結果更加精準的表現出來,檢測出軟件系統中是否存在相關的問題,并以此對軟件的系統進行改善。
4.1.2動態測試技術對宿主機的動態測試主要指的是對軟件的代碼進行測試,能夠有效地檢測出代碼的執行能力,并且分析軟件代碼的覆蓋率,能夠有效地檢測出軟件的功能。能夠有效地了解到軟件的性能,還能夠通過分析更加了解軟件中代碼的執行情況,這樣的檢測方式能夠促進對軟件系統的改進,推進了軟件系統的發展,可以根據檢測的結果,對軟件的功能進行優化和完善[8]。動態測試技術還能夠對軟件設置的完成程度進行測試,能夠對其中已經開發完畢的數據進行檢測,檢查其中是否存在缺少的數據,這樣的方式能夠為軟件的開發工作提供重要的依據。動態測試技術能夠將軟件中的每個函數的情況,以及對內存的分配情況等進行檢測,能夠將軟件中各種元素的分配情況進行顯示,并且能夠同時對相對應的數據、代碼、函數等進行顯示。
4.2對仿真機進行測試的技術研究
仿真機作為宿主機與目標機之間重要的環節之一,通過仿真機的使用,能夠有效地完善計算機軟件測試的功能以及軟件自身的性能,比對宿主機的測試更加直觀、更加真實,并且能夠對軟件中主要的技術進行仿真測試,使測試的結果更具有說服力。其測試的結果既能夠作用于宿主機,還能夠作用于目標機。
4.2.1仿真機測試數據獲取技術現階段,針對仿真機的數據監測,一直都是技術上很難實現的問題之一,很多對嵌入式軟件的檢測都需要在測試的過程中先提供軟件設計的源代碼,這樣的方式需要使用的數據量比較大,這就要求我們要針對這類數據的準確性進行技術的提升,才能夠保證檢測數據的精準性。仿真機監測技術能夠從一定程度上保證數據信息的完整性,在對數據進行完全的緩存后,再使用測試工具進行修改,能夠從很大程度上保證數據的正常輸入,在測試結束之后,還能夠對已經進行緩存的數據進行讀取,并將數據整理保存到計算機中。但是,需要注意的是,使用這種方式進行測試,還要保證數據緩存的大小不會超過測試的容量,測試才能夠順利的運行[9]。
4.2.2仿真機仿真測試技術對嵌入式計算機軟件進行仿真測試,能夠在測試的過程中,對數據進行集中地管理和處理。仿真測試需要一定的技術支持,能夠將數據進行仿真模擬,在模擬的過程中,能夠看到技術的使用過程,再按照每款軟件不同的性質,分類仿真,使測試的結果更加真實可靠。還要保證在對數據的檢測過程中,傳輸信號是能夠穩定運行的,才能夠保證仿真測試的數據是實時的。
4.3對目標機進行測試的技術
目標機相對于其他部分來說,在測試的過程中,更需要注意目標機的綜合能力,還要能夠測試軟件自身的交互能力,并且測試軟件是否安全可靠,目標機測試的結果能夠更加真實地體現計算機軟件的性能[10]。
4.3.1故障注入技術嵌入式計算機軟件在計算機中運行的狀態,可以通過人為的方式進行設置。但是,這就要求目標機的部件能夠具備一定的功能,能夠按照設置的時間、設置的運行方式等進行運作。故障注入技術指的是在目標機中,通過對某一部分的測試,能夠更加有效地檢驗目標機中的性能,比如:魯棒性測試、邊界測試等等。使軟件在運行時的狀態能夠表現的更加明顯。
4.3.2內存分析技術嵌入式計算機的系統,一般情況下內存都會比較小。使用內存分析技術,能夠有效地保證在分析的過程中,找出計算機內存存在的問題。在問題的分析過程中,能夠防止內存中的某些內存會產生分配錯誤的問題,很多的計算機軟件故障都是因為內存分配的錯誤造成的。這就要求我們要通過內存分析的技術,來對內存進行判定。一般情況下,我們都會選擇硬件的方式進行分析,但是硬件分析的方式需要耗費的資金比較多,而且分析工具具有一定的環境限制,但是軟件分析會對計算機的代碼產生一定的影響,并且會影響內存的運行。這就要求我們在進行內存分析的過程中,要能夠按照不同的情況對測試的方式進行選擇[11]。
4.3.3程序性能分析技術在嵌入式計算機運行的過程中,還有一個十分重要的因素就是程序的性能。一般情況下,嵌入式計算機對程序的性能都有一定的要求,能夠在已經設置的時間內,對某一數據進行中斷處理或者是生成處理,這就要求我們要在測試的過程中,要能夠根據實際情況決定先對那一部分的代碼進行優化,因為嵌入式計算機的優化程序的時間是很寶貴的,要盡可能地避免對一些沒有必要的程序的優化工作。使用程序性能分析技術,能夠將計算機內的數據進行整理,并按照消耗的時間,消耗的類型,消耗的歷時等進行分析。按照這些數據,能夠對計算機中的數據進行判斷,決定先對哪一部分的程序進行優化,才能夠保證對數據檢測的工作效率,保證對程序的優化是有效的。使用程序性能分析的工具,不僅僅能夠顯示計算機中每一部分的優化需要多少時間,還能夠按照需要優化的程度進行排序,引導工作人員對系統程序進行優化分析[12]。在對程序進行測試的過程中,可以先對計算機軟件中的代碼進行分析,能夠找出已經被使用的代碼,以及計算機接口的工作效率等等?梢栽跍y試的過程中使用插樁的方式進行測試,分析完畢后在可執行的代碼當中適當地融入嵌入式軟件,并將二者進行綜合測試,得到的結果就能夠明確地看出,其中的代碼哪些已經執行,哪些被遺漏,或者是哪些數據的信息覆蓋還不夠全面。需要注意的是,使用這類分析工具進行分析,很可能會影響到計算機軟件代碼的運行,導致軟件運行出現故障問題。
5結束語
嵌入式計算機與我們的生活之間的關系十分緊密,能夠產生巨大的影響,我們身邊很多部分都使用了嵌入式計算機進行功能的完成和實現,比如:飛機的飛行控制器,或者是我們家中很多的家用電器,冰箱、洗衣機等等,都在一定程度上使用了嵌入式軟件技術。隨著科學技術的進步越來越快,嵌入式技術也越來越繁瑣。這就要求我們要在不斷地使用中對嵌入式技術進行完善,對嵌入式技術進行優化升級,能夠從一定程度上保證嵌入式技術的發展,對軟件進行測試,能夠大大地提升嵌入式計算機軟件的穩定性。
參考文獻
[1]苗中華,陸鳴超,胡曉東,等.基于虛擬儀器技術的采棉機智能監控系統開發與應用[J].農業工程學報,2014,23:35-42.
[2]沈昌祥,張煥國,王懷民,等.可信計算的研究與發展[J].中國科學:信息科學,2010,2:139-166.
[3]王璞,張臻鑒,王玉璽,等.面向實時嵌入式機載軟件的測試技術研究[J].計算機工程,1998,2:12-15.
[4]王金波,張濤.基于故障注入的嵌入式軟件安全性測試框架及實現[J].計算機應用研究,2012,8:2991-2995.
[5]劉克,單志廣,王戟,等“.可信軟件基礎研究”重大研究計劃綜述[J].中國科學基金,2008,3:145-151.
[6]王守信,方天選,李麗萍,等.山西省“十二五”期間推進兩化融合及發展軟件服務業的戰略研究(續)第二篇發展軟件服務業促進山西經濟轉型跨越發展的研究[J].機械管理開發,2011,2:1-20.
[7]凌楊,邵培南,佟雷,等.基于數字化仿真環境的嵌入式軟件測試方法[J].計算機工程,2011,S1:49-51.
[8]劉斌,高小鵬,陸民燕,等.嵌入式軟件可靠性仿真測試系統研究[J].北京航空航天大學學報,2000,4:490-493.
[9]孫昌愛,靳若明,劉超,等.實時嵌入式軟件的測試技術[J].小型微型計算機系統,2000,9:920-924.
[10]榮國平,劉天宇,謝明娟,等.嵌入式系統開發中敏捷方法的應用研究綜述[J].軟件學報,2014,2:267-283.
[11]宋錫強,汪萍萍,周韶園.智能電能表軟件測試技術概述[J].電測與儀表,2014,11:18-22.
[12]宋文,于林宇,劉軍.通用嵌入式軟件測試環境在武器裝備軟件測試中的應用[J].測控技術,2005,10:65-68.
【嵌入式計算機軟件測試關鍵技術研討論文】相關文章:
8.嵌入式實訓報告