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