999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于汽車嵌入式軟件的持續(xù)集成和持續(xù)測試分析

2023-06-14 07:13:54藍啟亮吳光耀周升輝
汽車實用技術 2023年10期

王 帥,藍啟亮,陳 聰,吳光耀,周升輝

基于汽車嵌入式軟件的持續(xù)集成和持續(xù)測試分析

王 帥,藍啟亮,陳 聰,吳光耀,周升輝

(比亞迪汽車工業(yè)有限公司 產品規(guī)劃及汽車新技術研究院,廣東 深圳 518118)

隨著汽車控制器軟件迭代速度的加快,其對軟件質量提出了更高的要求,故軟件集成和測試周期短而頻繁。持續(xù)集成/持續(xù)測試(CI/CT)已被認可是盡早發(fā)現(xiàn)缺陷的最佳實踐。文章分析了汽車嵌入式軟件的開發(fā)過程,通過引入持續(xù)集成測試方法,基于Jenkins搭建軟件持續(xù)集成測試平臺,該平臺支持多種開發(fā)語言,可以集成調用編譯器、模型在環(huán)(MIL)測試、硬件在環(huán)(HIL)測試等工具鏈,從而實現(xiàn)軟件集成、測試和缺陷通知完全自動化,將軟件工程師從重復冗長的集成測試任務中解放出來。持續(xù)集成測試在某混合電動汽車(HEV)整車控制器(VCU)軟件項目應用以后,可以節(jié)省近90%的軟件迭代耗時。

持續(xù)集成;持續(xù)測試分析;軟件自動化測試;汽車嵌入式軟件

在汽車行業(yè)向“新四化”趨勢發(fā)展的推動下,傳統(tǒng)分布式的電子電氣(Electrical Electronic, EE)架構向域集中式架構發(fā)展,伴隨著域控制器概念的提出,軟件也將根據(jù)相應功能域分類集成,域控制器的代碼量也與日俱增。服務導向架構(Service-Oriented Architecture, SOA)的開發(fā)模式可實現(xiàn)各軟件功能模塊間解耦,幫助軟件團隊縮短開發(fā)周期,快速迭代軟件版本。空中下載(Over- The-Air, OTA)升級技術將軟件快速部署到各個域控制器,為軟件產品的快速迭代提供保障。在行業(yè)競爭日趨激烈的背景下,只有要求產品不斷壓縮上市時間,才能搶占市場獲得主動權。持續(xù)集成(Continuous Integration, CI)和持續(xù)測試(Conti- nus Testing, CT)來源于Development和Operations,即DevOps[1]中提倡的CI—持續(xù)部署(Continuous Deployment, CD)—CT—持續(xù)交付(Continuous Delivery, CD),通過流程和CI/CT工具平臺,實現(xiàn)自動化“軟件交付”,使得構建、測試、發(fā)布軟件能夠更加快捷、頻繁和可靠,從而為軟件快速迭代提供質量保證,這一開發(fā)模式多出現(xiàn)于互聯(lián)網軟件行業(yè)[2-7],近年來在汽車嵌入式軟件領域中的應用也逐漸增多[8]。

傳統(tǒng)汽車軟件開發(fā)模型中,軟件開發(fā)工程師負責對軟件進行集成編譯,測試工程師通過手動/半自動化腳本進行軟件測試,其特點是以“人”為中心,需要工程師重復性的手動編譯、集成、測試、不斷更新工具腳本或配置、記錄問題和測試狀態(tài)跟蹤。測試周期和質量依賴于軟件工程師的數(shù)量、經驗能力和工具數(shù)量。CI/CT方法以人、測試流程、測試工具相結合,通過一系列工具鏈組合與自動化測試工程,提交新版軟件時即為測試流程的開始,接著快速找到軟件缺陷,解決測試和開發(fā)在時間上的矛盾,從而幫助軟件開發(fā)團隊實現(xiàn)軟件產品速度與質量目標。

