焦點(diǎn)要聞:持續(xù)測試(CT)實(shí)戰(zhàn)經(jīng)驗(yàn)分享
前言
傳統(tǒng)汽車行業(yè)正在向互聯(lián)網(wǎng)汽車方向發(fā)展
(資料圖片)
在汽車行業(yè)向“新四化”趨勢的推動(dòng)下,傳統(tǒng)分布式的EE架構(gòu)向域集中式架構(gòu)發(fā)展,伴隨著域控制器概念的提出,軟件也將根據(jù)相應(yīng)功能域分類集成,域控制器的代碼量也與日俱增。SOA的開發(fā)模式實(shí)現(xiàn)各軟件功能模塊間解耦,幫助軟件團(tuán)隊(duì)縮短開發(fā)周期,快速迭代軟件版本。OTA升級技術(shù)將軟件快速部署到各個(gè)域控制器,為軟件產(chǎn)品的快速迭代提供保障。隨著開發(fā)模式的變革,迭代測試變得周期短而頻繁,持續(xù)測試將為軟件產(chǎn)品提供快速的質(zhì)量保證。
什么是持續(xù)測試?
持續(xù)測試來源于DevOps(Development和Operations)中提倡的CI(持續(xù)集成)- CO(持續(xù)部署) - CT(持續(xù)測試)- CD(持續(xù)交付),通過流程和持續(xù)集成/持續(xù)測試工具平臺(tái),自動(dòng)化“軟件交付”,使得構(gòu)建、測試、發(fā)布軟件能夠更加快捷、頻繁和可靠。
汽車行業(yè)為什么需要持續(xù)測試?
傳統(tǒng)汽車軟件開發(fā)模型中,測試方法包括手動(dòng)測試和手動(dòng)編寫測試腳本后的自動(dòng)化/半自動(dòng)化測試。其特點(diǎn)是以“人”為中心,需要測試工程師重復(fù)性的手動(dòng)測試、不斷更新測試腳本或配置、記錄測試問題和測試狀態(tài)跟蹤。測試的周期和質(zhì)量,依賴于測試工程師的數(shù)量、經(jīng)驗(yàn)?zāi)芰凸ぞ邤?shù)量。
圖1:傳統(tǒng)測試流程
持續(xù)測試的方法以人、測試流程、測試工具的結(jié)合,通過一系列測試工具鏈的組合與自動(dòng)化測試工程結(jié)合,提交新版軟件時(shí)即為測試流程的開始,快速找到軟件缺陷,解決測試和開發(fā)在時(shí)間上的矛盾,幫助軟件開發(fā)團(tuán)隊(duì)實(shí)現(xiàn)軟件產(chǎn)品速度與質(zhì)量的目標(biāo)。
本文將從持續(xù)測試角度,分享基于Jenkins和Vector軟硬件實(shí)現(xiàn)的實(shí)戰(zhàn)經(jīng)驗(yàn)。
測試方案簡介
系統(tǒng)框架
圖2:系統(tǒng)框圖
主要功能
測試流程管理
? 測試項(xiàng)目管理模塊、測試需求管理模塊、測試用例管理模塊、測試任務(wù)管理模塊、測試缺陷管理模塊、測試報(bào)告管理模塊、遠(yuǎn)程設(shè)備管理模塊等
持續(xù)驗(yàn)證調(diào)度管理
? 測試對象、測試設(shè)備調(diào)度管理、代碼版本庫調(diào)用管理、測試流程搭建及執(zhí)行
IDL腳本轉(zhuǎn)換工具集成
? 通過測試數(shù)據(jù)文件生成測試腳本
測試腳本/測試數(shù)據(jù)版本控制管理
? 基于GitLab/SVN或自建數(shù)據(jù)庫管理測試腳本/測試數(shù)據(jù),構(gòu)建有效的知識(shí)庫
數(shù)據(jù)流引擎驅(qū)動(dòng)測試數(shù)據(jù)分析
? 基于測試數(shù)據(jù)進(jìn)行分析,獲得測試結(jié)果
測試報(bào)告引擎自動(dòng)測試報(bào)告
? 基于測試數(shù)據(jù)分析結(jié)果生成定制測試報(bào)告
案例介紹
基于Jenkins和Vector工具實(shí)現(xiàn)CAN/CAN FD/LIN/FlexRay/ETH網(wǎng)絡(luò)和診斷測試。
圖3:CT流程
持續(xù)測試的核心在于把自動(dòng)化測試的各個(gè)環(huán)節(jié)和流程自動(dòng)地、智能地組織起來,并提供狀態(tài)查詢、通知等服務(wù),實(shí)現(xiàn)步驟如下:
? 測試計(jì)劃:根據(jù)開發(fā)人員提交的軟件版本建立對應(yīng)測試計(jì)劃
? 測試環(huán)境搭建:測試工具鏈與測試對象連接,滿足測試環(huán)境要求
? 更新測試用例:建立對應(yīng)軟件版本的測試用例庫,并進(jìn)行版本管理,方便回歸測試
? 測試觸發(fā):監(jiān)控開發(fā)人員提交狀態(tài),提交結(jié)束即為測試開始,采用Jenkins管理測試執(zhí)行的流程
? 測試樣件/設(shè)備管理:自動(dòng)從測試樣件/設(shè)備庫中選擇可執(zhí)行測試的環(huán)境,提高測試資源的利用率
? 自動(dòng)化測試用例腳本:根據(jù)標(biāo)準(zhǔn)化的測試用例和數(shù)據(jù)庫,自動(dòng)生成可測試工程
? 數(shù)據(jù)采集和分析:用自動(dòng)化測試工程代替測試工程師手動(dòng)執(zhí)行測試,既縮短測試周期,又避免了人工測試產(chǎn)生的誤測漏測等問題;分析測試數(shù)據(jù),自動(dòng)生成測試報(bào)告與測試問題,避免測試工程師手動(dòng)錄入測試問題的重復(fù)性勞動(dòng)
? 測試報(bào)告版本管理:測試用例、測試工程、測試報(bào)告、測試數(shù)據(jù)與軟件版本相對應(yīng),方便測試問題追溯與定位
以下將從測試準(zhǔn)備、測試觸發(fā)、測試執(zhí)行與測試問題記錄三個(gè)方面詳細(xì)介紹搭建測試環(huán)境的步驟。
測試準(zhǔn)備
測試準(zhǔn)備過程將測試執(zhí)行中需要使用到的各種工具進(jìn)行配置,包含如下過程:
? 測試計(jì)劃建立:使用北匯自研PAVELINK或者JIRA等測試管理軟件建立測試計(jì)劃,包含測試軟件版本信息,測試用例庫,測試責(zé)任人等
? 更新測試用例:根據(jù)新發(fā)布的軟件版本建立測試用例庫,使用GitLab/SVN進(jìn)行版本管理
? 測試樣件/設(shè)備管理:管理測試樣件/設(shè)備狀態(tài)及測試進(jìn)度
? 測試環(huán)境搭建:測試設(shè)備與測試樣件進(jìn)行測試環(huán)境調(diào)試,以支持自動(dòng)化測試。測試工具使用Vector總線接口設(shè)備和CANoe軟件
? Jenkins測試流程管理:配置Jenkins Job,管理測試執(zhí)行的流程
圖4:傳統(tǒng)總線網(wǎng)絡(luò)和以太網(wǎng)測試系統(tǒng)
測試觸發(fā)
自動(dòng)化測試流程通過Jenkins Job進(jìn)行配置管理。Jenkins Job可通過手動(dòng)、定時(shí)、監(jiān)控GitLab/SVN版本或通過Jenkins API觸發(fā)調(diào)用等方式觸發(fā)。本次方案通過監(jiān)控測試樣件軟件版本,讀取到軟件升級到指定版本后,使用Jenkins API調(diào)度方式觸發(fā)測試流程的開始。
圖5:Jenkins API
測試執(zhí)行與測試問題記錄
Jenkins Job定義一個(gè)測試流程,包含自動(dòng)化測試腳本的生成、測試執(zhí)行、測試問題記錄。
? 自動(dòng)化測試腳本生成:通過解析數(shù)據(jù)庫文件生成測試腳本
圖6:測試腳本自動(dòng)生成
? 測試執(zhí)行:通過CANoe軟件COM接口調(diào)用的方式實(shí)現(xiàn)測試用例工程的選擇、測試執(zhí)行、測試數(shù)據(jù)和測試結(jié)果的回讀
圖7:CANoe COM接口說明
? 測試問題記錄:回讀到的測試結(jié)果自動(dòng)上傳到測試問題管理系統(tǒng),使用北匯自研的PAVELINK平臺(tái)更新測試用例的測試結(jié)果,上傳測試數(shù)據(jù)和新建測試問題
圖8:PAVELINK問題管理平臺(tái)
持續(xù)測試不等同于自動(dòng)化測試,持續(xù)測試一系列流程,包含自動(dòng)化測試,自動(dòng)化測試是持續(xù)測試的一個(gè)關(guān)鍵步驟。通過和軟件開發(fā)迭代在流程上結(jié)合,快速發(fā)現(xiàn)軟件缺陷。
? Jenkins具有郵件發(fā)送功能,在測試執(zhí)行結(jié)束時(shí),可將測試結(jié)果等信息通過郵件發(fā)送給相關(guān)責(zé)任人。
寫在最后
采用持續(xù)測試的測試方式可以很好地將解決手動(dòng)測試周期長的問題,提升了測試效率,提高測試人員的生產(chǎn)力。同時(shí)對測試輸出物與軟件開發(fā)版本進(jìn)行控制,符合正向開發(fā)和測試管理的要求。
持續(xù)測試作為可提升測試效率的工具,的確給測試工程師帶來“一鍵式”托管執(zhí)行測試的工作體驗(yàn)。但作為工具而言,持續(xù)測試并不能滿足所有的測試場景。首先,持續(xù)測試要求可執(zhí)行的測試用例是可自動(dòng)化執(zhí)行的,測試過程中如果需要手動(dòng)進(jìn)行參數(shù)輸入或測試環(huán)境的變更,很難達(dá)到提升測試效率的效果。其次,需要測試腳本可自動(dòng)生成或測試腳本不需要修改,面對每次迭代的軟件產(chǎn)品,手動(dòng)編寫或者修改測試工程也會(huì)給測試人員帶來繁重的工作量。
持續(xù)測試使用的工具鏈多且復(fù)雜,測試系統(tǒng)整體的穩(wěn)定性需要重點(diǎn)關(guān)注。所以是否進(jìn)行持續(xù)測試需要先對測試場景進(jìn)行分析,也不能為了追求持續(xù)性而去舍棄測試的精確性。
北匯信息緊跟市場風(fēng)向,在持續(xù)測試方面也積累了很多的經(jīng)驗(yàn),除了基于Jenkins的持續(xù)測試方案,北匯信息也自研了基于CANoe軟件的測試管理工具,期待與行業(yè)中的同仁進(jìn)行交流。
參考文獻(xiàn)
聊聊汽車OTA測試:概述篇
SOA架構(gòu)/測試階段接口描述語言轉(zhuǎn)換方案
中國汽車基礎(chǔ)軟件發(fā)展白皮書2.0
Jenkins權(quán)威指南
關(guān)鍵詞: 測試用例 自動(dòng)化測試 測試數(shù)據(jù)
相關(guān)閱讀
-
如何培養(yǎng)學(xué)生的空間思維能力(如何培養(yǎng)...
大家好,小琪來為大家解答以上的問題。如何培養(yǎng)學(xué)生的空間思維能力,... -
十滴水洗澡的功效(十滴水打一字)
大家好,小琪來為大家解答以上的問題。十滴水洗澡的功效,十滴水打一... -
地鐵逃生怎么下載(地團(tuán)網(wǎng))|要聞速遞
大家好,小琪來為大家解答以上的問題。地鐵逃生怎么下載,地團(tuán)網(wǎng)這個(gè)... -
女人在床上說的最刻薄的話_世界即時(shí)看
大家好,小琪來為大家解答以上的問題。女人在床上說的最刻薄的話這個(gè)... -
霍建華近態(tài)曝光豪橫十足,接連換乘豪車...
跟妻子林心如從朋友轉(zhuǎn)變?yōu)閼偃耍?dāng)時(shí)這場戀情引得最大爭議,兩人的... -
當(dāng)前關(guān)注:胡歌所開車曝光上熱搜,網(wǎng)友...
這讓不少網(wǎng)友感嘆:“現(xiàn)在普通人的包袱比明星都多,內(nèi)耗太重了。”...
- 如何培養(yǎng)學(xué)生的空間思維能力(如何培養(yǎng)學(xué)生2022-11-25
- 十滴水洗澡的功效(十滴水打一字)2022-11-25
- 焦點(diǎn)快播:“外國人講安徽故事·合肥站”宣2022-11-25
- 2022黃山旅游節(jié)推出14項(xiàng)主題活動(dòng)2022-11-25
- 世界微速訊:以群眾口碑檢驗(yàn)富裕江西幸福江2022-11-25
- 內(nèi)雙畫眼妝選擇什么樣的眼影?內(nèi)雙眼妝怎么2022-11-25
- 眼影選購需要注意哪些方面?眼影是不是越貴2022-11-25
- 深邃歐式眼妝教程 歐美上挑眼線怎么畫?-2022-11-25
- 環(huán)球觀熱點(diǎn):中分劉海怎么打理好看?哪些中2022-11-25
- 適合中分發(fā)型的臉型有哪些?2022年短發(fā)發(fā)型2022-11-25
- 全球今熱點(diǎn):中分發(fā)型有哪些優(yōu)勢?方形臉適2022-11-25
- 中分短發(fā)發(fā)型有哪些?你更喜歡哪一款?|全2022-11-25
- 中分適合什么臉型?劉海中分怎么處理?2022-11-25
- 劉海分開合不上怎么恢復(fù)?去理發(fā)店可以嗎?2022-11-25
- 【世界新要聞】圓臉臉型特點(diǎn)是什么?圓臉適2022-11-25
- 不想中分怎么變回來?哪些臉型留中分發(fā)型不2022-11-25
- 環(huán)球熱推薦:中分劉海留煩了想換發(fā)型怎么辦2022-11-25
- 熱點(diǎn)聚焦:劉海中分怎么解決?劉海剪厚了怎2022-11-25
- 如何讓頭發(fā)快速生長?剛?cè)就觐^發(fā)第二天就洗2022-11-25
- 男士中分適合燙大卷還是小卷?男生燙發(fā)發(fā)型2022-11-25
- 自然卷應(yīng)該使用什么樣的護(hù)發(fā)產(chǎn)品?自然卷該2022-11-25
- 月餅分著吃寓意好嗎?為什么說月餅吃多了也2022-11-25
- 月餅?zāi)芗逯詥??月餅的吃法有哪些?|環(huán)球2022-11-25
- 中秋節(jié)該怎么送禮?中秋節(jié)后天氣會(huì)轉(zhuǎn)涼嗎?2022-11-25
- 月餅烤完很硬怎么回事?月餅的好壞主要看什2022-11-25
- 十八數(shù)藏引入新投資方,深度布局產(chǎn)業(yè)化2022-11-25
- 地鐵逃生怎么下載(地團(tuán)網(wǎng))|要聞速遞2022-11-25
- 女人在床上說的最刻薄的話_世界即時(shí)看2022-11-25
- 玉竹可以和什么一起泡酒?玉竹酒做法是什么2022-11-25
- 玉竹能放多久?玉竹食用方法有哪些?-全球2022-11-25