張燕雯
(工業(yè)和信息化部電子第五研究所,廣東 廣州 511370)
隨著汽車行業(yè)的不斷發(fā)展,汽車包含的功能越來越豐富。作為汽車中的核心組成部分,車身控制模塊BCM的設(shè)計(jì)愈加復(fù)雜,由此帶來了許多安全性和可靠性問題,為了降低系統(tǒng)失效帶來的風(fēng)險(xiǎn),需要對(duì)BCM進(jìn)行安全性和可靠性測(cè)試。目前大多數(shù)BCM的生產(chǎn)廠家更多的是采用人工方式進(jìn)行BCM的功能測(cè)試驗(yàn)證,投入的人力成本高、耗時(shí)久,容易出現(xiàn)漏測(cè)甚至誤測(cè)等問題[1],并且傳統(tǒng)的人工測(cè)試更適用在BCM的開發(fā)試驗(yàn)階段,無法滿足已經(jīng)進(jìn)入批量生產(chǎn)階段的測(cè)試要求。
汽車車身控制模塊(Body Control Module,簡(jiǎn)稱BCM),是實(shí)現(xiàn)車身控制的模塊,可以實(shí)現(xiàn)離散的控制功能。某車型BCM主要包括后除霜功能、外部燈光控制、內(nèi)部燈光控制、電動(dòng)窗管理、RKE管理、防盜報(bào)警、尾門開鎖管理、門狀態(tài)管理、解閉鎖、雨刮及洗滌管理、鑰匙未拔報(bào)警管理、后視鏡折疊、點(diǎn)火鑰匙狀態(tài)、PEPS報(bào)警、天窗控制等功能。
本文提出的一種BCM自動(dòng)化測(cè)試平臺(tái)由測(cè)試管理軟件TestStand、實(shí)時(shí)測(cè)試與仿真軟件LabVIEW、BCM測(cè)試用例和自動(dòng)化測(cè)試腳本構(gòu)成,針對(duì)BCM模塊控制軟件需求定制開發(fā),將功能規(guī)范的描述進(jìn)行具體化形成測(cè)試數(shù)據(jù),導(dǎo)入到自動(dòng)化測(cè)試平臺(tái)中執(zhí)行,覆蓋功能、可靠等類型測(cè)試用例,可以進(jìn)行BCM自動(dòng)化測(cè)試,降低人工執(zhí)行成本,大大提升汽車產(chǎn)品的安全性和可靠性。
該平臺(tái)的硬件部分包含工業(yè)控制PC、數(shù)據(jù)采集卡(NI PCIe-6363/NI PXIe-6363多功能I/O設(shè)備)、接線盒、待測(cè)BCM、供電電源等。圖1為BCM自動(dòng)化測(cè)試平臺(tái)的結(jié)構(gòu)圖。測(cè)試人員通過測(cè)試機(jī)發(fā)送測(cè)試數(shù)據(jù)激勵(lì)工控主機(jī)產(chǎn)生模擬信號(hào)/數(shù)字信號(hào),模擬信號(hào)/數(shù)字信號(hào)經(jīng)過信號(hào)調(diào)理電路加載到待測(cè)BCM中,BCM根據(jù)輸入的信號(hào)經(jīng)過邏輯判斷處理產(chǎn)生控制信號(hào),該控制信號(hào)可以控制繼電器進(jìn)行相應(yīng)動(dòng)作,其中繼電器是用于實(shí)際中連接車窗、轉(zhuǎn)向燈、雨刮、后除霜、車門等負(fù)載的中介,在本文的自動(dòng)化測(cè)試平臺(tái)中利用數(shù)據(jù)采集卡采集BCM的所有輸出信號(hào)[2],并與期望的結(jié)果進(jìn)行對(duì)比,以判斷BCM的功能是否正確實(shí)現(xiàn)。
1)BCM可以控制車窗、轉(zhuǎn)向燈、雨刮、后除霜、車門等。
2)便攜式計(jì)算機(jī)用于監(jiān)視BCM 控制信號(hào)發(fā)送到繼電器響應(yīng)的時(shí)間,并且可以發(fā)送CAN/LIN總線測(cè)試數(shù)據(jù)。
3)繼電器是用于連接車窗、轉(zhuǎn)向燈、雨刮、后除霜、車門等負(fù)載的中介。