基于Jenkins[9]搭建了CI/CT平臺,通過Jenkins配合版本控制軟件、軟件編譯工具、自動化測試工具和報告插件,當檢測到代碼倉庫有版本變化時,能夠自動觸發(fā)Jenkins調度相關軟件完成編譯集成、測試執(zhí)行、測試報告并將測試結果以郵件形式發(fā)送給開發(fā)和測試人員。本方案不僅能夠密切監(jiān)視軟件開發(fā)過程中的問題,而且能夠在無人值守的環(huán)境下自動完成預設的測試任務,完成重復的測試過程,通過更快地識別和修復相關問題,最終實現(xiàn)持續(xù)不斷的快速交付。

1 系統(tǒng)設計

1.1 架構設計

本文所構建的CI/CT平臺架構如圖1所示,該系統(tǒng)主要由包含版本控制、自動化構建、自動化測試三個核心環(huán)節(jié)。因此,將CI/CT平臺劃分為以下三個部分:

圖1 CI/CT平臺架構

1)版本管理服務器:Gitblit作為版本控制管理的工具,負責軟件代碼的版本控制,保證實施持續(xù)集成時,源代碼保存位置一致,以保障代碼的可維護性。因此,集成人員能夠從中輕松獲取項目工程全部源代碼。

2)持續(xù)集成服務器:Jenkins作為持續(xù)集成服務器,是CI/CT平臺的中心,通過驅動整套系統(tǒng)完成持續(xù)集成測試流程,并將結果發(fā)送至相關人員。Jenkins支持分布式部署,其中Jenkin-Master為Jenkins的主節(jié)點,通過Web端登錄,主要用于管理平臺任務和調度Jenkins-Slaver從節(jié)點。一個Master可以關聯(lián)多個Salver,同時每個Slaver可以分配多個Job[9]。

3)自動化集成測試環(huán)境:Hightec等工具作為軟件編譯集成環(huán)境,配置成Jenkins-Slaver1從節(jié)點進行軟件集成編譯,負責CI任務。dSPACE等硬件在環(huán)(Hardware In Loop, HIL)測試工具鏈作為軟件測試環(huán)境,配置成Jenkins-Slaver2從節(jié)點負責CT任務。

1.2 持續(xù)集成測試流程

持續(xù)集成測試平臺的工作流程如下:

1)開發(fā)人員負責軟件迭代并提交新的變更到Git倉庫;

2)Jenkins Master服務器會輪詢或者被Git Post-receive hooks腳本觸發(fā),分發(fā)相應任務;

3)CI節(jié)點Jenkins Slaver1接收到集成任務后,從Git中拉取相應分支進行集成編譯和模型在環(huán)(Model In Loop, MIL)單元測試,最后反饋集成編譯結果給Jenkins Master;

4)CT節(jié)點Jenkins Slaver2接收到測試任務后,從Jenkins Master獲取CI的結果文件和測試用例進行自動化測試,最后反饋測試結果給Jenkins Master;

5)最終全部測試結果和報告會由Jenkins Master統(tǒng)一以郵件方式發(fā)送給相關人員。

開發(fā)人員在接收到Jenkins報告郵件后,可以迅速得知本次Git推送是否成功通過編譯和測試,如果失敗也可以迅速查找問題并重新推送。測試人員可以通過Jenkins Master對整個持續(xù)集成平臺進行管理維護,同時可以根據(jù)反饋結果對測試用例進行維護。以上流程會反復迭代,從而達到軟件持續(xù)集成測試的目的。

2 CI/CT項目配置

根據(jù)前述的CI/CT平臺架構設計,針對新能源整車控制器的嵌入式軟件進行CI/CT項目的應用。

2.1 Jenkins平臺配置

Jenkins具備內容豐富的插件庫,其作為開源工具可供測試人員實現(xiàn)持續(xù)集成配置,整車控制器(Vehicle Control Unit, VCU)軟件集成測試任務需安裝Jenkins插件,如表1所示。

表1 Jenkins插件列表

