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