(福建省特種設(shè)備檢驗(yàn)研究院,福建 福州 350008)
軟件測(cè)試是一種實(shí)際輸出與預(yù)期輸出間的審核或者比較的過(guò)程,即在規(guī)定的條件下對(duì)程序進(jìn)行操作,發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,滿足設(shè)計(jì)要求。對(duì)于嵌入式底層軟件進(jìn)行測(cè)試時(shí),傳統(tǒng)的嵌入式底層軟件測(cè)試平臺(tái)由于覆蓋率低、消耗成本大、丟包率高、數(shù)據(jù)采集頻率小等問(wèn)題,已經(jīng)不能滿足現(xiàn)代對(duì)于軟件平臺(tái)高效測(cè)試的要求,又容易受到操作系統(tǒng)中各個(gè)因素的制約,使得嵌入式底層軟件的測(cè)試過(guò)多的依賴于調(diào)試的平臺(tái),不足以進(jìn)行全面的測(cè)試。文獻(xiàn)[1]中提出了一種波前控制的軟件測(cè)試平臺(tái),該平臺(tái)能夠?qū)Σㄇ疤幚砥髦械男畔⑦M(jìn)行采集,根據(jù)信息采集速度進(jìn)行軟件測(cè)試,導(dǎo)致測(cè)試結(jié)果易受采集速度影響,測(cè)試結(jié)果不精;文獻(xiàn)[2]中提出一種黑白盒的軟件測(cè)試平臺(tái),該平臺(tái)通過(guò)不同點(diǎn)對(duì)軟件進(jìn)行全面檢查,并根據(jù)采集路徑信息,對(duì)軟件進(jìn)行測(cè)試,使得測(cè)試結(jié)果受到信息采集路徑單一影響,使軟件測(cè)試平臺(tái)使用環(huán)境受到局限性,丟包率較大。
本文對(duì)嵌入式底層軟件本信源受到干擾引起隨機(jī)測(cè)試問(wèn)題進(jìn)行了研究,提出并設(shè)計(jì)了基于ARINC429接口板的嵌入式底層軟件測(cè)試平臺(tái)。通過(guò)實(shí)驗(yàn)結(jié)果證明,改進(jìn)設(shè)計(jì)平臺(tái)能夠提高測(cè)試覆蓋率,降低丟包率,而且在同一時(shí)間內(nèi),采集數(shù)據(jù)也要比傳統(tǒng)測(cè)試平臺(tái)采集的數(shù)據(jù)多,因此,采用改進(jìn)設(shè)計(jì)平臺(tái)能夠在實(shí)際生活中節(jié)省大量時(shí)間,并且有效地提高測(cè)試效率。
本文設(shè)計(jì)的ARINC429接口板是由DSP核心系統(tǒng)、振蕩時(shí)鐘系統(tǒng)、ARINC429收發(fā)接口、雙口RAM、邏輯譯碼部分這五個(gè)主要部分構(gòu)成,具體的結(jié)構(gòu)框圖如圖1所示。
圖1 ARINC429接口板結(jié)構(gòu)框圖
DSP作為整個(gè)接口板的重要核心部分[3],需要充分考慮系統(tǒng)的實(shí)時(shí)性和數(shù)據(jù)吞吐能力,因此選擇TMS320LF2407芯片作為系統(tǒng)中央處理器,能夠?yàn)榍度胧降讓榆浖y(cè)試平臺(tái)設(shè)計(jì)提供高性能、低消耗處理效果。
嵌入式底層軟件測(cè)試平臺(tái)登錄驗(yàn)證模塊是通過(guò)對(duì)檢驗(yàn)平臺(tái)的登錄來(lái)驗(yàn)證用戶的身份是否正確,能否與數(shù)據(jù)庫(kù)中的用戶名和密碼一致[4],為客戶端的安全提供了保障,通過(guò)身份驗(yàn)證,才能到達(dá)軟件測(cè)試平臺(tái)的主頁(yè)面進(jìn)行下一步操作。主要是由于該平臺(tái)具備良好的保密性能和安全性能,對(duì)于不設(shè)置注冊(cè)的賬戶,其測(cè)試平臺(tái)的身份驗(yàn)證設(shè)計(jì)如下所示:首先管理員應(yīng)該設(shè)置嵌入式底層軟件測(cè)試平臺(tái)的安全功能,比如登錄的用戶名和密碼;然后將設(shè)置完的用戶名和密碼分配給不同的用戶,并保存在數(shù)據(jù)庫(kù)服務(wù)器當(dāng)中;為了實(shí)現(xiàn)用戶能夠安全的登錄需要使用加密算法[5]來(lái)保障用戶信息存儲(chǔ)的安全。
對(duì)嵌入式底層軟件數(shù)據(jù)進(jìn)行周期性和連續(xù)性的自動(dòng)采集,將采集后的數(shù)據(jù)通過(guò)測(cè)試平臺(tái)中數(shù)據(jù)傳輸中心傳送給數(shù)據(jù)處理中心,并將底層軟件需要運(yùn)行的數(shù)據(jù)整理到數(shù)據(jù)庫(kù)中進(jìn)行保存,管理人員通過(guò)嵌入式底層軟件運(yùn)行信息的顯示,能夠?qū)崟r(shí)對(duì)軟件運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè)。
對(duì)于嵌入式底層軟件測(cè)試平臺(tái)數(shù)據(jù)的查詢主要是通過(guò)對(duì)指定軟件運(yùn)行時(shí)間與類型進(jìn)行查詢,并通過(guò)服務(wù)器接收嵌入式底層軟件運(yùn)行的數(shù)據(jù),使用表格或者折線[6]的形式表示出查詢的結(jié)果,能夠?yàn)檐浖u(píng)估數(shù)據(jù)的診斷提供支持。
嵌入式底層軟件測(cè)試平臺(tái)的監(jiān)測(cè)功能主要是由預(yù)警信息組成的[7],通過(guò)對(duì)底層軟件變化狀態(tài)的監(jiān)測(cè)能夠?qū)崿F(xiàn)軟件評(píng)估與維護(hù)。針對(duì)電力系統(tǒng)運(yùn)行信息的維護(hù)需要采用人工神經(jīng)網(wǎng)絡(luò)[8]診斷方法對(duì)底層軟件各個(gè)部分的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè),如果出現(xiàn)不正?,F(xiàn)象,那么該測(cè)試平臺(tái)就會(huì)出現(xiàn)報(bào)警的信息,指示燈閃爍。此時(shí)工作人員就可以通過(guò)該平臺(tái)獲得報(bào)警信息,能夠在短時(shí)間內(nèi)完成軟件測(cè)試平臺(tái)的評(píng)估與維護(hù)。
基于ARINC429接口板的嵌入式底層軟件測(cè)試平臺(tái)最重要的部分是具有符合自身平臺(tái)的開(kāi)發(fā)工具,其中GNU Tools包含了嵌入式應(yīng)用系統(tǒng)[9],其全面的源碼能夠?yàn)榍度胧江h(huán)境提供配套的工具鏈[10]。該工具使用能夠?yàn)榇a編譯開(kāi)發(fā)、結(jié)構(gòu)測(cè)試與軟件工程提供工具,將這三者結(jié)合在一起形成工具鏈,能夠滿足測(cè)試平臺(tái)獨(dú)立性要求。通過(guò)使用工具鏈能夠?yàn)榫幾g程序增加自動(dòng)插入測(cè)試的功能,編譯流程如圖2所示。
圖2 編譯流程
由圖2可知:通過(guò)編譯的流程可將各種源代碼編譯成匯編碼。根據(jù)從測(cè)試數(shù)據(jù)庫(kù)中得到的函數(shù)和變量進(jìn)行測(cè)試,并按照系統(tǒng)的架構(gòu)進(jìn)行調(diào)用,如果函數(shù)調(diào)用位置為編譯起始端和結(jié)束端,那么就可以確定語(yǔ)句中的分支和循環(huán)為整個(gè)編譯開(kāi)始處和結(jié)束處。
基于ARINC429接口板嵌入式底層軟件測(cè)試平臺(tái)覆蓋率的提高主要通過(guò)對(duì)數(shù)據(jù)采集、處理、傳輸部分的完善進(jìn)行了設(shè)計(jì)。
在該平臺(tái)中存在各種各樣的離線數(shù)據(jù)和在線數(shù)據(jù),需要實(shí)時(shí)的對(duì)數(shù)據(jù)進(jìn)行采集來(lái)完成軟件平臺(tái)的離線測(cè)試與在線測(cè)試。
1)經(jīng)過(guò)離線測(cè)試的結(jié)果獲取離線數(shù)據(jù),并將此信息錄入到基于ARINC429接口板的嵌入式底層軟件測(cè)試平臺(tái)的數(shù)據(jù)庫(kù)當(dāng)中。
2)經(jīng)過(guò)在線數(shù)據(jù)測(cè)試的結(jié)果獲取在線數(shù)據(jù),通過(guò)測(cè)試平臺(tái)的開(kāi)發(fā),能夠?qū)⒉煌臄?shù)據(jù)庫(kù)進(jìn)行連接,從而使線路、開(kāi)關(guān)和變壓器實(shí)時(shí)運(yùn)行的數(shù)據(jù)信息被共享到嵌入式底層軟件測(cè)試平臺(tái)的數(shù)據(jù)庫(kù)當(dāng)中。
通過(guò)對(duì)上述運(yùn)行數(shù)據(jù)的收集,能夠使數(shù)據(jù)庫(kù)與軟件測(cè)試平臺(tái)的裝置進(jìn)行通信,并采用單向采集的方式,保證了測(cè)試平臺(tái)數(shù)據(jù)采集信息的安全。
對(duì)于數(shù)據(jù)的處理需要使用測(cè)試平臺(tái)的數(shù)據(jù)處理中心,其位于底層軟件的服務(wù)器端口處,主要包括數(shù)據(jù)庫(kù)服務(wù)器和應(yīng)用服務(wù)器。
3.2.1 數(shù)據(jù)庫(kù)服務(wù)器
該服務(wù)器的主要功能是不斷的將采集器中的數(shù)據(jù)信息進(jìn)行收集,并按照測(cè)試的原則進(jìn)行標(biāo)準(zhǔn)化處理,將處理之后的數(shù)據(jù)信息全部?jī)?chǔ)存在數(shù)據(jù)庫(kù)。
3.2.2 應(yīng)用服務(wù)器
該服務(wù)器的主要功能是應(yīng)用業(yè)務(wù)的邏輯思維來(lái)完成邏輯處理與數(shù)據(jù)庫(kù)之間的連接。采用模塊化的方法對(duì)不同客戶端發(fā)送的請(qǐng)求進(jìn)行實(shí)時(shí)的反饋,并將反饋結(jié)果傳送到客戶端。對(duì)于數(shù)據(jù)庫(kù)的連接,需要對(duì)平臺(tái)數(shù)據(jù)進(jìn)行增加刪減等工作。
作為數(shù)據(jù)信息傳輸?shù)拿浇?,?yīng)用服務(wù)器上的平臺(tái)應(yīng)用接口需要通過(guò)網(wǎng)絡(luò)進(jìn)行發(fā)布,而測(cè)試的客戶端也需要與服務(wù)器進(jìn)行數(shù)據(jù)的傳輸。
基于ARINC429接口板的測(cè)試平臺(tái)是宿主機(jī)和目標(biāo)機(jī)交聯(lián)實(shí)現(xiàn)軟件測(cè)試的,即Host/Target方式。是指編碼連接和測(cè)試分析都運(yùn)行在Host機(jī)器上,而被測(cè)試程序運(yùn)行在Target機(jī)器上。目標(biāo)與測(cè)試平臺(tái)之間的通信均通過(guò)通信轉(zhuǎn)換接口模塊完成。通信模塊可以和Host程序運(yùn)行在同一臺(tái)測(cè)試機(jī)上,也可以運(yùn)行在獨(dú)立的機(jī)器上,通過(guò)以太網(wǎng)與測(cè)試機(jī)連接,示意圖3如下所示。
圖3 ARINC429接口板的軟件測(cè)試模式示意圖
通過(guò)用戶操作,開(kāi)啟軟件測(cè)試平臺(tái)的主程序。軟件屏幕模擬器會(huì)對(duì)用戶操作進(jìn)行錄制,將錄制結(jié)果分別發(fā)送三個(gè)子程序進(jìn)行各自的功能處理。發(fā)送至界面子程序:通過(guò)界面繪制,將用戶操作記錄傳送到Web界面端,經(jīng)過(guò)Web界面對(duì)信息進(jìn)行處理,使UI控件獲取到相應(yīng)的界面信息進(jìn)行界面優(yōu)化,同時(shí),Web界面信息也會(huì)通過(guò)界面指令傳至腳本回放,等待信息回放處理,反之,回放信息也能反饋給Web界面,進(jìn)行界面信息處理。發(fā)送至腳本子程序,將記錄的用戶操作信息,按照操作指令,傳至腳本,經(jīng)由腳本指令轉(zhuǎn)化,傳至腳本回放。發(fā)送至主程序,將記錄的用戶操作信息傳至編譯器,使用Python腳本語(yǔ)言進(jìn)行開(kāi)發(fā),將腳本回放中的信息進(jìn)行回放,結(jié)合回放信息,生成測(cè)試結(jié)果。以此,完成基于ARINC429接口板的嵌入式底層軟件測(cè)試平臺(tái)軟件部分的實(shí)現(xiàn)。給出軟件實(shí)現(xiàn)流程圖如圖4所示。
圖4 軟件實(shí)現(xiàn)流程圖
為了驗(yàn)證基于ARINC429接口板底層軟件測(cè)試平臺(tái)的有效性,測(cè)試平臺(tái)界面在VC++6.0環(huán)境下進(jìn)行開(kāi)發(fā)及試驗(yàn)分析。
針對(duì)測(cè)試平臺(tái)的覆蓋率,需要對(duì)用戶登錄信息、歷史數(shù)據(jù)信息、實(shí)時(shí)數(shù)據(jù)、網(wǎng)絡(luò)信息等進(jìn)行收集,如表1~2所示。
表1 傳統(tǒng)測(cè)試平臺(tái)信息覆蓋率(%)
表2 改進(jìn)測(cè)試平臺(tái)信息覆蓋率(%)
根據(jù)上述收集到的數(shù)據(jù),將改進(jìn)設(shè)計(jì)平臺(tái)與傳統(tǒng)平臺(tái)覆蓋率(%)進(jìn)行對(duì)比,結(jié)果如圖5所示。
圖5 兩種測(cè)試平臺(tái)的覆蓋率對(duì)比結(jié)果
由圖5可知:改進(jìn)設(shè)計(jì)測(cè)試平臺(tái)覆蓋率要高于傳統(tǒng)設(shè)計(jì)平臺(tái)。由于基于ARINC429接口板的嵌入式底層軟件測(cè)試平臺(tái)能夠?qū)?shù)據(jù)進(jìn)行實(shí)時(shí)的采集,通過(guò)使用數(shù)據(jù)庫(kù)服務(wù)器和應(yīng)用服務(wù)器處理中心對(duì)軟件各部分進(jìn)行了測(cè)試。數(shù)據(jù)采集能夠?qū)崿F(xiàn)嵌入式底層軟件離線測(cè)試和在線測(cè)試;針對(duì)業(yè)務(wù)的邏輯性處理和數(shù)據(jù)庫(kù)之間連接,能將收集到的數(shù)據(jù)進(jìn)行處理;通過(guò)傳送數(shù)據(jù)能夠完成嵌入式底層軟件運(yùn)行數(shù)據(jù)的采集、處理、傳輸以及在客戶端方面的應(yīng)用,使用改進(jìn)設(shè)計(jì)的測(cè)試平臺(tái)能夠提高平臺(tái)的覆蓋率。
分別收集傳統(tǒng)測(cè)試平臺(tái)與改進(jìn)設(shè)計(jì)的平臺(tái)在5分鐘內(nèi)數(shù)據(jù)采集并處理過(guò)程中軟件測(cè)試平臺(tái)丟包率的情況,測(cè)試結(jié)果如表3所示。
表3 兩種測(cè)試平臺(tái)丟包率(%)對(duì)比結(jié)果
由表3可知:傳統(tǒng)測(cè)試平臺(tái)的丟包率情況存在較大的延遲情況,對(duì)于數(shù)據(jù)的處理大約維持在11.17 Mbit/s左右,而丟包率大約維持在8.15 Mbit/s。傳統(tǒng)的測(cè)試平臺(tái)在設(shè)計(jì)的時(shí)候采用了LaaS的構(gòu)建方法對(duì)管理工具進(jìn)行了設(shè)計(jì),該方法包含了大量的計(jì)算步驟,過(guò)程繁瑣,計(jì)算所耗費(fèi)的時(shí)間較長(zhǎng),因此對(duì)軟件平臺(tái)的測(cè)試會(huì)出現(xiàn)延遲的情況,使得丟包的概率增加,得出的測(cè)試結(jié)果不準(zhǔn)確。而改進(jìn)測(cè)試平臺(tái)設(shè)計(jì)的方法不會(huì)出現(xiàn)延遲的情況,對(duì)于數(shù)據(jù)的處理大約維持在101.7 Mbit/s左右,而丟包率大約維持在0.0283 Mbit/s左右。
由此看出:改進(jìn)測(cè)試平臺(tái)的丟包率較低,在實(shí)際的嵌入式底層軟件測(cè)試過(guò)程中可以忽略不計(jì),測(cè)試的結(jié)果比較準(zhǔn)確。
為了驗(yàn)證改進(jìn)測(cè)試平臺(tái)的性能,將數(shù)據(jù)采集的頻率(MB/s)作為衡量傳統(tǒng)測(cè)試平臺(tái)與改進(jìn)測(cè)試平臺(tái)性能好壞的標(biāo)準(zhǔn),結(jié)果如圖6所示。
圖6 兩種測(cè)試平臺(tái)的數(shù)據(jù)采集頻率對(duì)比結(jié)果
由圖6可知:由于改進(jìn)設(shè)計(jì)的測(cè)試平臺(tái)能夠?qū)④浖械臄?shù)據(jù)進(jìn)行連續(xù)性的采集,并且在短周期內(nèi)能夠快速的采集大量的軟件信息,因此,在同一時(shí)間內(nèi),改進(jìn)測(cè)試平臺(tái)采集的數(shù)據(jù)要比傳統(tǒng)測(cè)試平臺(tái)采集的數(shù)據(jù)多。
綜上所述,改進(jìn)設(shè)計(jì)的基于ARINC429接口板的嵌入式底層軟件測(cè)試平臺(tái),其覆蓋率較高,對(duì)于改進(jìn)測(cè)試平臺(tái)丟包率情況,改進(jìn)設(shè)計(jì)平臺(tái)明顯比傳統(tǒng)平臺(tái)更準(zhǔn)確,而且在同一時(shí)間內(nèi),采集數(shù)據(jù)也要比傳統(tǒng)測(cè)試平臺(tái)采集數(shù)據(jù)多,因此,采用改進(jìn)設(shè)計(jì)平臺(tái)能夠在實(shí)際生活中節(jié)省大量時(shí)間,并且有效地提高測(cè)試效率。
基于ARINC429接口板的嵌入式底層軟件測(cè)試平臺(tái)能減少成本,并使測(cè)試的頻率加快,大大縮短了平臺(tái)運(yùn)行時(shí)間。合理的設(shè)計(jì)測(cè)試平臺(tái)不僅能夠滿足測(cè)試基本要求,還能保證軟件質(zhì)量,通過(guò)對(duì)嵌入式系統(tǒng)軟件測(cè)試平臺(tái)進(jìn)行改進(jìn)設(shè)計(jì)能夠解決多目標(biāo)測(cè)試難點(diǎn),能夠提高測(cè)試的覆蓋率,并降低了丟包率,數(shù)據(jù)采集的頻率也大大增強(qiáng),為軟件測(cè)試平臺(tái)安全有效運(yùn)行提供保障,也為測(cè)試標(biāo)準(zhǔn)奠定了更加堅(jiān)實(shí)基礎(chǔ)。
[1] 王 亮, 陳 濤, 賈建祿,等. 自適應(yīng)光學(xué)波前處理器的軟件測(cè)試研究[J]. 電子測(cè)量與儀器學(xué)報(bào), 2016, 30(2):193-199.
[2] 梁浩然, 周寬久, 崔 凱,等. 基于PEFSM行為模型的黑盒測(cè)試用例生成方法[J]. 計(jì)算機(jī)科學(xué), 2017, 44(4):234-240.
[3] 王 博, 白曉穎, 張 超,等. 基于接口自動(dòng)機(jī)與符號(hào)執(zhí)行的嵌入式軟件測(cè)試用例生成[J]. 計(jì)算機(jī)學(xué)報(bào), 2015, 28 (11):2125-2144.
[4] 劉連生, 梁林林. 使用Andriod智能手機(jī)的ARINC429總線系統(tǒng)設(shè)計(jì)[J]. 電光與控制, 2016, 19 (5):104-107.
[5] 楊文豪, 焦新泉, 儲(chǔ)成群. 基于嵌入式操作系統(tǒng)VxWorks的PXI實(shí)時(shí)讀寫(xiě)接口設(shè)計(jì)[J]. 儀表技術(shù)與傳感器, 2016, 31 (10):98-101.
[6] 孫 磊, 楊海燕, 吳 際,等. 基于IMA平臺(tái)的嵌入式軟件設(shè)計(jì)模型仿真及實(shí)時(shí)性分析方法[J]. 計(jì)算機(jī)科學(xué), 2015, 42(12):95-97.
[7] 鄭巧彥. 多差異嵌入式設(shè)備的節(jié)能任務(wù)調(diào)度模型仿真[J]. 計(jì)算機(jī)仿真, 2015, 32(3):426-429.
[8] 韓鴻凌, HANHong-ling. 基于FPGA的嵌入式處理器與PC/104總線接口實(shí)現(xiàn)[J]. 電測(cè)與儀表, 2015, 39(s1):72-74.
[9] 郭文生, 汪 勇, 楊 霞,等. Codecomb:基于符號(hào)執(zhí)行的嵌入式軟件測(cè)試案例自動(dòng)生成與缺陷檢測(cè)[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2017, 38(6):1250-1255.
[10] 劉 飛, 蒲海峰, 李柯達(dá),等. 一種彈載嵌入式軟件數(shù)學(xué)模型測(cè)試方法的設(shè)計(jì)與實(shí)現(xiàn)[J]. 彈箭與制導(dǎo)學(xué)報(bào), 2016, 36(3):25-27.