插件作用 Git Plugin輪詢、提取、簽出分支,合并、標記和推送Git存儲庫等 Copy Artifact Plugin項目間傳遞文件 JUnit Plugin生成可擴展的標記語言(EXtensible Markup Language, XML)測試報告,并提供歷史測試結果的圖形可視化 Piketec-tpt Plugin執(zhí)行TPT軟件的測試用例,并生成測試報告 Html Publisher發(fā)布html測試報告 Mailer Plugin為構建結果配置電子郵件通知

基于以上插件在Jenkins搭建持續(xù)集成和持續(xù)測試任務,任務流主要由以下部分組成:

1)General通用設置:可以設定全局參數(shù)等;

2)源碼管理:負責與Git服務器進行交互;

3)構建觸發(fā)器:負責設定任務的觸發(fā)條件;

4)構建環(huán)境:負責對工程文件進行配置,如編譯配置、測試用例生成、控制器程序燒寫、執(zhí)行編輯測試等;

5)構建后操作:負責收集結果和發(fā)送郵件。

2.2 源碼管理配置

Jenkins需要通過Git Plugin分別與軟件倉庫和測試倉庫進行交互,如圖2所示,填入軟件倉庫地址以及具有倉庫讀寫權限的用戶密碼。根據(jù)任務需求,分別在Polling ignores commits in certain paths中通過正則表達式監(jiān)控指定文件夾進行觸發(fā)構建,并設定淺克隆深度為5層,以提高克隆速度。

2.3 構建觸發(fā)器配置

構建觸發(fā)器可以實現(xiàn)軟件更改后自動觸發(fā)執(zhí)行構建,此處采用Poll SCM方式,并配置兩種觸發(fā)器,即

1)事件觸發(fā):gitblit配置Post-receive鉤子實現(xiàn)事件觸發(fā);

2)定時觸發(fā):Jenkins設置定期輪詢定時觸發(fā)。其中,Post-receive鉤子函數(shù)采用groovy腳本實現(xiàn),程序結構如圖3所示。

圖2 源碼管理配置

圖3 Gitblit的鉤子函數(shù)

此腳本需在Gitblit倉庫啟用,Gitblit Post- receive設置如圖4所示。

圖4 Gitblit Post-receive設置

定時觸發(fā)方式在Jenkins構建觸發(fā)器設置,如圖5所示,(H */1 * * *)為每小時進行輪詢。

圖5 Jenkins構建觸發(fā)器設置

2.4 CI任務配置

CI任務主要通過bat腳本調用相關編譯工具和模型靜態(tài)檢查工具實現(xiàn),任務流程如圖6所示。

圖6 CI任務流程

CI節(jié)點服務器Jenkins-Slaver1的環(huán)境采用統(tǒng)一部署,避免了不同人員因配置不同導致的編譯差異,編譯結果更加可靠,同時服務器擁有高達72個核心的處理器,因此,可以充分調用Hightec的多核編譯能力,大大加快編譯速度。

2.5 CT任務配置

對于CT任務,通過Python調用測試系統(tǒng)api實現(xiàn)自動化測試,自動化測試的流程框架如圖7所示。自動化測試用例是實現(xiàn)CT的關鍵所在,為了加速自動化測試用例的開發(fā)速度,事先將整套HIL測試系統(tǒng)[10]提供的接口變量聲明到Mapping文件中,軟件測試工程師根據(jù)Mapping中的接口變量進行標準的文本用例開發(fā),Python負責識別預先定義的文本關鍵字,將文本用例自動轉換為所需的自動化測試用例,縮短人工開發(fā)自動化用例90%的耗時。測試工程師將用例和用例組合上傳到測試倉庫用于Jenkins調用以執(zhí)行CT任務。

圖7 CT任務流程框架

注:集成校準和采集(INtegrated Calibration and Acquisition, INCA)。

