段寧璐,李皓飛,何 祥,鄒 凡,張 珍
(陜西汽車集團有限責任公司技術中心,陜西 西安 710200)
由于嵌入式系統發展快速,嵌入式軟件復雜程度越來越高,接口種類越來越多,迭代開發過程中需求變更頻繁。當接口信號的參數隨應用場景的變化而變化時,傳統的模型接口測試需要測試人員根據測試模型和軟件詳細設計文檔將接口信息進行一一比對,自動化程度低,檢查效率低,耗費大量時間精力。同時測試過程存在各種不規范操作,無法有效對接口測試數據進行統計、檢查和分析。模型接口是被測軟件與外部設備和環境進行數據交互的橋梁,是系統對外體現功能和性能的關鍵部件。如何保證模型中接口的質量關系到整個軟件的正常發布。因此,本文針對模型中的接口檢測設計了一種可實現自動化測試的方法。
Simulink中自帶的Model Advisor靜態模型檢查器,能夠根據已經設計的測試規則進行檢查,并且能夠進行部分錯誤的修改。在汽車電子及相關基于MBD開發的嵌入式項目中有著重要作用。自帶的檢查規則中,包含MAAB這種行業廣泛應用的規則,隨著項目進程的積累,后續需要開發一套屬于自己的建模規則和體系。針對自己的建模規則和體系需要設計一套對應的檢測規則,其中對于模型接口信號和功能設計文檔接口的檢測更需要統一化、自動化[1]。因此本文設計一種基于Simulink模型的接口自動化測試方法。
正確性是指功能文檔表中的接口信息均按照設計的測試規則進行測試。正確性的檢測項如下:
(1)接口名稱只能包含數字、字母、下劃線;
(2)接口名稱首字符不能為數字或者下劃線;
(3)接口名稱不能超過31個字符;
(4)接口名稱不能出現空格和回車;
(5)接口數據最小值大于等于定義的數據類型下限;
(6)接口數據最大值小于等于定義的數據類型上限;
(7)接口名稱中第一個字符必須是大寫字母。
一致性是指模型接口信息表和文檔接口信息表中對同一個信號進行對比測試。當對比的同一信號的同一屬性存在二義性時,按照功能設計文檔的接口信息為標準進行判斷。一致性的檢測項如下:
(1)接口信號名稱一致;
(2)接口信號的數據類型一致;
(3)接口信號的采樣時間保持一致;
(4)若為常量接口,默認值是否保持一致;
(5)若為標定參數,標定范圍包含于信號類型取值范圍內。
整車的功能規范文檔包括整車功能需求、接口信息、功能設計等要素。本文從功能規范文檔中提取接口信息,按照1.1中的測試規則對接口信息進行測試,輸出測試報告。
功能規范中需要提取的屬性為:信號名稱、采樣時間、數據類型、最小值和最大值。最終按照表1的模板 從功能規范文檔中提取模型輸入輸出接口信息,并將其存入文檔接口信息表中。

表1 文檔接口信息表
針對文檔接口信息表的單表測試只需驗證其正確性。即按照1.1中設計的測試規則進行測試。
設計的系統UI界面,可以自動導入文檔接口信息表1。使用 regexp()函數,設計測試規則的正則表達式,對文檔接口信息進行測試[2]。測試過程中,如果出現不符合正確性測試規則的信號,將彈出對話框進行提示。如圖1所示。

圖1 錯誤信息提示
點擊“確定”按鈕,可繼續對功能文檔接口信息表中的其他信號進行測試。
測試結束以后,會自動生成對應的測試報告,報告中包含錯誤項和其他。如下圖2所示:

圖2 功能文檔接口測試報告
本文設計的接口自動化測試系統均是以Simulink模型為基礎進行開發的。所以需要從模型中提取接口信息的相關參數[3]。其中,所述的相關參數信息包括:接口名稱、接口數據類型、接口數據采樣時間、接口數據最小值、接口數據最大值,Matlab中使用find_system()函數提取模型接口信息。使用GUI工具設計便于人機交互的系統UI界面,并將模型的接口信息導入到模型接口信息表中[4]。如下圖3所示:

圖3 模型接口檢測UI界面
當提取文檔接口信息和模型接口信息后,接口的一致性按照功能文檔接口信息表為依據,需要根據1.2定義的一致性測試規則和文本比較算法進行測試。對比測試按照以下情況進行:
(1)文檔接口信息表和模型接口信息表中一致的信息,在測試記錄中“測試結果”列以“關閉”形式進行記錄;
(2)文檔接口信息表和模型接口信息表中不一致的信息,在測試結果中“測試結果”列以“打開”形式進行記錄;
(3)文檔接口信息表中存在的信息,模型接口信息表不存在,使用空格代替模型接口信息表的內容,并以“Not Exist”進行記錄,在測試結果中以“打開”形式進行記錄。如下圖4所示:

圖4 接口對比測試報告
(4)以餅狀圖形式統計兩表中接口信息“一致”“不一致”“不存在”的數量,直觀反映測試統計結果,便于測試人員記錄和反饋。如下圖5所示:

圖5 測試統計結果
本文設計一種基于模型接口實現的自動化測試方法,該方法包括:(1)從軟件詳細設計文檔中提取接口信息存儲于文檔接口信息表中;(2)加載模型文件獲取接口信息存儲于模型接口信息表中;(3)將文檔與模型接口信息表中的同一接口參數分別按照指定的測試規則進行識別、測試,以圖表形式輸出測試結果;(4)使用文本比較算法,實現文檔信息接口表和模型接口信息表的對比校驗,以數字結合圖表的形式輸出測試報告[5]。接口的自動化測試方法適用于包含輸入輸出接口的模型,保證接口數據的正確性、完整性,增強測試的自動化程度,優化軟件測試效率,提高軟件質量。