郭健,段罡,鄭欣,焦帥,康武,李德軍
(陜西重型汽車有限公司,陜西 西安 710200)
截止目前,軟件測試一直是汽車產(chǎn)品V流程開發(fā)過程中的重要環(huán)節(jié)。其意義在于能夠在前期設(shè)計(jì)過程中發(fā)現(xiàn)邏輯問題,并加以糾正。從而降低后期修改帶來的成本增加問題。而且按照以往的軟件測試流程,通常只是某個(gè)控制邏輯模塊進(jìn)行單獨(dú)仿真測試,分別進(jìn)行信號的輸入搭建及輸出顯示。而進(jìn)行系統(tǒng)聯(lián)合測試的條件過于復(fù)雜,需要設(shè)置大量的模塊工作量大且繁瑣,而且往往因?yàn)閱蝹€(gè)數(shù)據(jù)輸入問題導(dǎo)致測試失敗。為此文章介紹的基于 CANoe系統(tǒng)搭建的人機(jī)交互界面可以充分利用模型化界面的優(yōu)勢,從輸入?yún)?shù)到輸出參數(shù)及中間變量都可以在界面中加以同步顯示。不僅可以實(shí)時(shí)觀測當(dāng)前測試模塊系統(tǒng)的變化,而且可以觀測到整車所有輸出信號的變化。并找出其中的關(guān)聯(lián)屬性,為完善邏輯設(shè)計(jì)提供更有力的測試環(huán)境。
軟件測試包含:
(1)輸入接口測試
(2)輸出接口測試
(3)數(shù)據(jù)處理測試
(4)單一模塊控制邏輯測試
(5)子系統(tǒng)多模塊測試
軟件測試是基于simulink進(jìn)行的模型級設(shè)計(jì)邏輯驗(yàn)證,通常使用simulink內(nèi)部模塊搭建即可完成。包括人工可改寫的輸入?yún)?shù)模塊,需要驗(yàn)證的邏輯模型及用于觀測的輸出模塊。測試方法相對簡單,通過改變輸入量的值來觀測邏輯模塊中的運(yùn)行邏輯是否正確,同時(shí)觀測輸出量是否滿足設(shè)計(jì)要求。此種測試方法需要測試人員對測試對象有很明確的認(rèn)識,需要了解所有的輸入數(shù)據(jù)范圍及邏輯對應(yīng)輸出值大小。如圖1所示,其中左側(cè)Constant模塊為數(shù)值變量輸入,右側(cè)Display為數(shù)顯模塊,Scope為變化波形顯示模塊。
圖1 軟件測試模型
文章所設(shè)計(jì)的交互界面,是利用CANoe軟件模擬了一種便于進(jìn)行數(shù)據(jù)輸入及輸出數(shù)據(jù)觀測的交互界面。界面設(shè)計(jì)分為三個(gè)部分:數(shù)據(jù)交互、窗口搭建及參數(shù)匹配。
圖2 聯(lián)合仿真測試模型
數(shù)據(jù)交互作為聯(lián)合仿真的基礎(chǔ)需要利用 CANoe自帶底層數(shù)據(jù)驅(qū)動(dòng)包作為傳輸核心,通過模塊與simulink模型建立數(shù)據(jù)傳輸路徑。數(shù)據(jù)通過模塊傳遞至 CANoe處理中心并進(jìn)行上傳打包傳遞至 CANoe模塊。其中需要通過數(shù)據(jù)庫文件配置相關(guān)輸入輸出數(shù)據(jù)類型(系統(tǒng)變量,環(huán)境變量,總線數(shù)據(jù)等)。圖中所示,Input為數(shù)據(jù)輸入模塊,可以從導(dǎo)入的數(shù)據(jù)庫中選擇相對應(yīng)的輸入數(shù)據(jù),Output為輸出模塊對應(yīng)相關(guān)數(shù)據(jù)庫中的數(shù)據(jù)輸出類型,Simulation Step為基礎(chǔ)工程模塊用以在CNAoe和Simulink之間傳輸實(shí)時(shí)仿真數(shù)據(jù)進(jìn)行數(shù)據(jù)傳輸處理。
圖3 數(shù)據(jù)傳輸路徑
其數(shù)據(jù)交互方式圖3所示。數(shù)據(jù)從CANoe輸入經(jīng)過數(shù)據(jù)庫傳遞至 Simulink模塊參與邏輯仿真,輸出結(jié)果從Simulink傳遞至數(shù)據(jù)庫再上傳至CANoe界面進(jìn)行顯示。其中底層數(shù)據(jù)交互模塊由CANoe自帶驅(qū)動(dòng)模塊完成,基于CAN網(wǎng)絡(luò)數(shù)據(jù)庫 DBC文件即可定義相關(guān)數(shù)據(jù)并實(shí)現(xiàn)數(shù)據(jù)庫的同步。其中需要注意的是數(shù)據(jù)庫中的數(shù)據(jù)格式傳遞至 CANoe中只能識別double類型的數(shù)據(jù)格式。需要再Simulink模型中對其他類型的數(shù)據(jù)變量進(jìn)行轉(zhuǎn)化才能轉(zhuǎn)移至數(shù)據(jù)庫中。
傳統(tǒng)的軟件仿真方式通常采用Display、Scope等觀測模塊進(jìn)行數(shù)據(jù)的觀測,但模塊一般需要放置在變量輸出旁邊用以準(zhǔn)確定位。當(dāng)進(jìn)行系統(tǒng)仿真時(shí)不僅數(shù)據(jù)龐大,而且無法同時(shí)觀測大量數(shù)據(jù)的變化。因此窗口界面的設(shè)計(jì)是文章的核心所在。
通過Toolbox模塊可以根據(jù)不同的需求建立相關(guān)輸入開關(guān)或者拖動(dòng)條并配以數(shù)字顯示模塊同步顯示量化數(shù)值,同時(shí)輸出模塊能夠仿真實(shí)車的屏顯及燈控模塊。
也可以自行建立仿實(shí)車圖標(biāo),可以更加形象的模擬實(shí)車操作。同時(shí)面板的設(shè)計(jì)也可參照實(shí)車進(jìn)行擺放。在界面搭建過程中需要設(shè)計(jì)人員對實(shí)車信號有一定程度的了解,方便定義信號的來源及形態(tài)。從而在界面設(shè)計(jì)中可以更好的接近實(shí)車情況。
圖4 界面設(shè)計(jì)
通過 Properties模塊可以將圖三中設(shè)定好的圖標(biāo)內(nèi)部參數(shù)與simulink模型中的輸入輸出數(shù)據(jù)一一對應(yīng)。文本類的字體及顏色均可自由設(shè)定,其中 Symbol用以選擇數(shù)據(jù)庫中的變量名稱,Symbol Filter為此變量對應(yīng)的數(shù)據(jù)傳輸類型。設(shè)定完畢后此時(shí)該顯示模塊已經(jīng)與Simulink對應(yīng)輸入輸出值進(jìn)行關(guān)聯(lián),可以同步啟動(dòng)仿真進(jìn)行測試。需要注意的是Symbol Filter所定義的類型分為:系統(tǒng)變量、環(huán)境變量、總線參數(shù)及診斷變量。不同的數(shù)據(jù)類型在實(shí)際應(yīng)用中有不同的選擇。需要設(shè)計(jì)人員對數(shù)據(jù)類型加以識別進(jìn)行設(shè)定,才能達(dá)到最佳的使用效果。
圖5 配置界面
以某新能源商用車型測試程序?yàn)槔?。整個(gè)測試面板分為兩大部分。上部為數(shù)據(jù)顯示窗口,其中包含所有的硬線輸出信號狀態(tài)燈,CAN線輸出信號狀態(tài)燈,故障指示燈以及相關(guān)重點(diǎn)觀測參數(shù)。下部為輸入操作界面,包含所有的各類開關(guān),數(shù)字輸入,模擬信號輸入及部分零部件重要參數(shù)輸入(注:圖中所示參數(shù)變量均為初始化狀態(tài),不具有指導(dǎo)意義不涉及商業(yè)機(jī)密)。
當(dāng)仿真運(yùn)行時(shí)不需要在關(guān)注Simulink中的模型,僅從此頁面即可觀測被測系統(tǒng)的各項(xiàng)指標(biāo)狀態(tài),同時(shí)任何異常變化都能在測試過程中及時(shí)發(fā)現(xiàn)。大大降低了測試難度,其中觀測狀態(tài)燈或數(shù)值可以定義異常數(shù)據(jù)范圍,對數(shù)顯或燈的顏色進(jìn)行變化,從視覺上加強(qiáng)了對反饋信號的關(guān)注度。
圖6 人機(jī)交互仿真界面
為保證測試的準(zhǔn)確性,在交互界面配置時(shí)可對部分參數(shù)進(jìn)行初始化設(shè)置,將其初始值定義為所測系統(tǒng)或模塊所需要的值,在進(jìn)行測試時(shí)不需要進(jìn)行重復(fù)設(shè)置工作,從而提高了測試效率。同時(shí)也可以利用不同的初始值定義不同的測試用例,滿足模型的測試范圍。
該測試面板不僅可以應(yīng)用于仿真測試,在實(shí)車測試時(shí)也可以使用,但是無法實(shí)現(xiàn)系統(tǒng)變量及環(huán)境變量的觀測,僅可用于觀測 CAN網(wǎng)絡(luò)數(shù)據(jù)狀態(tài),具有同樣的測試效果??梢耘c實(shí)車狀態(tài)進(jìn)行對比,用以發(fā)現(xiàn)不同點(diǎn)或異常點(diǎn),進(jìn)而協(xié)助排查整車線束故障、整車供電故障、繼電器故障等一些不容易發(fā)現(xiàn)的問題。
根據(jù)文章所描述的測試方法對試制樣車程序進(jìn)行軟件測試,完成了相關(guān)控制邏輯模塊的測試及子系統(tǒng)模塊輸入輸出測試??梢杂行Оl(fā)現(xiàn)問題點(diǎn)并及時(shí)解決,保證了任務(wù)節(jié)點(diǎn),進(jìn)行實(shí)車測試時(shí)相關(guān)系統(tǒng)設(shè)計(jì)均可滿足功能要求。同時(shí)為系統(tǒng)軟件測試流程優(yōu)化提供幫助,更好的服務(wù)于整車控制系統(tǒng)軟件開發(fā)環(huán)節(jié)。