CT任務構建過程中涉及到的控制器上下電、燒寫腳本分別通過調用dSPACE、INCA軟件系統(tǒng)的api函數(shù)來實現(xiàn),使繁瑣手動的控制器程序燒寫及標定步驟得以完全自動化,避免人為操作失誤的引入。測試工程師只需專注于用例開發(fā)和測試分析報告即可。

2.6 構建后配置

在CI/CT任務結束以后,需要將測試結果生成測試報告并傳遞給相關人員,同時開啟Junit、html和E-mail插件,相關配置如圖8 所示。

Junit生成的結果趨勢報告可以查看項目的歷史構建狀態(tài)。圖9為html詳細報告,其可在網頁快速進行查看,從而幫助項目成員快速了解項目進展及定位問題點,進而完成用例和軟件迭代。

圖8 構建后的配置

圖9 html詳細報告

圖10 郵件通知

Jenkins的任務信息會通過E-mail插件發(fā)送給相關人員,以達到提醒目的,如圖10所示。

3 項目應用

經過前面配置后可以將CI/CT應用于具體的汽車嵌入式軟件開發(fā)項目中,以某混合電動汽車(Hybrid Electric Vehicle, HEV)VCU軟件迭代開發(fā)過程為例,統(tǒng)計得到如圖11所示的開發(fā)過程耗時分析圖,可以發(fā)現(xiàn)CI/CT引入以后節(jié)省了近90%的軟件迭代耗時,這主要是歸功于全自動集成測試流程帶來的效率提升。

圖11 軟件單次迭代耗時分析

4 結論

CI/CT平臺將繁瑣重復的集成測試工作交給機器來完成,降低了產品軟件集成的難度,提高了軟件開發(fā)效率,同時允許項目組將精力投入到更重要及更棘手的問題上,幫助項目成員時刻了解開發(fā)測試進度,開展有效決策,樹立產品信心,最終提高軟件產品的質量。研究的CI/CT平臺在某HEV整車控制器軟件開發(fā)項目中應用后,節(jié)省了近90%的迭代耗時。

[1] ALLSPAW J, HAMMOND P. 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr[C]//Web Perfor- mance and Operations Conference.Washington:O'Rei- lly,2009:233-237.

[2] 卞孟春.基于Jenkins的持續(xù)集成方案設計與實現(xiàn)[D].北京:中國科學院大學,2014.

[3] 劉博,汪宇昕.一種基于Jenkins的嵌入式軟件持續(xù)集成方法[J].鐵道機車車輛,2018,38(6):20-22.

[4] 陳迪.基于Jenkins的持續(xù)集成系統(tǒng)研究[J].電子測試, 2020(8):48-51.

[5] 蔡永健,路云菲,鄔遠祥,等.基于Jenkins和Docker容器技術在數(shù)字化電站項目自動化部署的研究及應用[J].計算機時代,2020(2):77-80.

[6] 雷建勝,蘇曉,金明磊.一種分布式可持續(xù)集成自動化測試平臺[J].計算機與現(xiàn)代化,2020(4):14-18.

[7] 張曉帆,劉寧,潘帆.持續(xù)集成系統(tǒng)可視化設計研究[J].計算機與現(xiàn)代化,2020,30(2):58-62.

[8] 錢俊磊.基于CANoe和Jenkins的ECU軟件自動化測試系統(tǒng)的設計與實現(xiàn)[J].汽車實用技術,2019,44 (22):64-67.

[9] SMART J F.Jenkins權威指南[M].北京:電子工業(yè)出版社,2016.

[10] 黨美婷,任佳越,楊啟東.基于dSPACE 的電機控制器硬件在環(huán)測試研究[J].汽車實用技術,2019,44(18): 131-134.

Continuous Integration and Continuous Testing Analysis Based on Automotive Embedded Software

WANG Shuai, LAN Qiliang, CHEN Cong, WU Guangyao, ZHOU Shenghui

( Product Planning & Automotive New Technology Research Institude,BYD Automobile Industry Company Limited, Shenzhen 518118, China )