圖1 BCM自動(dòng)化測(cè)試平臺(tái)結(jié)構(gòu)圖
4)接線盒用于連接模擬信號(hào)的輸入輸出以及數(shù)字信號(hào)的輸入輸出。
5)程控電源用于給BCM控制設(shè)備供電。
BCM自動(dòng)化測(cè)試平臺(tái)基于CAN/LIN網(wǎng)絡(luò)通信,由后除霜功能測(cè)試模塊、外部燈光功能測(cè)試模塊、內(nèi)部燈光功能測(cè)試模塊、電動(dòng)車窗功能測(cè)試模塊、RKE管理功能測(cè)試模塊、防盜報(bào)警功能測(cè)試模塊等組成。為了降低模塊之間的耦合程度,本系統(tǒng)采用結(jié)構(gòu)化的設(shè)計(jì)方法。系統(tǒng)通過接收RS232總線數(shù)據(jù)實(shí)現(xiàn)自動(dòng)化數(shù)據(jù)分析。系統(tǒng)可以根據(jù)隨機(jī)抽樣方式和邊界值分析自動(dòng)化生成測(cè)試用例數(shù)據(jù)。系統(tǒng)通過導(dǎo)入自動(dòng)生成的測(cè)試數(shù)據(jù)實(shí)現(xiàn)自動(dòng)化執(zhí)行測(cè)試用例數(shù)據(jù)。系統(tǒng)根據(jù)用戶的選擇,自動(dòng)完成CCITT、MODBUS等形式CRC-16校驗(yàn)值的自動(dòng)生成。
BCM自動(dòng)化測(cè)試平臺(tái)實(shí)現(xiàn)的是自動(dòng)化執(zhí)行測(cè)試用例數(shù)據(jù),而其軟件設(shè)計(jì)主要是把BCM測(cè)試用例轉(zhuǎn)換成自動(dòng)化測(cè)試腳本。將每一個(gè)BCM測(cè)試用例分解成多個(gè)測(cè)試步驟,各個(gè)測(cè)試步驟之間相對(duì)獨(dú)立,每個(gè)步驟進(jìn)行最基礎(chǔ)的操作,如:初始化、延時(shí)等待、信號(hào)輸入、信號(hào)讀取、結(jié)果比對(duì)等。
首先完成底層搭建,編寫動(dòng)態(tài)鏈接庫,將測(cè)試過程中涉及的所有變量進(jìn)行封裝。使用LabVIEW完成BCM相關(guān)聯(lián)模塊的虛擬化,開發(fā)測(cè)試序列中調(diào)用的代碼vi,在這個(gè)過程中,主要是根據(jù)測(cè)試步驟來編寫對(duì)應(yīng)的測(cè)試代碼模塊[3]。最后利用TestStand軟件建立測(cè)試序列,從用戶使用角度,設(shè)計(jì)出符合實(shí)際工況要求的自動(dòng)化測(cè)試腳本,測(cè)試內(nèi)容覆蓋電動(dòng)門窗控制、中控門鎖控制、遙控防盜、燈光系統(tǒng)控制、電源分配等功能。
自動(dòng)化測(cè)試腳本的設(shè)計(jì)主要由測(cè)試管理軟件TestStand和實(shí)時(shí)測(cè)試與仿真軟件LabVIEW來實(shí)現(xiàn)。TestStand作為測(cè)試流程的管理調(diào)度軟件,負(fù)責(zé)測(cè)試流程、數(shù)據(jù)流的控制調(diào)配;LabVIEW負(fù)責(zé)開發(fā)具體的測(cè)試項(xiàng),包括數(shù)據(jù)的采集、處理、存儲(chǔ)等細(xì)節(jié)工作。
在TestStand軟件中,針對(duì)每個(gè)測(cè)試功能點(diǎn),在“Sequence Editor”窗口編寫?yīng)毩⒌淖詣?dòng)化測(cè)試序列,每個(gè)測(cè)試序列文件包括多個(gè)需要測(cè)試的步驟“Step”[4]。如圖2所示,以門狀態(tài)管理測(cè)試功能為例,該序列名為“Door status-12V”,指該序列實(shí)現(xiàn)電源電壓12V狀態(tài)下的門狀態(tài)管理功能測(cè)試。該序列中包含所有門狀態(tài)管理功能相關(guān)的測(cè)試用例,每個(gè)測(cè)試用例在序列中由一條或多條步驟“Step”實(shí)現(xiàn),每一條“Step”對(duì)應(yīng)一個(gè)測(cè)試代碼模塊vi。圖2中,在TestStand軟件中完成對(duì)“Step”的設(shè)置,設(shè)置所調(diào)用的vi的路徑,并對(duì)此處調(diào)用的vi模塊設(shè)置好輸入?yún)?shù)的默認(rèn)值,同時(shí)設(shè)置預(yù)期輸出參考值,模擬測(cè)試人員的手動(dòng)測(cè)試。

圖2 TestStand窗口界面

