鄭淳允 巫輝燕
摘 要:本文通過(guò)對(duì)汽車(chē)信息娛樂(lè)系統(tǒng)測(cè)試的各種需求進(jìn)行研究,有針對(duì)性地設(shè)計(jì)一套自動(dòng)化測(cè)試系統(tǒng),并對(duì)其工作原理和功能實(shí)現(xiàn)做出詳細(xì)解析,從而提高排查功能故障的效率,使汽車(chē)各分系統(tǒng)的性能得到較好的發(fā)揮,提高了汽車(chē)測(cè)試的效率,能夠把更多的測(cè)試人員從重復(fù)機(jī)械的大部分功能測(cè)試中解放出來(lái)。
關(guān)鍵詞:汽車(chē) 信息娛樂(lè)系統(tǒng) 自動(dòng)化測(cè)試
Design of automatic test platform for automotive infotainment system
Zheng Chunyun Wu Huiyan
Abstract:In this paper, through the study of various requirements of automotive information and entertainment system testing, we design a set of automatic testing system, and make a detailed analysis of its working principle and function realization, so as to improve the efficiency of troubleshooting function, make the performance of each subsystem of the car get better play, improve the efficiency of automotive testing, and make more testers pay more attention Most of the functions of the machine are free from the test.
Key words:Automobile; infotainment system; automatic test;
1 引言
當(dāng)前,軟件定義汽車(chē)逐漸成為行業(yè)的標(biāo)準(zhǔn),汽車(chē)測(cè)試方法的改進(jìn)對(duì)電動(dòng)汽車(chē)乘坐的舒適性、安全性和節(jié)能環(huán)保具有重要的意義[1],合理的測(cè)試方法既可加快汽車(chē)投產(chǎn)升級(jí)的速度,又可以使各ECU元件充分發(fā)揮其應(yīng)有的效果,因此,我們有必要對(duì)利用腳本對(duì)汽車(chē)批量測(cè)試尤其是對(duì)汽車(chē)的信息娛樂(lè)系統(tǒng)批量測(cè)試的技術(shù)進(jìn)行研究,使汽車(chē)各分系統(tǒng)能發(fā)揮更佳效能,促進(jìn)電動(dòng)汽車(chē)的普及化。
2 自動(dòng)化測(cè)試系統(tǒng)的組成
汽車(chē)的信息娛樂(lè)系統(tǒng)具有包括乘客信息娛樂(lè)、汽車(chē)和環(huán)境信息顯示、導(dǎo)航和連接等在內(nèi)的車(chē)內(nèi)特性,主要由信息娛樂(lè)系統(tǒng)顯示屏,無(wú)線音響單元,遠(yuǎn)程信息處理控制單元(TCU)等組成,與車(chē)輛其它分系統(tǒng)之間通過(guò)總線以報(bào)文的形式實(shí)現(xiàn)通信。
本文設(shè)計(jì)的自動(dòng)化測(cè)試系統(tǒng)主要由總線,圖像識(shí)別,dSPACE,程控電源,藍(lán)牙配對(duì),查找控件等基本模塊組成。其采用Python語(yǔ)言進(jìn)行編寫(xiě)實(shí)現(xiàn)。Python是一種腳本型的編程語(yǔ)言,使用起來(lái)非常靈活,其具有功能強(qiáng)大、簡(jiǎn)單易學(xué)、支持面向?qū)ο蟆⒑瘮?shù)式編程[2]的特點(diǎn)。Python擁有眾多的標(biāo)準(zhǔn)庫(kù)和第三庫(kù),簡(jiǎn)單易用且功能強(qiáng)大,使得開(kāi)發(fā)各種應(yīng)用程序變得簡(jiǎn)潔快速,滿足不同軟件的開(kāi)發(fā)需求,非常適合非軟件開(kāi)發(fā)人員學(xué)習(xí)和應(yīng)用[3][4]。
相比人工測(cè)試,其特點(diǎn)是采用包括自動(dòng)生成代碼/下載和試驗(yàn)/調(diào)試的一整套工具包[5]。對(duì)傳入的測(cè)試用例檢索各行,每一行按腳本執(zhí)行測(cè)試流程,對(duì)測(cè)試流程中的重復(fù)操作實(shí)現(xiàn)全自動(dòng)化執(zhí)行[6]。
3 自動(dòng)化測(cè)試系統(tǒng)的工作原理
3.1 總線測(cè)試
本文設(shè)計(jì)的自動(dòng)化測(cè)試系統(tǒng)的總線測(cè)試功能目前只支持can總線收發(fā),主要是收集車(chē)輛通信的can報(bào)文信號(hào)并與測(cè)試用例中預(yù)期的can報(bào)文進(jìn)行比對(duì)[7][8]。其工作流程為: gRPC客戶端構(gòu)造一個(gè)遠(yuǎn)程的客戶端,然后讓PC端進(jìn)行收發(fā)報(bào)文,如圖1所示。點(diǎn)擊總線按鈕。
插入總線斷言第一步需導(dǎo)入DBC文件。DBC文件可以理解為是對(duì)底層通信的can總線信號(hào)的翻譯,該文件會(huì)把把翻譯后的文字顯示在導(dǎo)入的軟件界面上,因此可以更直觀地監(jiān)控總線收發(fā)的報(bào)文。導(dǎo)入DBC文件后點(diǎn)擊報(bào)文,點(diǎn)擊后出現(xiàn)報(bào)文信息和信號(hào)信息。Phys Value為需發(fā)送的值,Check Value為需接收的有效值,Invalid Value為需接收的無(wú)效值,上述參數(shù)均為DBC文件翻譯后在平臺(tái)上的顯示。插入發(fā)送需填寫(xiě)時(shí)限,插入接收需填寫(xiě)時(shí)限和有效幀數(shù),無(wú)效幀數(shù)選填。插入成功后會(huì)添加到腳本步驟列表之中。
3.2 攝像頭截取圖像對(duì)比功能測(cè)試
攝像頭圖像識(shí)別功能測(cè)試需要用戶在編寫(xiě)腳本時(shí)保存一張預(yù)期圖片和該圖片需要對(duì)比的區(qū)域。測(cè)試進(jìn)行時(shí),該功能會(huì)利用攝像頭進(jìn)行拍攝,并抽取一幀圖片,獲取到需要識(shí)別的圖片,然后對(duì)該圖片進(jìn)行裁剪,將需要對(duì)比的區(qū)域裁剪下來(lái)得到需要對(duì)比的區(qū)域圖。得到區(qū)域圖后會(huì)計(jì)算該圖與預(yù)期圖各自的直方圖結(jié)果,利用兩圖的直方圖結(jié)果計(jì)算出兩圖的相似度。最后相似度大于0.7(相似度值可在軟件設(shè)置調(diào))即為Pass,否則 Fail。流程圖如圖2。
點(diǎn)擊攝像頭按鈕,出現(xiàn)如圖3,該界面可對(duì)攝像頭進(jìn)行操作。左邊視圖是攝像頭實(shí)時(shí)視頻,右邊視圖是點(diǎn)擊拍照后截取視頻最后一幀的照片。首先需要選擇攝像頭設(shè)備點(diǎn)擊連接,連接設(shè)備后可進(jìn)行拍照,拍照后可進(jìn)行保存或插入斷言。保存即保存到本地臨時(shí)文件夾(關(guān)閉軟件后會(huì)被刪除),插入斷言即將攝像頭的圖像對(duì)比斷言加入到主界面,點(diǎn)擊關(guān)閉或關(guān)閉窗體都可將攝像頭關(guān)閉。
3.3 dSPACE工具對(duì)機(jī)柜進(jìn)行操作
dSPACE[4][5]功能是建立一個(gè)gRPC服務(wù)器,然后對(duì)gRPC服務(wù)器進(jìn)行請(qǐng)求來(lái)實(shí)現(xiàn)的。gRPC 服務(wù)器利用dSPACE的API進(jìn)行對(duì)機(jī)柜進(jìn)行操作,其實(shí)質(zhì)是通過(guò)建立一套命令行工具,以方便高級(jí)測(cè)試人員可以擺脫固定腳本的束縛,用命令行工具實(shí)現(xiàn)更靈活的操作,對(duì)于一些不常見(jiàn)故障的排查與測(cè)試有良好的效果。
3.4 程控電源測(cè)試
程控電源的測(cè)試是基于硬件在環(huán)仿真(HIL)實(shí)現(xiàn)的[9][10][11],打開(kāi)Hil機(jī)柜界面,先點(diǎn)擊設(shè)置,加載和配置SDF后方可進(jìn)行對(duì)信號(hào)的操作。右擊信號(hào)可查看信號(hào)信息,插入讀或?qū)懶盘?hào)值斷言,監(jiān)控信號(hào)值變化。
程控電源簡(jiǎn)單來(lái)說(shuō)就是通過(guò) pyvisa 發(fā)送 SCPI 指令來(lái)實(shí)現(xiàn)對(duì)程控電源的控制。在 PC 端中集合了幾個(gè)常見(jiàn)的功能,比如調(diào)節(jié)電壓,電流等,具體到實(shí)現(xiàn)方法都是一樣的發(fā)送SCPI的指令。由是通過(guò)pyvisa進(jìn)行操作的,所以pyvisa不支持的程控電源類(lèi)型無(wú)法進(jìn)行控制。程控電源服務(wù)器的流程如圖4。
程控電源主要用于汽車(chē)信息娛樂(lè)系統(tǒng)的硬件測(cè)試中,比如額定工作電流電壓、高壓低壓保護(hù)、待機(jī)時(shí)暗電流大小的監(jiān)測(cè)等等測(cè)試用例,自動(dòng)化測(cè)試可以準(zhǔn)確調(diào)節(jié)電流電壓,避免人工調(diào)節(jié)的偶然誤差和反應(yīng)時(shí)間滯后的缺點(diǎn),同時(shí)保證測(cè)試者與測(cè)試設(shè)備的安全。
腳本中插入配置后,腳本中的所有信號(hào)讀寫(xiě)都根據(jù)該配置進(jìn)行讀寫(xiě)信號(hào)值。如未插入配置,腳本中的信號(hào)讀寫(xiě)會(huì)根據(jù)自身填寫(xiě)的MA 端口進(jìn)行讀寫(xiě),此時(shí)如果服務(wù)器未開(kāi)啟該端口會(huì)導(dǎo)致腳本報(bào)錯(cuò)。
3.5 本地圖像識(shí)別
本地圖像識(shí)別需用戶在編寫(xiě)腳本時(shí)保存一張預(yù)期圖片和該圖片需要對(duì)比的區(qū)域,可以調(diào)用攝像頭截圖獲取所需圖片。測(cè)試進(jìn)行時(shí),該功能會(huì)利用adb對(duì)選擇運(yùn)行的安卓設(shè)備進(jìn)行截屏,獲取到需要識(shí)別的圖片,然后對(duì)該圖片進(jìn)行裁剪,將需要對(duì)比的區(qū)域裁剪下來(lái)得到需要對(duì)比的區(qū)域圖。得到區(qū)域圖后會(huì)計(jì)算該圖與預(yù)期圖各自的直方圖結(jié)果,利用兩圖的直方圖結(jié)果計(jì)算出兩圖的相似度。最后相似度大于0.7(相似度值可在軟件設(shè)置調(diào))即為Pass,否則Fail。測(cè)試流程圖如圖5。
3.6 查找控件
控件是用戶與可與之交互以輸入或操作數(shù)據(jù)的對(duì)象??丶ǔ3霈F(xiàn)在對(duì)話框中或工具欄上。自動(dòng)化測(cè)試系統(tǒng)需要代替人工點(diǎn)擊車(chē)機(jī)的動(dòng)作,與汽車(chē)信息娛樂(lè)系統(tǒng)頻繁交互,操作量大,因此準(zhǔn)確快速查找到相應(yīng)的控件對(duì)提高該自動(dòng)化測(cè)試系統(tǒng)測(cè)試的效率和準(zhǔn)確率有非常重要的作用。
查找控件主要有兩個(gè)功能,一是根據(jù)包名打開(kāi)應(yīng)用;二是獲取界面中的控件元素,而獲 取控件元素的方式有3種,分別為 text,description,resouceId。還可設(shè)置“是否點(diǎn)擊”參數(shù)來(lái)執(zhí)行相應(yīng)動(dòng)作。
4 自動(dòng)化測(cè)試過(guò)程實(shí)例
基于開(kāi)發(fā)的自動(dòng)化測(cè)試平臺(tái),對(duì)導(dǎo)航軟件中的指示牌文字信息測(cè)試用例進(jìn)行自動(dòng)化測(cè)試,過(guò)程如下:
4.1 測(cè)試需求
在導(dǎo)航過(guò)程中,對(duì)導(dǎo)航界面出現(xiàn)的指示牌能夠正確顯示文字信息。
測(cè)試前提描述:連接攝像頭,調(diào)好對(duì)焦曝光等;儀表在地圖界面,主題為經(jīng)典主題;車(chē)機(jī)在主頁(yè)界面,用adb工具連接。操作車(chē)機(jī)模擬導(dǎo)航,地圖導(dǎo)航信息(指示牌文字)傳輸正常。
4.2 測(cè)試步驟
用戶首先調(diào)用采集圖像接口,獲取同一時(shí)刻下的車(chē)機(jī)和儀表盤(pán)的圖像。在儀表盤(pán)和車(chē)機(jī)端的圖像中,該接口規(guī)定了截取導(dǎo)航軟件指示牌文字信息所在的矩形區(qū)域的坐標(biāo);系統(tǒng)模塊根據(jù)這些坐標(biāo)對(duì)儀表盤(pán)和車(chē)機(jī)的圖像進(jìn)行裁剪,得到兩者指示牌文字信息的圖像,再根據(jù)OCR文字識(shí)別工具識(shí)別出兩者的指示牌文字信息,包括距離下一道路的公里數(shù)、下一道路的名稱、總行程的剩余公里數(shù)、總行程的預(yù)計(jì)剩余時(shí)間。該接口對(duì)兩者的上述識(shí)別出來(lái)的信息進(jìn)行比對(duì),如果下一道路的公里數(shù)和道路名稱一致,則返回比對(duì)成功,否則提示比對(duì)失敗。
4.3 測(cè)試執(zhí)行及結(jié)果分析
對(duì)搭建好的測(cè)試序列進(jìn)行系統(tǒng)批量的執(zhí)行,啟動(dòng)車(chē)機(jī)高德導(dǎo)航地圖,進(jìn)入模擬導(dǎo)航模式,模擬導(dǎo)航過(guò)程中顯示出沿途指示牌文字信息,攝像頭截取圖像清晰,系統(tǒng)能準(zhǔn)確定位文字出現(xiàn)區(qū)域,并與系統(tǒng)后臺(tái)文字庫(kù)比對(duì),如果比對(duì)正確,則指示牌文字定位框顯示黃色,如圖6所示。以上結(jié)果能夠滿足測(cè)試預(yù)測(cè)結(jié)果,證明了該系統(tǒng)的科學(xué)性和可行性。
對(duì)該用例進(jìn)行180次測(cè)試后發(fā)現(xiàn),該自動(dòng)化測(cè)試腳本能夠準(zhǔn)確定位圖片中隨機(jī)出現(xiàn)指示牌的準(zhǔn)確位置,并可以準(zhǔn)確識(shí)別出指示牌上的中文和數(shù)字,經(jīng)過(guò)與百度云、pytesseract等常用的文字識(shí)別軟件的對(duì)比,未發(fā)現(xiàn)識(shí)別錯(cuò)誤的情況出現(xiàn),表明該系統(tǒng)還具有良好的魯棒性。
5 結(jié)束語(yǔ)
本文根據(jù)目前汽車(chē)測(cè)試效率較低的現(xiàn)狀設(shè)計(jì)了一套自動(dòng)化測(cè)試系統(tǒng),主要由總線,圖像識(shí)別,dSPACE,程控電源,攝像頭,查找控件等基本模塊組成,通過(guò)這些功能,可以把大量重復(fù)測(cè)試步驟進(jìn)行批量操作,使得測(cè)試效率極大提高。合理的測(cè)試方法既可加快汽車(chē)投產(chǎn)升級(jí)的速度,又可以使各ECU元件充分發(fā)揮其應(yīng)有的效果,因此,我們有必要對(duì)利用腳本對(duì)汽車(chē)批量測(cè)試的技術(shù)進(jìn)行研究,使汽車(chē)各分系統(tǒng)能發(fā)揮更佳效能。總的來(lái)說(shuō),這套自動(dòng)化測(cè)試系統(tǒng)使得汽車(chē)測(cè)試效率提高,評(píng)價(jià)標(biāo)準(zhǔn)統(tǒng)一,有利于解放大量測(cè)試人力。
本文的主要?jiǎng)?chuàng)新點(diǎn)是研究了汽車(chē)自動(dòng)化測(cè)試的絕大部分應(yīng)用場(chǎng)景,全面覆蓋了汽車(chē)測(cè)試的要點(diǎn),這些測(cè)試功能方法提升了重復(fù)測(cè)試的效率,統(tǒng)一了測(cè)試標(biāo)準(zhǔn),有利于穩(wěn)定汽車(chē)電子元件性能,具有實(shí)用性、先進(jìn)性等。
參考文獻(xiàn):
[1]歐陽(yáng)明高.中國(guó)新能源汽車(chē)產(chǎn)業(yè)未來(lái)十年大勢(shì)展望[J].汽車(chē)縱橫,2016(6):62-65.
[2]周偉,宗杰.Python開(kāi)發(fā)技術(shù)詳解[M].北京:機(jī)械工業(yè)出版社.2009.
[3]華劍南.Python語(yǔ)言在自動(dòng)化測(cè)試系統(tǒng)中的應(yīng)用[J].電子技術(shù)與軟件工程,2017(8):252-253.
[4]王聰穎.基于Python的自動(dòng)化測(cè)試框架的分析與設(shè)計(jì)[D].北京:北京郵電大學(xué),2017.
[5]葛慶光.純電動(dòng)汽車(chē)整車(chē)控制器的研究[D].合肥工業(yè)大學(xué),2012.
[6]黃福春.新能源整車(chē)控制器硬件在環(huán)測(cè)試研究與應(yīng)用[J].汽車(chē)電器,2019(11):34-36.
[7]任大恒,嚴(yán)曉,黃碧雄,王影.電池管理系統(tǒng)的報(bào)文采集與解析[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2020,29(06):132-136.
[8]岳洋,蘭國(guó)輝,周紅進(jìn).基于GSM和CAN總線的數(shù)據(jù)采集監(jiān)控系統(tǒng)[J].電子測(cè)量技術(shù),2012,35(10):107-109+126.
[9]吳方義,劉衛(wèi)東,燕冬,等.基于硬件在環(huán)的整車(chē)控制器自動(dòng)化測(cè)試研究與應(yīng)用[J].汽車(chē)電器,2018(11):29-31.
[10]廖奇祥.基于硬件在環(huán)的整車(chē)控制器自動(dòng)化測(cè)試研究與應(yīng)用[J].決策探索(中),2020(02):60-61.
[11]巫輝燕,林漢雄.基于HIL的車(chē)載網(wǎng)關(guān)控制器的自動(dòng)化測(cè)試研究[J].汽車(chē)實(shí)用技術(shù),2021,46(05):140-142.