軟件測試中的一種實(shí)用的嵌入式軟件測試方法研究
嵌入式系統安全性的失效可能會(huì )導致災難性的后果,即使是非安全性系統,由于大批量生產(chǎn)也會(huì )導致嚴重的經(jīng)濟損失。這就要求對嵌入式系統,包括嵌入式軟件進(jìn)行嚴格的測試、確認和驗證。隨著(zhù)越來(lái)越多的領(lǐng)域使用軟件和微處理器控制各種嵌入式設備,對日益復雜的嵌入式軟件進(jìn)行快速有效的測試愈加顯得重要。
1、引言
嵌入式計算技術(shù)在現代信息技術(shù)中的應用越來(lái)越廣泛,應用所涉及的軟、硬件系統越來(lái)越復雜,對系統軟件可靠性、健壯性及系統性能的要求越來(lái)越高。如何提高嵌入式計算系統的軟、硬件可靠性和整體性能,及如何對這些指標進(jìn)行有效測評,是目前嵌入式應用領(lǐng)域的重要課題和研究方向[1]。
2、嵌入式軟件測試方法研究的現狀
從國內外目前的嵌入式系統軟件測試研究現狀來(lái)看,對于軟件分支覆蓋率、性能分析等重要指標的獲取,無(wú)外乎采用的都是介入式[2]與非介入式[3]兩種方法之一。介入式方法主要還是采用靜態(tài)分析和產(chǎn)生可執行代碼的插樁式動(dòng)態(tài)分析等方法進(jìn)行的。而非介入式測試方法則是主動(dòng)采集被測試系統運行狀態(tài)數據并根據測試需求進(jìn)行必要的分析但不影響目標系統的運行,通過(guò)獲取目標系統運行時(shí)全部或必要的狀態(tài)信息,結合被測試目標軟件的靜態(tài)特征,來(lái)了解目標軟件的實(shí)際執行情況。但是無(wú)論采取那種測試方法,到目前為止都仍然有其各自的不足和缺陷如表1所示。
表1 兩種測試方法及測試項目對照表
從表中可以發(fā)現,對于應用比較普遍的介入式測試方法,由于人為插樁而引入的程序段誘發(fā)BUG的概率太高,給測試工作會(huì )帶來(lái)額外的工作量,因此也就間接的延長(cháng)了程序的研發(fā)周期,使研發(fā)效率大大降低。而測試效果較好的非介入式測試方法,由于對硬件環(huán)境的要求比較苛刻,需要一個(gè)特制的運行平臺,適合于應用在特定程序的測試,到目前為止還沒(méi)有形成可重用的架構環(huán)境,因此推廣起來(lái)相對比較困難。
3、系統設計思想
我們在對國內外嵌入式軟件測試方法的應用情況研究的基礎上,通過(guò)長(cháng)期的探索試驗,參考已有研究成果[4],設計了一套基本上可以實(shí)現無(wú)干涉測試的應用工具和方法,其系統設計思想框架如圖1所示。
圖1 系統設計框架
從圖中可以看出,核心實(shí)際上是兩個(gè)部分:信號采集部件和綜合分析模塊。
(1)信號采集部件:
在所實(shí)施的實(shí)際系統中,信號采集部件的硬件實(shí)現如圖2所示。
圖2 信號采集硬件連接原理圖
設計采集傳感器的時(shí)候主要采用了并行接口芯片8255A作為信號采集卡的核心部件,結合數據鎖存器(74LS245)、地址鎖存器(74LS244)、地址譯碼電路(74LS138)等電路,外部接口采用PCI總線(xiàn)標準與HOST主機并行口相連,另一端連接JTAG下載板,JTAG下載板通過(guò)扁平排線(xiàn)連接ARM板,主要抓取目標機在程序運行過(guò)程中的緩沖器的信息,然后將采集到的所有信息上傳到信息格式化處理器,對所關(guān)心的信號進(jìn)行保留并進(jìn)行格式化處理,根據宿主機發(fā)出的控制指令將處理好的信息暫時(shí)存入信息存儲器,以備宿主機對這些信息進(jìn)行分析。信息格式化處理的處理格式見(jiàn)表2所示。
表2 信息處理格式
其信號采集流程如圖3所示。
圖3 信號采集流程
信號采集實(shí)現程序塊如下:
得到的信息如圖4所示。
圖4 信息表
得到采樣信息后,要對其進(jìn)行跟蹤,看調入目標機緩存中的代碼是否和采集到的信息完全相符,經(jīng)甄別后將已經(jīng)被執行的代碼按照表2的格式給出(見(jiàn)圖4)。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/