亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2023-06-14 07:13:54藍(lán)啟亮吳光耀周升輝
        汽車實用技術(shù) 2023年10期
        關(guān)鍵詞:嵌入式軟件測試用例插件

        王 帥,藍(lán)啟亮,陳 聰,吳光耀,周升輝

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

        王 帥,藍(lán)啟亮,陳 聰,吳光耀,周升輝

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

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

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

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

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

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

        1 系統(tǒng)設(shè)計

        1.1 架構(gòu)設(shè)計

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

        圖1 CI/CT平臺架構(gòu)

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

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

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

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

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

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

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

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

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

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

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

        2 CI/CT項目配置

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

        2.1 Jenkins平臺配置

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

        表1 Jenkins插件列表

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

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

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

        2)源碼管理:負(fù)責(zé)與Git服務(wù)器進(jìn)行交互;

        3)構(gòu)建觸發(fā)器:負(fù)責(zé)設(shè)定任務(wù)的觸發(fā)條件;

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

        5)構(gòu)建后操作:負(fù)責(zé)收集結(jié)果和發(fā)送郵件。

        2.2 源碼管理配置

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

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

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

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

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

        圖2 源碼管理配置

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

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

        圖4 Gitblit Post-receive設(shè)置

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

        圖5 Jenkins構(gòu)建觸發(fā)器設(shè)置

        2.4 CI任務(wù)配置

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

        圖6 CI任務(wù)流程

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

        2.5 CT任務(wù)配置

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

        圖7 CT任務(wù)流程框架

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

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

        2.6 構(gòu)建后配置

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

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

        圖8 構(gòu)建后的配置

        圖9 html詳細(xì)報告

        圖10 郵件通知

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

        3 項目應(yīng)用

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

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

        4 結(jié)論

        CI/CT平臺將繁瑣重復(fù)的集成測試工作交給機(jī)器來完成,降低了產(chǎn)品軟件集成的難度,提高了軟件開發(fā)效率,同時允許項目組將精力投入到更重要及更棘手的問題上,幫助項目成員時刻了解開發(fā)測試進(jìn)度,開展有效決策,樹立產(chǎn)品信心,最終提高軟件產(chǎn)品的質(zhì)量。研究的CI/CT平臺在某HEV整車控制器軟件開發(fā)項目中應(yīng)用后,節(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ù)集成方案設(shè)計與實現(xiàn)[D].北京:中國科學(xué)院大學(xué),2014.

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

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

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

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

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

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

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

        [10] 黨美婷,任佳越,楊啟東.基于dSPACE 的電機(jī)控制器硬件在環(huán)測試研究[J].汽車實用技術(shù),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。

        猜你喜歡
        嵌入式軟件測試用例插件
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        基于混合遺傳算法的回歸測試用例集最小化研究
        實時嵌入式軟件的測試技術(shù)
        電子測試(2018年10期)2018-06-26 05:54:08
        全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
        電子制作(2017年17期)2017-12-18 06:40:56
        MapWindowGIS插件機(jī)制及應(yīng)用
        基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計與實現(xiàn)
        航天嵌入式軟件浮點運算誤差分析與控制
        基于Revit MEP的插件制作探討
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        国产美女黄性色av网站| 欧美巨大xxxx做受中文字幕| 伊人激情av一区二区三区| 中文字幕影片免费人妻少妇| 尤物视频在线观看| 日韩精品第一区二区三区| 男子把美女裙子脱了摸她内裤| 日韩AVAV天堂AV在线| 天天燥日日燥| av中文字幕一区人妻| 无码一级视频在线| 在线亚洲+欧美+日本专区| 日韩一区二区三区人妻免费观看| 国产精品狼人久久久影院| 久久噜噜噜| 尤物在线精品视频| 与漂亮的女邻居少妇好爽| 亚洲无码啊啊啊免费体验| 欧美成人一级视频| 人禽伦免费交视频播放| 18精品久久久无码午夜福利| 超级乱淫片国语对白免费视频| 日本91一区二区不卡| 国产农村妇女毛片精品久久久| 海角国精产品一区一区三区糖心 | 国产成人久久精品亚洲小说| 亚洲综合欧美在线一区在线播放| 精品亚洲a∨无码一区二区三区 | 日韩人妖视频一区二区| 国产自拍一区在线视频| 自拍偷拍一区二区三区四区| 99亚洲乱人伦精品| 国产精品视频一区二区噜噜| 欧美性受xxxx狂喷水| 亚洲另类丰满熟妇乱xxxx| 一区二区激情偷拍老牛视频av| 一区二区三区在线蜜桃| 色窝综合网| 久久艹影院| 亚洲av日韩av天堂一区二区三区 | 国产草草影院ccyycom|