As the iteration of automotive embedded software becomes more and more frequent, it poses a higher challenge to software quality, and so software integration and testing cycles become shorter and more frequent. Continuous integration/continus testing(CI/CT) has been acknowledged as the best practice for early detection of defects.This paper analyzes the development process of automotive embedded software,though introducing the method of continuous integration testing,and a software continuous integration testing platform is built based on Jenkins.The platform supports multiple development languages, and can integrate and call the tool chain of compiler, model in loop(MIL) testing, hardware in loop(HIL) testing, etc., so as to realize the complete automation of software integration, testing and defect notification. Finally, engineers can be free themselves from tremendous software development tasks.After the application of continuous integration and continuous testing methods in a hybrid electric vehicle(HEV) vehicle control unit (VCU) software projects, nearly 90% of the software iteration time can be saved.

Continuous integration;Continuous testing analysis;Software automated testing;Automotive embedded software

U467.5+26

A

1671-7988(2023)10-156-07

10.16638/j.cnki.1671-7988.2023.010.032

王帥(1989—),男,工程師,研究方向為混合動力汽車控制、嵌入式軟件、軟件自動化測試,E-mail:sandey. wong@hotmail.com。

主站蜘蛛池模板: 国产成本人片免费a∨短片| 国产欧美日韩va另类在线播放| 伊人蕉久影院| 久久亚洲国产最新网站| 国产精鲁鲁网在线视频| 韩国v欧美v亚洲v日本v| 成人年鲁鲁在线观看视频| 2021国产精品自产拍在线| 在线播放精品一区二区啪视频| 狠狠做深爱婷婷综合一区| 亚洲精品天堂在线观看| 国产精品冒白浆免费视频| 亚洲日韩国产精品综合在线观看| 91麻豆国产视频| 中文字幕亚洲精品2页| 欧美国产精品不卡在线观看| 国产成人高清精品免费5388| 色亚洲成人| 无码高潮喷水专区久久| 久热中文字幕在线观看| 欧美日韩国产综合视频在线观看| 欧美中文字幕在线二区| 亚洲AV色香蕉一区二区| 亚洲日本www| 亚洲无码视频图片| 久久精品无码一区二区日韩免费| 国产不卡一级毛片视频| 日韩AV手机在线观看蜜芽| 真人高潮娇喘嗯啊在线观看| 成人国产小视频| 香蕉国产精品视频| 日韩精品成人在线| 久久中文无码精品| 亚洲精品视频免费| 国产女人在线观看| 国产亚洲精| 亚洲国产精品一区二区第一页免| 国产欧美日韩一区二区视频在线| 久久国产毛片| 亚洲v日韩v欧美在线观看| 国产丝袜丝视频在线观看| 爆操波多野结衣| 青青青亚洲精品国产| 爆操波多野结衣| 丝袜国产一区| 影音先锋亚洲无码| 毛片免费高清免费| 91成人精品视频| 91精品视频在线播放| 国产成人精品一区二区| 天天综合网亚洲网站| 欧美国产日产一区二区| 久久久91人妻无码精品蜜桃HD| 亚洲欧州色色免费AV| 色精品视频| 国产乱人免费视频| 1024你懂的国产精品| 亚洲国产精品无码久久一线| P尤物久久99国产综合精品| 国产成人综合久久精品下载| 18禁色诱爆乳网站| 国产91蝌蚪窝| 91精品啪在线观看国产| www.精品国产| 亚洲精品桃花岛av在线| 国产97视频在线观看| 九色国产在线| 综合网天天| 欧美色99| 成人午夜精品一级毛片| 欧美另类视频一区二区三区| 亚洲欧美激情另类| 日韩不卡免费视频| 91成人精品视频| 国产手机在线小视频免费观看| 日本不卡在线视频| 青青草原偷拍视频| 日韩人妻无码制服丝袜视频| 亚亚洲乱码一二三四区| 欧美日韩导航| 免费高清毛片| 亚洲婷婷六月|