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

        ?

        基于CANoe 和Jenkins 的ECU 軟件自動(dòng)化 測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2019-11-29 06:56:48錢俊磊
        汽車實(shí)用技術(shù) 2019年22期
        關(guān)鍵詞:測試報(bào)告測試用例腳本

        錢俊磊

        (上海蔚來汽車有限公司,上海 201805)

        1 前言

        隨著電動(dòng)汽車的發(fā)展,汽車電子軟件的快速迭代,對軟件測試的要求也越來越高。大多數(shù)軟件開發(fā)基本都遵循三個(gè)不同的階段:設(shè)計(jì)、開發(fā)、測試。但是,這樣的流程有比較明顯的缺陷:(1)軟件設(shè)計(jì)中存在的故障需要等到軟件開發(fā)完成以后才能被發(fā)現(xiàn),間隔時(shí)間較久;(2)在軟件開發(fā)過程中,故障會(huì)不斷地積累;(3)在測試階段發(fā)現(xiàn)的問題往往比開發(fā)階段發(fā)現(xiàn)的問題要多三倍以上[1]。三個(gè)階段完成后,軟件迭代的周期往往被持續(xù)拉長,導(dǎo)致很多時(shí)候落后于進(jìn)度計(jì)劃,成本往往超出預(yù)算,更嚴(yán)重的是可能導(dǎo)致軟件的市場價(jià)值大打折扣。所以持續(xù)集成和自動(dòng)化測試是非常有必要的,在汽車ECU 軟件領(lǐng)域,如何選用合適的測試工具搭建有效的集成測試框架是工程師普遍關(guān)注的問題,特別是現(xiàn)在汽車軟件越來越復(fù)雜,隨著自動(dòng)駕駛功能的不斷升級,被測功能越來越多,測試用例也隨之與日俱增,每個(gè)回歸測試就需要成百上千的測試用例組成,測試用例的管理也非常不便。

        本文基于CANoe 和Jenkins 工具搭建了一套可持續(xù)集成的自動(dòng)化測試系統(tǒng),當(dāng)檢測到代碼倉庫中有版本變化時(shí),能夠自動(dòng)觸發(fā)Jenkins 調(diào)度本地的CANoe 測試工程進(jìn)行測試,生成并解析測試報(bào)告,并且將每次的測試結(jié)果上傳到TestRail中進(jìn)行記錄,同時(shí)會(huì)通過郵件將測試結(jié)果發(fā)送給開發(fā)和測人員,相關(guān)人員及時(shí)收到測試結(jié)果,從而實(shí)現(xiàn)對軟件開發(fā)過程中出現(xiàn)的問題進(jìn)行快速定位和解決,最終實(shí)現(xiàn)持續(xù)不斷的快速交付。

        2 自動(dòng)化測試系統(tǒng)設(shè)計(jì)

        2.1 自動(dòng)化測試系統(tǒng)框架

        ECU 軟件的持續(xù)集成自動(dòng)化測試系統(tǒng)框架如圖 1 所示。該系統(tǒng)主要由Jenkins、Git、Artifactory、TestRail、Outlook、測試臺架等組成。Jenkins 是一個(gè)持續(xù)集成服務(wù)器,作為集成測試的主要工具。Jenkins-Master 為Jenkins 的主節(jié)點(diǎn),通過Web 端登錄,主要用于管理測試任務(wù),調(diào)度Jenkins-Slaver,一個(gè)Master 可以關(guān)聯(lián)多個(gè)Salver,并且每個(gè)Slaver 可以分配多個(gè)Job,測試人員可以根據(jù)需要設(shè)置測試任務(wù),自動(dòng)完成重復(fù)測試的工作。Git 是一個(gè)分布式的版本控制工具,可以對不同的軟件版本進(jìn)行高效的管理,而Artifactory 是一個(gè)軟件包存儲(chǔ)倉庫,不同的軟件版本經(jīng)過編譯后生成的安裝包都會(huì)被存儲(chǔ)到這個(gè)倉庫中,方便管理和下載。TestRail 是一款全面基于Web 的測試用例管理軟件,可有效管理,跟蹤和組織軟件測試工作。

        自動(dòng)化測試系統(tǒng)的設(shè)計(jì)思路如下:(1)當(dāng)開發(fā)人員提交新的變更到Git 倉庫,經(jīng)過編譯生成可執(zhí)行軟件包,并存儲(chǔ)在Artifactory 倉庫中。(2)Jenkins 輪詢檢測到Artifactory 中有新的可執(zhí)行包生成,出發(fā)測試Job,通過控制Jenkins-Slaver 從而控制相應(yīng)的測試臺架進(jìn)行軟件的刷寫和測試;(3)Jenkins- Slaver 控制測試臺架完成測試工作,生成測試報(bào)告,通過Python 腳本解析測試報(bào)告上傳測試結(jié)果到TestRail 中,完成本次測試結(jié)果的記錄;(4)Jenkins 從TestRail 中獲取本次測試的結(jié)果,并且通過Python 腳本控制Outlook 將報(bào)告內(nèi)容整理后發(fā)送給相關(guān)人員;(5)開發(fā)人員收到測試結(jié)果后,可以迅速知道自己本次改動(dòng)是否成功通過測試,如果測試結(jié)失敗,也可以迅速的定位到問題點(diǎn);(6)測試人員可以通過Master 對整個(gè)自動(dòng)化測試系統(tǒng)進(jìn)行管理和維護(hù),并且能夠根據(jù)開發(fā)人員的需求對測試用例進(jìn)行維護(hù)。

        圖1 自動(dòng)化測試系統(tǒng)框架

        2.2 測試臺架搭建

        本系統(tǒng)中的測試臺架部分的硬件連接如圖2 示。它主要由以下部分組成Inter NUC、VN1630A、VN5610A、PCAN、RAD-Moon、ECU、Network、程控電源、樹莓派等。Jenkins-Master 作為主節(jié)點(diǎn)可以將不同的Job 分配給不同的Jenkins-Slaver,NUC 和樹莓派作為兩個(gè)Slaver,被分配了不同的Job,一個(gè)負(fù)責(zé)刷寫,一個(gè)負(fù)責(zé)測試。

        PCAN 和RAD-Moon 組成刷寫組件,用于對ECU 進(jìn)行軟件更新操作。PCAN 主要用于對ECU 進(jìn)行數(shù)據(jù)回放,讓ECU 處于正常工作狀態(tài),而RAD-Moon 為以太網(wǎng)連接轉(zhuǎn)換設(shè)備,將ECU 的以太網(wǎng)線束轉(zhuǎn)換成RJ45 的端口接入樹莓派,使樹莓派能夠通過以太網(wǎng)與ECU 進(jìn)行連接,從而進(jìn)行軟件刷寫操作。

        VN1630A 和VN5610A 組成測試組件,在樹莓派通過刷寫組建完成了對ECU 的軟件更新后,NUC 就可以通過測試組件對ECU 進(jìn)行相關(guān)測試任務(wù)。VN1630A 和VN5610A 都可以通過CAN 線連接到ECU,VN1630A 支持四路CAN 通道,VN5610A 支持2 路CAN 通道和2 路以太網(wǎng)通道。需要注意的是:當(dāng)需要進(jìn)行診斷測試時(shí),需要用到VN5610A 的以太網(wǎng)通道連接ECU 才能夠進(jìn)行DoIP 的相關(guān)測試;當(dāng)所測ECU CAN 通道數(shù)大于4 個(gè)時(shí),需要使用同步線將VN1630A和VN5610A 連接起來,組成6 通道測試組件才能夠進(jìn)行相關(guān)測試。

        3 自動(dòng)化測試系統(tǒng)配置

        3.1 測試試用例設(shè)計(jì)

        測試用例是基于vTESTstudio 設(shè)計(jì)的,它是Vector 推出的一款強(qiáng)大的測試腳本編輯軟件,全面的集成環(huán)境適用于嵌入式系統(tǒng)的測試[2],并且支持多種語言,如CAPL、C#、Test Table、Test Diagram。

        圖2 系統(tǒng)硬件連接圖

        使用vTESTstudio 撰寫測試腳本主要由以下優(yōu)點(diǎn):

        (1)文件復(fù)用:在vTESTstudio 中可以很容易實(shí)現(xiàn)testcase,parameter 等文件的復(fù)用,提高執(zhí)行效率。

        (2)增加測試覆蓋率:針對某一個(gè)testcase 使用分類樹區(qū)分定義輸入條件,實(shí)現(xiàn)各種輸入的排列組合。

        (3)結(jié)構(gòu)化架構(gòu):樹形化測試用例可以清晰地實(shí)現(xiàn)測試思路。

        (4)波形仿真輸入:在.vwf 文件中可以編輯各種波形文件(正弦,指數(shù)等)對輸入信號進(jìn)行仿真。

        (5)變量配置:針對同一測試單元,可以根據(jù)不同的使用對象設(shè)置variant 變量區(qū)分測試過程中需要使用的參數(shù),快速實(shí)現(xiàn)測試單元的跨對象移植。

        (6)與CANoe 的無縫對接:vTESTstudio 生成的可執(zhí)行文件可以導(dǎo)入CANoe 中生成測試用例,同事也可以熊CANoe 導(dǎo)入測試所需要的外部數(shù)據(jù)(系統(tǒng)變量,DBC,CDD等)。

        3.2 測試用例執(zhí)行

        在介紹測試用例的執(zhí)行過程之前,需要先介紹一款工具——CANoe,它是德國Vector 公司研發(fā)的一款功能強(qiáng)大的綜合軟件工具,被廣泛的應(yīng)用在汽車CAN 總線開發(fā)、仿真、測試中[3]。它可以用于所有開發(fā)和測試項(xiàng)相關(guān)的任務(wù),可以輕易的構(gòu)建自動(dòng)化測試,用于ECU 模擬和診斷測試,能夠在開發(fā)早期檢測并糾正錯(cuò)誤。

        對于整個(gè)系統(tǒng)而言,它能夠提高測試效率和穩(wěn)定性,并且配合vTESTstudio 和其他的硬件設(shè)備使用可以提供豐富多樣的測試,如ECU 測試、模塊測試、集成測試、一致性測試、回歸測試、ECU 原型測試等。除此之外,他還提供了豐富的接口,可以通過這些接口使用第三方的軟件和腳本來控制測試系統(tǒng)。

        在使用vTESTstudio 完成了測試用例的編寫后,需要將vTESTstudio 工程加載到CANoe 工程中,導(dǎo)入后所有的測試用例就能被CANoe 工程執(zhí)行,并生成測試報(bào)告。打開CANoe測試工程,在菜單欄中的Test Setup 界面中可以新建Test Configuration,每個(gè)Test Configuration 按照測試需求加載不同的Test Unit 生成的可執(zhí)行文件(.vtuexe),從而生成測試用例,vTestsudio 和CANoe 的交互如圖3 所示。

        圖3 vTESTstudio 和CANoe 的交互

        3.3 測試工程調(diào)度

        要讓測試工程能被Jenkins 自動(dòng)化調(diào)度,首先需要在Jenkins-Master/Slaver 節(jié)點(diǎn)上安裝好所需的軟件[4],Windows Slaver(NUC)上需要安裝Python3 以及相關(guān)組件和Vector 相關(guān)軟件,如CANoe、DiVA、vTESTstudio、CANdela 等。其次在Jenkins-Master 上建立Slaver 節(jié)點(diǎn),為了方便對不同的Slaver 節(jié)點(diǎn)進(jìn)行管理,采用cn-system type-number 的編碼格式對各節(jié)點(diǎn)進(jìn)行命名,如本W(wǎng)indows Slaver 節(jié)點(diǎn)命名為cn-win--01。然后創(chuàng)建Job 時(shí),需要將Vector 一類的測試用例進(jìn)行區(qū)分設(shè)置,因?yàn)槠渲荒茉赾n-win-01 上運(yùn)行,無法在其它節(jié)點(diǎn)上進(jìn)行操作。并且需要通過Git 將倉庫中所需要的腳本文件同步到本地,通過腳本設(shè)置測試的觸發(fā)方式,選擇輪詢源代碼倉庫發(fā)生變化時(shí)觸發(fā)構(gòu)建過程。最后通過Web 登錄Jenkins-Master 界面,可以查看當(dāng)前測試用例的執(zhí)行情況,如圖4 所示。

        圖4 Jenkins Web 界面觀察測試用例執(zhí)行情況

        3.4 測試報(bào)告處理

        測試完成后會(huì)生成html/xml 格式的報(bào)告,而Jenkins 對報(bào)告的處理主要分成兩部分:第一部分是將html 格式的報(bào)告保存并上傳,同時(shí)對xml 格式的報(bào)告進(jìn)行解析,解析主要是通過Jenkins 調(diào)用Python 腳本執(zhí)行的,主要是從報(bào)告中抓取對應(yīng)的測試項(xiàng)和測試結(jié)果,以及失敗測試項(xiàng)的日志信息上傳到TestRail 中,如圖5 所示,這樣就完成對本次測試結(jié)果的一個(gè)在線記錄,方便日后回溯調(diào)查。第二部分是Jenkins 通過調(diào)用相關(guān)的Python 腳本對TestRail 中本次完成的測試結(jié)果,通過率進(jìn)行抓取,并且匹配內(nèi)置的UI 界面,將測試結(jié)果信息以郵件的形式發(fā)送到相關(guān)人員的郵箱中。

        圖5 測試報(bào)告解析上傳

        4 ECU 軟件通信和診斷測試實(shí)例

        4.1 測試對象

        本測試實(shí)例主要以無人駕駛模塊ECU 為被測單元,該被測單元有三路CAN:Chassis CAN、ADAS CAN、PD CAN,測試的主要功能包括CAN 總線測試和診斷測試,如表1 所示。CAN 總線測試主要包括三部分:物理層,數(shù)據(jù)鏈路層、通信層,每個(gè)層級對應(yīng)的測試用例,每個(gè)對應(yīng)的測試項(xiàng)都有其評價(jià)標(biāo)準(zhǔn),可以用于判斷測試通過與否[5]。由于物理層測試需要集成其他相關(guān)設(shè)備(如繼電器、示波器等),沒有辦法做到完全自動(dòng)化,所以在此處不列為測試內(nèi)容。診斷測試主要包括兩部分:基于ISO-14229 標(biāo)準(zhǔn)所定義的測試用例和基于軟件使用過程中所增加的個(gè)性化診斷測試用例。

        表1 CAN 總線測試用例

        4.2 測試流程

        本實(shí)例的自動(dòng)化測試工作流程主要有如下5 步,如圖6所示:代碼提交、測試觸發(fā)、軟件刷寫、軟件測試和結(jié)果反饋,每一步環(huán)環(huán)相扣,最終形成一個(gè)閉環(huán)。

        圖6 系統(tǒng)硬件連接圖

        (1)代碼提交:由于測試人員反饋代碼問題或者開發(fā)人員根據(jù)需要增加了新的功能,并將這些改動(dòng)以代碼的形式提交到Git 倉庫中。

        (2)測試觸發(fā):由于倉庫中有相應(yīng)的改動(dòng)提交,Jenkins會(huì)自動(dòng)觸發(fā)對新的提交進(jìn)行代碼編譯,并且將編譯后的軟件包存放到Artifactory 倉庫中,Jenkins 檢測到倉庫中有新的軟件包出現(xiàn)時(shí)會(huì)自動(dòng)觸發(fā)測試任務(wù)。

        (3)軟件刷寫:Jenkins-Master 節(jié)點(diǎn)會(huì)調(diào)度Jenkins-Slaver節(jié)點(diǎn)(樹莓派)通過PCAN 回放數(shù)據(jù),讓ECU 處于正常工作狀態(tài),隨后Jenkins 會(huì)下載Artifactory 中最新的軟件包并通過RAD-Moon 進(jìn)行軟件刷寫。

        (4)軟件測試:當(dāng)Jenkins 完成刷寫操作后,會(huì)先確認(rèn)刷寫后的軟件狀態(tài),確認(rèn)軟件版本正確后,會(huì)調(diào)度Slaver 節(jié)點(diǎn)(NUC)進(jìn)行測試,NUC 上的CANoe 測試工程會(huì)被Python腳本觸發(fā)執(zhí)行,并在測試完成后關(guān)閉該工程,上傳測試報(bào)告,刪除本地的報(bào)告。

        (5)結(jié)果反饋:當(dāng)測試完成后,原始報(bào)告報(bào)告會(huì)被上傳到Jenkins 上,解析后的報(bào)告會(huì)被上傳到TestRail 中,并且在控制臺也會(huì)輸出相關(guān)的日志信息,Jenkins 接收到TestRail 輸出的測試結(jié)果后,會(huì)觸發(fā)Python 腳本將測試結(jié)果以郵件的形式通知到相關(guān)人員的郵箱中。

        4.3 測試結(jié)果

        在每次測試完成以后,CANoe 測試工程會(huì)生成基于XML 格式的測試報(bào)告,詳細(xì)記錄每一項(xiàng)測試用例的結(jié)果和輸出的日志信息,但是這種報(bào)告并不是自動(dòng)化測試系統(tǒng)所需要,因?yàn)樗膬?nèi)容比較復(fù)雜,不能直接反映整體的測試結(jié)果,所以在該報(bào)告生成后,Jenkins 會(huì)調(diào)用Python 腳本對xml 格式 的測試報(bào)告進(jìn)行解析和上傳,解析的目的是抓取每項(xiàng)測試用例的結(jié)果,并將失敗的測試用例所輸出的日志信息抓取并記錄在TestRail 中。最后TestRail 會(huì)將測試結(jié)果整理匯總輸出統(tǒng)計(jì)信息,Jenkins 會(huì)根據(jù)TestRail 提供的接口,通過Python腳本將測試結(jié)果以郵件的形式發(fā)送出來,通知到相關(guān)人員,如圖7 所示。

        圖7 測試結(jié)果輸出

        5 結(jié)束語

        敏捷開發(fā)所提倡的通過盡快和持續(xù)不斷的交付有價(jià)值的軟件來滿足客戶的需要,前提是有高效的手段確保軟件的質(zhì)量,軟件的持續(xù)集成所面臨的挑戰(zhàn)就是測試的自動(dòng)化,軟件的自動(dòng)化測試可以減少人力資源的重復(fù)投入,不僅節(jié)約成本,而且提高了測試效率,還能夠幫助開發(fā)人員快速定位問題,解決問題[6]。

        本文設(shè)計(jì)并實(shí)現(xiàn)了一套基于CANoe 和Jenkins 的ECU軟件自動(dòng)化測試系統(tǒng),使用了Jenkins 作為自動(dòng)化測試調(diào)度的主要工具,結(jié)合CANoe 和vTESTstudio 強(qiáng)大的測試功能,并且以無人駕駛控制模塊ECU 作為測試對象,對其進(jìn)行了通信和診斷的自動(dòng)化實(shí)例測試。該自動(dòng)化測試系統(tǒng)具有非常高的實(shí)際應(yīng)用價(jià)值,并且可以在此基礎(chǔ)上拓展其他相關(guān)軟件的集成測試。

        猜你喜歡
        測試報(bào)告測試用例腳本
        酒駕
        關(guān)于戶外體育游戲?qū)τ變后w能影響的調(diào)查研究
        甘肅教育(2021年5期)2021-12-29 15:41:24
        安奇奇與小cool 龍(第二回)
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
        數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
        電子測試(2018年14期)2018-09-26 06:04:24
        基于混合遺傳算法的回歸測試用例集最小化研究
        快樂假期
        百變星君:ROLLINGSTONE 變色龍紫破風(fēng)車架測試報(bào)告
        SSAB Hardox悍達(dá)450材料輕型自卸車廂體測試報(bào)告
        專用汽車(2016年9期)2016-03-01 04:17:19
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        亚洲欧美日韩国产综合专区| 乱码av麻豆丝袜熟女系列 | 男女爱爱好爽视频免费看| 亚洲综合久久久| 性感人妻中文字幕在线| 亚洲av熟女一区二区三区站| 未满十八勿入av网免费| 国产亚洲日韩一区二区三区| 无码啪啪熟妇人妻区| 久久伊人精品色婷婷国产| 97人妻人人做人碰人人爽| 国精产品一区二区三区| 九月色婷婷免费| 亚洲第一女人的天堂av| 国产成人综合亚洲看片| 色婷婷七月| 亚洲中文字幕高清视频| 亚洲人不卡另类日韩精品| 国产免费av片在线播放| 亚洲国产精品嫩草影院久久| 一区二区亚洲精美视频| 国产精品亚洲专区无码不卡| 国产一女三男3p免费视频 | 日韩av毛片在线观看| 精品少妇一区二区三区免费观| 日韩在线看片免费人成视频| 日本高清长片一区二区| 中文字日产幕码三区的做法大全| 少妇无码一区二区三区免费| 成人无码区免费AⅤ片WWW| 按摩偷拍一区二区三区| 国产精品亚洲色婷婷99久久精品| 日韩精品一区二区亚洲av| 中文字幕有码高清| 国产精品国产三级久久| 插b内射18免费视频| 亚洲春色AV无码专区在线播放| 国产精品三级在线不卡| 人人做人人爽人人爱| 美女胸又www又黄的网站| 国产一区二区三区资源在线观看|