石宇輝
(南京工業(yè)大學 江蘇省南京市 211816)
嵌入型計算機系統(tǒng)系統(tǒng)軟件檢測科技也和計算機技術(shù)有關(guān)。由于嵌入型計算機系統(tǒng)的構(gòu)成主體包括控制系統(tǒng)、應(yīng)用領(lǐng)域、移動通訊、數(shù)據(jù)庫系統(tǒng)等。再加上良好的可靠性,因此嵌入型計算機系統(tǒng)也獲得了眾多應(yīng)用領(lǐng)域的廣泛認可。同時由于其使用范圍的擴展,對軟件系統(tǒng)品質(zhì)和性能也提出了更高的要求。嵌入型計算機系統(tǒng)系統(tǒng)軟件品質(zhì)的檢測首先取決于嵌入型計算機系統(tǒng)系統(tǒng)軟件檢測。所以,在當今人類普遍追求軟件系統(tǒng)質(zhì)量效益的社會今天,對應(yīng)用軟件系統(tǒng)檢測科技的要求也在日益提高。在整個現(xiàn)代信息社會環(huán)境過程中,嵌入型的計算機系統(tǒng)系統(tǒng)軟件中往往又需要同時有這樣一種龐大的而又復(fù)雜的計算機軟件系統(tǒng)來協(xié)助解決各種復(fù)雜系統(tǒng)的問題。所以,研究掌握嵌入式系統(tǒng)計算機軟件測試方面的基本核心技術(shù)和核心關(guān)鍵軟硬件技術(shù)問題是相當十分的必要的。
所以說嵌入式系統(tǒng)技術(shù)其實也是屬于“專用”的嵌入式計算機技術(shù),但同時由于這種嵌入式的計算機技術(shù)本身也是專為一個專門的應(yīng)用領(lǐng)域而所發(fā)展產(chǎn)生起來的,如網(wǎng)絡(luò)、工業(yè)、電視等。所以嵌入式計算機系統(tǒng)也是一個特殊的嵌入式操作系統(tǒng)。它以計算機科學為核心,體現(xiàn)了對應(yīng)用領(lǐng)域操作系統(tǒng)的嚴苛需求,使設(shè)計功用變得更加多種多樣,并為處理各種應(yīng)用領(lǐng)域操作系統(tǒng)的特殊要求創(chuàng)造了機會。但鑒于嵌入式計算機操作系統(tǒng)的特點,其對專用功用的滿足也具有極為嚴苛的技術(shù)條件。所以,在計算機軟件、硬件等方面上,都需要通過對嵌入式技術(shù)加以特殊處理,來達到更有效的解決應(yīng)用需求,以便于嵌入式計算機操作系統(tǒng)得以更加深入普及。
軟體測試系統(tǒng)的設(shè)計主要目的之一就是用于捕捉、執(zhí)行代碼和分析代碼運行中可能的某些重大錯誤。而經(jīng)過了這次試驗,將更加能夠進一步明顯的提高了軟件系統(tǒng)使用的系統(tǒng)可靠性水平和運行穩(wěn)定性,為今后設(shè)計和工作改進提供了實物參照樣本和理論基礎(chǔ)資料。同其他軟件一樣,由于內(nèi)嵌軟件系統(tǒng)有著很大的專有性,所以需要在專門的軟硬件基礎(chǔ)網(wǎng)絡(luò)平臺上實現(xiàn)。另外,由于目標電腦與主機之間在處理器結(jié)構(gòu)和操作系統(tǒng)等方面也往往存在不同,這就決定了內(nèi)嵌軟件系統(tǒng)研發(fā)的復(fù)雜度。而我這里通常所說中的長主機器就主要還是指各種普通小型計算機系統(tǒng),如小型工作站、微機等,而長目標機的實際主要功能用途則只能是用以嚴格來區(qū)分嵌入式操作系統(tǒng)中所說的長主機。而即使按照我們目前的教學實踐的發(fā)展的狀況,嵌入式的計算機軟件與測試開發(fā)技能課程也早已成功應(yīng)用到了汽車智能化、空空導(dǎo)彈、電子工業(yè)等領(lǐng)域。隨著新一代信息技術(shù)及其應(yīng)用技術(shù)范圍領(lǐng)域的進一步不斷深化擴大,其安全檢測防范功能也必將被逐步擴大。
嵌入式計算機軟件是一個帶有高度自主操作能力的載體,能夠完成嵌入式計算機系統(tǒng)所特有的功能。它由微處理器、控制器、傳感器、定時器、內(nèi)存管理等基本模塊所構(gòu)成。專有功能是嵌入式電腦與傳統(tǒng)電腦最大區(qū)別的主要表現(xiàn)。它包括了監(jiān)視、數(shù)據(jù)管理、移動運算、信息處理等功能類型,已成為電子產(chǎn)品智能化的關(guān)鍵。但通常,嵌入式計算機軟件主要有二個類別,即單純的嵌入式系統(tǒng)和復(fù)雜嵌入式系統(tǒng)。顧名思義,簡易型功能較單一,以單片機為典型代表。反之,復(fù)雜計算機則擁有和一般計算機系統(tǒng)相同的各種功能。當然,它也不同于一般的計算機系統(tǒng)。嵌入式計算機系統(tǒng)增加了嵌入式操作系統(tǒng)和應(yīng)用軟件,使計算機功能更加完整。
嵌入式電腦應(yīng)用軟件往往有特定的功用與特性,因此要求多樣化的環(huán)境。所以,嵌入式計算機系統(tǒng)一般鏈接著二種主體設(shè)備,即主機和目標機,它們是嵌入式計算機系統(tǒng)的主要應(yīng)用平臺和目標操作系統(tǒng)平臺。而嵌入式計算機軟件測試的工作原理則是首先用計算機系統(tǒng)對應(yīng)用軟件進行初始編譯,接著再在目標計算機系統(tǒng)上下載已編譯好的應(yīng)用軟件,進而進行數(shù)據(jù)傳輸,以指導(dǎo)軟件操作。但在實際操作中,軟件檢測并沒有如此容易。因為主機一般從事使用運行系統(tǒng)開發(fā)軟件,而目標電腦一般從事向主機接收數(shù)據(jù),所以檢測必須在目標主機與操作電腦之間進行,這就提高了檢測的難度。也因為目標主機對硬件和配置的需求明顯小于目標電腦,這就降低了檢測的成本,所以目前的研發(fā)人員正在進一步探討,期望實現(xiàn)未來檢測也可以在主機上進行,讓測試過程變得更加經(jīng)濟簡單。
在嵌入式軟件系統(tǒng)研發(fā)與測試過程中,隨著應(yīng)用軟件達到了對計算機系統(tǒng)軟硬件功能的相互依賴性,內(nèi)嵌網(wǎng)絡(luò)操作系統(tǒng)、底層驅(qū)動程序與應(yīng)用中間的界限已相對不清晰。只要正確模仿了被測應(yīng)用軟件的現(xiàn)實工作環(huán)境,方可進行應(yīng)用程序測試、錯誤檢查及故障測試等活動。但目前,在應(yīng)用嵌入式軟件完成不同的應(yīng)用測試任務(wù)的過程中,主要面臨著如下問題:
在計算機網(wǎng)絡(luò)管理系統(tǒng)中,通過嵌入式軟件系統(tǒng)對固定任務(wù)實現(xiàn)信息資源分發(fā)和計算運行。這樣,如果執(zhí)行程序添加到計算機中,就需要完全確定為軟件功能提供服務(wù)的試驗項目。但是,由于嵌入式軟件計算復(fù)雜性高、繼承性較差,在應(yīng)用軟件任務(wù)過程中的試驗項目持續(xù)時間長,資料耗費量大,嚴重影響了對應(yīng)用軟件的分析與試驗。
開發(fā)的嵌入式軟件大小通常小于數(shù)百MB,但必須包圍著使用驅(qū)動程式和檢測程式,對檢測軟件系統(tǒng)的速度反饋、異步電動并發(fā)管理和容錯管理等展開全面的分析與檢測,因為軟件測試項目過多,所以很容易產(chǎn)生嵌入式軟件崩潰或出錯的問題。
計算機軟件測試中的數(shù)據(jù)信號傳遞,包括與多個專用設(shè)備的連接,在嵌入式硬件或輔助設(shè)施的應(yīng)用軟件設(shè)備還沒有全部到位前,被測應(yīng)用的軟件系統(tǒng)就很難進入測試用例并截獲輸出數(shù)據(jù),因此目標應(yīng)用的測量結(jié)果也就沒有可靠性。
20 世紀90 年代開始,中國引進了嵌入式軟件檢測理論與測試方法,對軟件檢測工具的自動測試方法也予以了更多的重視與深入研究。目前,中國各大院校、網(wǎng)絡(luò)科研院所和通信公司主要使用國外公司的嵌入式軟件測試工具和軟件測試技術(shù),進行嵌入式語言的編譯、自動測試和管理。北京航空航天研究院發(fā)展的GESTE 嵌入式軟件,能夠針對不同的計算機和網(wǎng)絡(luò)軟件使用場景,從服務(wù)器硬件驅(qū)動層、計算機操作系統(tǒng)下層、軟件應(yīng)用層等維度上,實現(xiàn)更為個性化的前端處理、任務(wù)識別,以及多任務(wù)運算。不過總的來說,中國國內(nèi)嵌入式軟件測試水平和國外比還是有一些差異。計算機嵌入式軟件操作系統(tǒng)的具體實現(xiàn),與計算機設(shè)備、I/O設(shè)置、輸入/輸出信息等內(nèi)容有關(guān)。嵌入式軟件在計算機軟件測試中的應(yīng)用,通常包含二個測試方法:黑盒測試和白箱試驗。黑盒測試是一個根據(jù)需要的測試方法,包含語言靜態(tài)解析、代碼分支點覆蓋以及數(shù)據(jù)流測試。白盒試驗是一個基于結(jié)構(gòu)的試驗。為提高計算機代碼的覆蓋率,有必要對各種主機平臺應(yīng)用軟件進行檢測,并進行對嵌入式軟件的響應(yīng)時限、訪問速度以及對移動增值業(yè)務(wù)的合理限制。但是,由于各種應(yīng)用軟件規(guī)模和復(fù)雜性的日益增加,應(yīng)用軟件質(zhì)量問題也在逐漸增多,所以,只有進一步改善嵌入式軟件的檢測品質(zhì),才能適應(yīng)各種計算機軟件測試與認證的需求。
4.1.1 靜態(tài)測試
簡而言之,靜態(tài)測試技術(shù)是指一種用于自動的檢測和自動捕獲錯誤信息的測試軟件,邏輯程序嚴密,編制標準也嚴格,它首先是要針對傳統(tǒng)軟件手工檢測結(jié)果的各種缺點問題而自動產(chǎn)生出來的。靜態(tài)測試技術(shù)采用的自動測試技術(shù)方法首先是要為各種嵌入式的計算機軟件系統(tǒng)分析各種數(shù)據(jù),整合各種數(shù)據(jù)的分析計算結(jié)果,并據(jù)此自動生成跟蹤的其程序源代碼,最后,根據(jù)其源代碼來繪制嵌入式系統(tǒng)軟件中的程序邏輯圖式和建立相應(yīng)程序的程序結(jié)構(gòu),靜態(tài)測試技術(shù)測量的數(shù)據(jù)精度大大高于一般手動軟件測試技術(shù),其中另一個主要原因也是因它還具有圖形的轉(zhuǎn)換編輯功能,可以用來轉(zhuǎn)換已繪制完成的二維框架圖型和流程圖。此外,高效測試也是靜態(tài)測試新技術(shù)獨有的一項特點,因為這種靜態(tài)測試的技術(shù)基礎(chǔ)是一種基于大數(shù)據(jù)理論的,它幾乎可以達到在幾乎不重復(fù)逐個測試所有運行機器信息的情況前提下精確判斷運行系統(tǒng)之間的時間誤差,大大的縮短了系統(tǒng)檢測的時間,實現(xiàn)出了一個高效率系統(tǒng)的檢測。以上這些足以進一步證明,靜態(tài)測試新技術(shù)的迅速出現(xiàn)極大優(yōu)化改善了傳統(tǒng)軟件靜態(tài)測試方法的設(shè)計方式,滿足了企業(yè)當前靜態(tài)軟件設(shè)計測試方面的一系列不同功能需求。
4.1.2 動態(tài)測試
嵌入式測試計算機軟件穩(wěn)定的連續(xù)運行能力是能夠?qū)崿F(xiàn)動態(tài)嵌入式測試系統(tǒng)技術(shù)實現(xiàn)的關(guān)鍵必要條件,也是實現(xiàn)動態(tài)嵌入式測試系統(tǒng)技術(shù)實現(xiàn)與傳統(tǒng)靜態(tài)嵌入式測試系統(tǒng)軟件技術(shù)實現(xiàn)的關(guān)鍵區(qū)別條件之一。動態(tài)跟蹤測試技術(shù)它的核心功能原理即是通過將系統(tǒng)實際可開發(fā)運行目標數(shù)據(jù)與用戶預(yù)期的開發(fā)性能目標數(shù)據(jù)進行靜態(tài)比較,檢測到兩者結(jié)果之間潛在的技術(shù)差距,分析找出兩者結(jié)論之間隱藏的測試內(nèi)容差異,從而進一步確定所測試目標對象項目的測試質(zhì)量控制和最佳運行控制效果,為用戶提高產(chǎn)品其整體性能價格比提供決策參考及依據(jù)。動態(tài)測試新技術(shù)的大規(guī)模成功落地實施通常需要單元性能測試、集成測試、系統(tǒng)性能測試、驗收性能測試等多種測試模式的技術(shù)支持,這些技術(shù)測試之間緊密的相連,呈現(xiàn)出著層層交叉聯(lián)動、層層遞進發(fā)展的良好趨勢。在實際的檢測與動態(tài)性能測試等技術(shù)過程中,我們可以主要去關(guān)注測試軟件代碼,通過動態(tài)性能測試基本性能測試,以大致了解一下其測試執(zhí)行強度。動態(tài)測試分析技術(shù)還具有多種測試功能,不僅只可以動態(tài)檢測出軟件缺陷,還同時可以自動分析出軟件的設(shè)置。此外,動態(tài)測試數(shù)據(jù)分析技術(shù)同時還可以動態(tài)幫助進行軟件功能開發(fā),測試出軟件功能內(nèi)容,顯示出具體系統(tǒng)的硬件內(nèi)存配置,最終試驗證明了它還可以在短期內(nèi)極大方便地來促進整個嵌入式微型計算機軟件系統(tǒng)結(jié)構(gòu)的快速優(yōu)化。
4.2.1 數(shù)據(jù)獲取
嵌入式計算機軟件模擬器測試軟件通常至少需要有兩個最重要的因素:源代碼和數(shù)據(jù),模擬器的測試開發(fā)技術(shù)通常也不應(yīng)例外。源代碼都是開發(fā)人員在整個軟件測試設(shè)計工作過程中直接生成來的,很容易地獲得。獲取虛擬的I/O 數(shù)據(jù)源代碼通常也比直接獲取實際I/O 數(shù)據(jù)要更顯困難。此外,模擬測試技術(shù)其實也是用來幫助計算機獲取關(guān)鍵數(shù)據(jù)信息的又一種新方式,它本身的數(shù)據(jù)合理地使用就可以首先保證關(guān)鍵數(shù)據(jù)信息內(nèi)容的真實完整性,然后才能將該數(shù)據(jù)信息正確保存起來并用各種測試轉(zhuǎn)換工具去進行數(shù)據(jù)轉(zhuǎn)換,從而真正為關(guān)鍵數(shù)據(jù)信息真正的有效輸入和打開數(shù)據(jù)通道,保證關(guān)鍵數(shù)據(jù)信息有效的正確地輸入。輸入正確數(shù)據(jù)內(nèi)容后,即可正常進行測試。最終在測試任務(wù)完成結(jié)束后,緩存上的所有數(shù)據(jù)信息便可以及時保存?zhèn)鬏數(shù)狡渌嬎銠C系統(tǒng)環(huán)境中以提供使用者后續(xù)操作參考,但更值得注意一點的事情是,信息數(shù)據(jù)存儲通常需要占據(jù)大量系統(tǒng)內(nèi)存,因此在開展模擬檢測技術(shù)測試活動之前,設(shè)備中必須確保具有一個足夠充裕的信息緩存空間容量,以能夠使技術(shù)軟件和測試驗證工作更加順利有效進行。
4.2.2 仿真測試
嵌入式計算機軟件測試仿真軟件是一個以計算機局域網(wǎng)技術(shù)為設(shè)計背景,將嵌入式計算機仿真測試設(shè)備中所有的仿真數(shù)據(jù)信息集中起來,然后對數(shù)據(jù)進行管理和處理的一種數(shù)據(jù)處理系統(tǒng)。目前,仿真測試評估技術(shù)一般分為仿真分析技術(shù)方法和仿真檢測評估方法控制方法技術(shù)等兩大類。模擬測試的技術(shù)上也有它其所獨特具備的許多特點,如數(shù)據(jù)的模擬,只有建立在一個特定的模擬技術(shù)條件下才能成功實現(xiàn)。仿真測試技術(shù)可以通過對兩個不同層次的測試對象之間進行的數(shù)據(jù)交互仿真。由于測試不同時對象本身的物理性質(zhì)有不同,可以通過將測試數(shù)據(jù)模擬分為好多種的類型,以來確保模擬測試中能夠同時得到更加真實而可靠穩(wěn)定的數(shù)據(jù)結(jié)果,仿真測試中數(shù)據(jù)可能是比較實時傳輸?shù)?,但其實現(xiàn)傳輸?shù)氖滓疤崛匀皇菧y試信號本身在被檢測的過程中都必須實時穩(wěn)定進行傳輸。
內(nèi)存分配錯誤將是導(dǎo)致嵌入式系統(tǒng)計算機軟件高頻故障的兩個主要原因之一。一旦軟件出現(xiàn)內(nèi)存分配錯誤,下一個分發(fā)程序?qū)⒔K止,因此無法完全保證所分配數(shù)據(jù)信息的完整性和有效性。為了全面解決上述三個問題,記憶分析和測試技術(shù)無疑起著關(guān)鍵作用。內(nèi)存分析與測試技術(shù)也是檢測軟件內(nèi)存正確分配錯誤的重要關(guān)鍵測試技術(shù)。由于大多數(shù)嵌入式計算機系統(tǒng)占用的內(nèi)存較少,內(nèi)存分析等技術(shù)更有利于計算機快速發(fā)現(xiàn)因系統(tǒng)內(nèi)存分配結(jié)構(gòu)不足而導(dǎo)致的性能問題,而使用內(nèi)存分析技術(shù)可以根據(jù)具體情況隨時解決實際問題,這將大大降低嵌入式計算機軟件中的硬件故障頻率。內(nèi)存分析的方法一般要分為軟件性能分析法和硬件效能分析,其中,硬件故障分析方法是其中一種較常用的硬件內(nèi)存異常檢測診斷方法,但同時這種新方法在實踐中也普遍存在著研究耗時比較長、成本要求高等諸多缺點,此外,在計算機某些工作環(huán)境設(shè)置中,分析檢測工具有時無法正確發(fā)揮正常作用,這都可能會因此導(dǎo)致計算機代碼錯誤或造成內(nèi)存異常操作導(dǎo)致阻塞內(nèi)存等重大問題。因此,在記憶分析的過程中,選擇合適的方法,以滿足不同測試的需要,提高測試的準確性是非常重要的。
性能分析檢測技術(shù)一直是當前嵌入式系統(tǒng)計算機軟件測試技術(shù)關(guān)鍵檢測技術(shù)環(huán)節(jié)中一種不可或缺的軟件測試技術(shù),其測試主要目的測試的對象仍然是整個系統(tǒng)性能,嵌入式計算機系統(tǒng)軟件整體的穩(wěn)定優(yōu)良工作性能始終是能夠?qū)崿F(xiàn)嵌入式系統(tǒng)長期正常有效運行功能的最決定性因素。軟件用戶通常可以很直接的感受到嵌入式計算機系統(tǒng)軟件本身的工作性能,因此有時我們或許可以直接對其硬件質(zhì)量性能做出一個膚淺的性能判斷,但應(yīng)該如何來深入去理解和全面分析整個嵌入式的計算機系統(tǒng)軟件本身的質(zhì)量性能,此時性能分析的技術(shù)便可以全面發(fā)揮重要作用。性能跟蹤分析檢測技術(shù)同時也就可以用來進一步地幫助嵌入式系統(tǒng)軟件可靠性維護測試工作過程中的各項正常運行順利保持和高效開展,為其對以后對系統(tǒng)軟件系統(tǒng)的各項性能和維護可靠性測試研究工作能夠繼續(xù)推進提供一些重要信息支持,因為以后用了它就也就是可以能夠真正的深入和參與投入到開發(fā)嵌入式軟件系統(tǒng)過程工作中,對嵌入式系統(tǒng)軟件系統(tǒng)面臨的系統(tǒng)各項系統(tǒng)資源的投入成本和各項系統(tǒng)時間成本等消耗性問題及時進行全系統(tǒng)和具體地跟蹤檢測分析,發(fā)現(xiàn)主要原因問題并給予快速解決該安全問題,從而將進一步地實現(xiàn)嵌入式軟件系統(tǒng)性能基礎(chǔ)上進一步的安全與高效擴展與功能提升,保持了嵌入式計算機系統(tǒng)軟件可靠性方面的高質(zhì)量。
嵌入式微型計算機軟件測試完全依賴起于軟件主機和軟件測試目標之間的兩個共同的作用,主機負責發(fā)送測試的數(shù)據(jù)信息,目標系統(tǒng)主要則負責接收這些數(shù)據(jù)信息,然而,為了最終達到軟件測試要求的高度準確性,計算機軟件的運行測試期間的各項設(shè)置也需要通過借助手動來設(shè)置,以便程序能夠真正按照自己設(shè)置好的工作時間范圍和測試模式運行。然而,故障自動注入系統(tǒng)技術(shù)仍有一些其應(yīng)用特殊性,有時我們需要人工將一個嵌入式的計算機軟件上的包含某些特殊功能模塊的系統(tǒng)故障自動注入一個目標機,這將對注入目標機所用的計算機組件質(zhì)量可靠性和工作性能要求會非常地高,這樣很容易觀察目標機的運行并記錄目標機的實際故障,但以這種方式觀察和分析目標計算機的操作也很方便。
本文內(nèi)容首先就簡要系統(tǒng)地介紹到了嵌入式的計算機軟件測試,然后系統(tǒng)分析探討了嵌入式主機測試和嵌入式目標機軟件測試應(yīng)用的各種關(guān)鍵檢測技術(shù)??傊?,在實際嵌入式的計算機軟件測試系統(tǒng)中,只有注意將各種動態(tài)的測試分析技術(shù)方法與計算機靜態(tài)的測試處理技術(shù)方法相結(jié)合,保證計算機測試系統(tǒng)環(huán)境設(shè)計的動態(tài)嚴格性,才能最終保證了測試處理數(shù)據(jù)獲取的高準確性。必要時,還應(yīng)需要計算機仿真及測試相關(guān)技術(shù)力量的直接支持幫助和間接協(xié)助,實現(xiàn)了對各種計算機軟件錯誤的快速全面分析檢測,以便可在系統(tǒng)第一時間地發(fā)現(xiàn)各計算機軟件程序中常見的常見錯誤代碼,及時的采取各種相應(yīng)形式的錯誤保護和措施,最大限度的地有效提高各類計算機軟件應(yīng)用開發(fā)環(huán)境的使用質(zhì)量。
嵌入式計算機與人們的日常生產(chǎn)生活息息相關(guān),是不可替代的。其功能的充分發(fā)揮為人們提供了極大的便利,特別是在飛機飛行控制器和日常家用電器中,嵌入式計算機軟件被引用。隨著信息技術(shù)的飛速發(fā)展,嵌入式技術(shù)變得越來越復(fù)雜。我們必須在使用過程中進一步更新和完善嵌入式技術(shù),確保嵌入式技術(shù)的長期穩(wěn)定發(fā)展,同時,應(yīng)進行軟件測試,以提高計算機軟件的可靠性和堅固性。