陳承鶴,肖 莎,王 軍,張武學
(廣州汽車集團股份有限公司汽車工程研究院,廣州 510640)
硬件在環(huán)(HIL,Hardware in the Loop)測試在汽車整車及其零部件開發(fā)過程中應(yīng)用廣泛[1-3]。通過HIL 測試可以便捷地驗證單個零部件的功能,也可以驗證不同零部件之間和系統(tǒng)的交互。此外,對于一些在實車驗證過程中存在工況難以實現(xiàn)或費用高等情況,比如碰撞測試、部件故障測試等,在HIL環(huán)境中可以輕易地進行功能驗證,待功能開發(fā)成熟后再進行最終的實車驗證,從而盡可能地縮短研發(fā)時間以及節(jié)約研發(fā)成本。
自動化測試一般是指軟件測試的自動化,軟件測試就是在預(yù)設(shè)條件下運行系統(tǒng)或應(yīng)用程序,評估運行結(jié)果,預(yù)先條件包括正常條件和異常條件,是將認為驅(qū)動測試轉(zhuǎn)為機器執(zhí)行的一種過程。通常,在設(shè)計了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步一步執(zhí)行測試,得到實際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。
ECU-TEST 是一款用于嵌入式測試系統(tǒng)的自動化測試軟件工具。ECU-TEST 可以兼容不同硬件在環(huán)測試平臺自動化測試[4-6]。目前HIL 測試方法多數(shù)為手動測試或基于測試軟件自動測試方法。手動測試方法效率低,測試用例開發(fā)規(guī)范化不高。基于測試軟件,如ECU-TEST 實現(xiàn)自動化測試,可提高測試效率,但測試用例的編寫需要一定的軟件專業(yè)能力。本文對結(jié)合辦公軟件EXCEL 和測試軟件ECU-TEST,提出一種測試用例可統(tǒng)一管理、易懂易用、高效自動化HIL測試方法。
硬件在環(huán)測試系統(tǒng)組成如圖1 所示,主要包含了實時仿真系統(tǒng)、被測ECU、診斷和標定工具及測試管理上位機。實時仿真系統(tǒng)主要由實時處理器、電源模塊、IO 及通訊板卡、信號調(diào)理板卡和故障注入板卡等組成。
圖1 硬件在環(huán)(HIL)測試系統(tǒng)
硬件在環(huán)測試系統(tǒng)仿真測試的核心設(shè)計思想是把實際的被控對象或其他的裝置部件通過計算機實時仿真模型運行來代替,然后通過實時仿真接口和IO 板卡、通訊板卡連接起來,再和被測的控制單元連接,通過測試系統(tǒng)上位機實現(xiàn)控制仿真系統(tǒng)運行,構(gòu)成一個完整的硬件在環(huán)的閉環(huán)測試仿真系統(tǒng)[7-8],對被測電控單元或部件進行各種功能測試。
硬件在環(huán)測試及自動化測試流程如圖2 所示。首先根據(jù)被測ECU 搭建硬件在環(huán)測試臺架,主要內(nèi)容包括被控對象測試模型開發(fā)、測試硬件臺架改造搭建、測試系統(tǒng)上位機界面開發(fā)和測試系統(tǒng)調(diào)試(測試機柜激勵測試、測試系統(tǒng)開環(huán)測試及閉環(huán)測試);然后根據(jù)測試需求開發(fā)測試用例,此時可根據(jù)測試用例實現(xiàn)手動測試或自動測試,自動測試則需要根據(jù)測試用例在測試軟件中開發(fā)自動測試序列;最后實現(xiàn)自動測試和報告生成,給出測試問題反饋,修改被測ECU 軟件后再實現(xiàn)回歸測試。
圖2 硬件在環(huán)測試流程
基于辦公軟件EXCEL 和測試軟件ECU-TEST 設(shè)計開發(fā)一種高效的ECU 自動化測試方法,測試流程如圖3 所示,其中測試用例開發(fā)易懂易用,具有規(guī)范化特點,同時自動化測試序列可自動生成,直接實現(xiàn)自動化測試及報告生成,提高測試效率及降低測試人員對測試軟件專業(yè)技能要求。
圖3 基于ECU-TEST高效自動化測試流程
基于辦公軟件EXCEL進行測試用例開發(fā),其中對測試用例的編輯表格格式和版面進行定制格式,圖4所示為測試用例開發(fā)編輯表。測試用例開發(fā)表左邊是測試用例測試序列具體操作步驟編輯表格;右邊為測試用例開發(fā)表格,包括功能點、功能特性、測試目的、測試條件、測試步驟、預(yù)期輸出等信息。其中通過選擇右邊測試用例不同條目,左邊表格會自動切換選中測試用例的測試序列具體操作步驟內(nèi)容。
圖4 測試用例開發(fā)表
測試用例表主要是根據(jù)測試需求制定測試條目表,具體如圖5所示。主要編輯內(nèi)容如下。
圖5 測試用例條目表
Test Case Name:測試用例名稱,建議根據(jù)測試內(nèi)容填寫名稱;
Run Test:是否自動生成ECU-TEST測試用例;
功能點: 測試用例所屬功能點;
功能特性:測試用例測試功能具體特性;
測試ID: 測試用例的測試ID;
測試目的:測試用例測試目的描述;
測試方式:測試用例測試實現(xiàn)方式;
初始條件:測試用例實現(xiàn)需要的初始條件描述;
測試步驟:測試用例實現(xiàn)時測試步驟描述;
預(yù)期輸出:測試用例實現(xiàn)按照測試步驟預(yù)期輸出描述;
實際輸出;測試用例測試完成實際輸出描述,用于測試報告編寫和后續(xù)跟蹤;
是否通過:測試用例完成結(jié)果描述,用于測試報告編寫和后續(xù)跟蹤;
重要度:測試用例測試重要度描述,用于測試報告編寫和后續(xù)跟蹤;
測試人員:測試用例測試人員,用于測試報告編寫和后續(xù)跟蹤;
測試時間:測試用例測試時間,用于測試報告編寫和后續(xù)跟蹤。
自動測試序列操作步驟編輯表主要實現(xiàn)根據(jù)測試用例的描述將其轉(zhuǎn)化為可在HIL測試系統(tǒng)執(zhí)行的操作,如圖6 所示。主要編輯內(nèi)容如下。
圖6 自動測試序列表
Test Case Name:測試用例名稱,與測試用例相對應(yīng);
Test Step:測試步驟,按1,2,3順序填寫;
Type:操作類型,操作類型為設(shè)置好操作;
Description:該操作描述;
Variable Name:該操作對應(yīng)的變量名稱,多個變量分行填寫;
Settings:該操作對應(yīng)參數(shù)設(shè)置;
Value:該操作對應(yīng)變量的設(shè)置值,多個變量的設(shè)置值分行填寫;
Wait:該操作完成后等待的時間,秒為單位;
Remarks:備注信息;
其中,自動測試序列表中操作類型目前定義Write、Read、Condition、 Block、 Lib、 Unblock、 If、 Else、 El If、 End If、While、End While 共12 種操作類型,滿足大部分測試操作需求,同時編輯自動測試序列較易懂易用,不需要軟件專業(yè)技能要求,如圖7所示為一個變量寫入數(shù)值操作,說明如下。
Write:對可寫變量進行寫操作,需填寫對應(yīng)的Variable Name和Value列。
圖7 Write操作編輯示例
為了增加測試用例開發(fā)可擴展性,用戶可自定義操作庫,主要功能是可以將一些常用的操作組合成一個操作庫,如圖8 所示,在操作編輯表格里面直接使用庫操作序列Lib。自定義操作庫表和測試用例開發(fā)表類似,左邊為操作庫具體操作步驟編輯表,右邊為操作庫列表,包括名稱和動作庫備注描述信息。
圖8 自定義操作庫開發(fā)表
信號Mapping配置表主要作用是將測試用例編輯表及自定義操作庫表里使用到的變量名稱和測試設(shè)備或標定相關(guān)變量一一關(guān)聯(lián)起來,如圖9 所示,然后通過可自動生成軟件生成ECU-TEST使用的Mapping配置文件。
圖9 信號Mapping配置表
完成測試用例等相關(guān)內(nèi)容開發(fā)后,本文基于ECU-TEST API 接口開發(fā)了可自動生成ECU-TEST 測試相關(guān)文件軟件,可實現(xiàn)自動生成測試序列生成及配置文件生成,然后在ECU-TEST進行自動化測試及報告生成,如圖10所示。
在電池管理系統(tǒng)BMS 硬件在環(huán)休眠喚醒功能測試應(yīng)用了本文設(shè)計開發(fā)測試方法。首先搭建BMS 硬件在環(huán)測試臺架,并完成臺架閉環(huán)調(diào)試,然后搭建ECU-TEST 自動化測試工程,根據(jù)本文提供測試EXCEL表格進行測試用例開發(fā),并自動生成自動測試測試用例序列文件及配置文件,通過ECU-TEST完成自動化測試并生成測試報告。
圖11所示為BMS休眠喚醒場景需求。根據(jù)BMS休眠喚醒測試需求開發(fā)測試用例,并完成測試序列編輯,如圖12所示。
圖11 休眠喚醒測試場景需求
圖12 休眠喚醒測試用例
測試用例開發(fā)完成后,通過自動生成ECU-TEST 測試文件軟件生成測試用例自動測試序列及配置文件,如圖13 所示。
圖13 自動測試序列文件
自動化測試序列自動生成完成后,可在ECU-TEST 直接運行測試,待測試完成后,自動生成測試報告,如圖14所示。
圖14 自動化測試報告
本文基于ECU-TEST 和EXCEL 設(shè)計開發(fā)一種更高效易用的自動化HIL 硬件在環(huán)測試方法,測試用例開發(fā)更為規(guī)范化,具有易懂、易用、不受限測試軟件專業(yè)技能和權(quán)限使用等特點。并以BMS 休眠喚醒功能自動化測試應(yīng)用,通過在實際項目中應(yīng)用,進一步體現(xiàn)該方法易用性及高效性。