圖3 LabVIEW程序框圖界面
在自動(dòng)化測(cè)試序列中調(diào)用的vi是由LabVIEW軟件開發(fā)的測(cè)試代碼模塊。在LabVIEW軟件中,針對(duì)經(jīng)常執(zhí)行的操作和步驟,開發(fā)相應(yīng)的代碼vi,以便測(cè)試序列調(diào)用[4]。如圖3所示,以門狀態(tài)管理功能測(cè)試vi模塊為例,在程序框圖窗口按照功能的實(shí)現(xiàn)邏輯完成程序的編輯,首先判斷點(diǎn)火開關(guān)狀態(tài)、門開關(guān)狀態(tài),由于該vi可由多個(gè)用例調(diào)用使用,所以這里先判斷輸入變量的狀態(tài),接著等待1000ms,獲取門狀態(tài)輸出。在測(cè)試序列調(diào)用該vi時(shí),獲取的輸出與預(yù)期輸出參考值一致則該用例通過,否則不通過。另外,在軟件的前面板窗口創(chuàng)建用戶界面,可以使程序運(yùn)行時(shí)的效果更為直觀。同時(shí),用戶也可通過該界面實(shí)現(xiàn)對(duì)測(cè)試內(nèi)容的配置,實(shí)現(xiàn)單獨(dú)執(zhí)行某條測(cè)試用例的目的。
打開TestStand軟件,輸入登錄信息進(jìn)行登錄,打開Test-Stand Sequence文件,選中想要運(yùn)行的步驟,右鍵選擇“Run Selected Steps”,軟件首先分析Sequence文件,根據(jù)實(shí)現(xiàn)功能的不同,步驟運(yùn)行的時(shí)間會(huì)有所不同,運(yùn)行結(jié)束的狀態(tài)也會(huì)有所不同。如圖4所示,第一步運(yùn)行的是改變電壓的步驟,這一步實(shí)現(xiàn)供電電源電壓值的修改,沒有相應(yīng)的輸出,因此運(yùn)行完成后狀態(tài)為“Done”,當(dāng)執(zhí)行步驟有輸出時(shí),狀態(tài)為“Passed”或“Failed”,分別對(duì)應(yīng)實(shí)際輸出和預(yù)期參考值一致和不一致。

圖4 自動(dòng)化測(cè)試平臺(tái)運(yùn)行界面
當(dāng)點(diǎn)擊菜單欄中的綠色三角形按鈕,可運(yùn)行Sequence文件中的所有用例。如需單獨(dú)執(zhí)行某條用例,也可以右鍵選擇執(zhí)行選中的步驟。
運(yùn)行結(jié)束后,可以瀏覽此次運(yùn)行的結(jié)果報(bào)告,如圖5所示,同時(shí)在Sequence文件所在目錄下會(huì)自動(dòng)生成此次的運(yùn)行報(bào)告,方便后期查看和整理。

圖5 報(bào)告查看界面
作為一款圖形化編程軟件,LabVIEW的編程過程非常直觀且容易上手。當(dāng)用例需要修改時(shí),用戶可以在文件中找到項(xiàng)目文件雙擊打開或者在LabVIEW軟件中瀏覽找到項(xiàng)目文件打開,彈出項(xiàng)目瀏覽器對(duì)話框,點(diǎn)擊“vi”可以查看到自動(dòng)化用例調(diào)用的各個(gè)vi,打開后可以進(jìn)行修改。
經(jīng)過對(duì)某車型的BCM的測(cè)試,原本人工測(cè)試需要一位測(cè)試工程師測(cè)一個(gè)半月的工作,利用該自動(dòng)化測(cè)試平臺(tái)可實(shí)現(xiàn)兩天完成全部的測(cè)試,測(cè)試效率極大提高,同時(shí)最大程度避免了人為操作帶來的誤差。此外,該平臺(tái)操作簡(jiǎn)單,在執(zhí)行自動(dòng)化測(cè)試腳本之前已經(jīng)設(shè)置好了每條測(cè)試用例的初始狀態(tài)、輸入以及預(yù)期參考值,那么在平臺(tái)運(yùn)行的全過程都無需測(cè)試人員再進(jìn)行進(jìn)一步的操作。該平臺(tái)的維護(hù)也比較方便,對(duì)于功能升級(jí)的BCM的測(cè)試,只需修改或新增相應(yīng)的vi模塊和測(cè)試序列即可。因此,對(duì)于處于研發(fā)生產(chǎn)階段的BCM測(cè)試以及具有批量測(cè)試需求的BCM測(cè)試,該平臺(tái)具有很大的優(yōu)勢(shì)。
隨著工業(yè)4.0的發(fā)展,自動(dòng)化測(cè)試將成為未來汽車行業(yè)測(cè)試的趨勢(shì),面對(duì)更加復(fù)雜的汽車功能其優(yōu)勢(shì)愈加突顯[5],具有更為廣闊的市場(chǎng)前景。本文提出的基于TestStand的BCM自動(dòng)化測(cè)試平臺(tái),操作簡(jiǎn)單,具有良好的兼容性和可擴(kuò)展性,可以縮短測(cè)試的周期,節(jié)省人力成本,提高測(cè)試效率,同時(shí)將BCM的測(cè)試流程化,避免漏測(cè)、誤測(cè)和人為引入的誤差等問題。