《SOA架構(gòu)測(cè)試概述》由會(huì)員分享,可在線閱讀,更多相關(guān)《SOA架構(gòu)測(cè)試概述(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、SOA架構(gòu)/測(cè)試階段接口描述語(yǔ)言轉(zhuǎn)換方案SOA架構(gòu)盛行隨著汽車(chē)新四化的推進(jìn),汽車(chē)整車(chē)廠在實(shí)現(xiàn)車(chē)輛網(wǎng)聯(lián)、自動(dòng)駕駛和數(shù)據(jù)驅(qū)動(dòng)的同時(shí),更要在滿足用戶體驗(yàn)和基本服務(wù)的基礎(chǔ)上快速響應(yīng)客戶的個(gè)性化需求,為更好地解決這些新的挑戰(zhàn),整車(chē)廠引入了高性能的芯片、突破性的技術(shù)產(chǎn)品,同時(shí)傳統(tǒng)的EE架構(gòu)也需要變革,SOA(面向服務(wù)的架構(gòu))成為大多整車(chē)廠響應(yīng)市場(chǎng)需求的首選架構(gòu)。SOA架構(gòu)的主要優(yōu)勢(shì)是可以在很大程度上實(shí)現(xiàn)分布式系統(tǒng)軟件模塊間的解耦,通過(guò)軟件升級(jí)OTA可以更方便靈活地將服務(wù)實(shí)體部署在任意的域控制器上,服務(wù)之間只需通過(guò)簡(jiǎn)單、精確定義的接口進(jìn)行通訊,不涉及底層編程接口和通訊模型。而且對(duì)于ECU的版本更新、信號(hào)庫(kù)更
2、新、代碼修改等過(guò)程更加簡(jiǎn)便和靈活。簡(jiǎn)化了注冊(cè)服務(wù)與調(diào)用API,節(jié)約了時(shí)間成本,提高系統(tǒng)的健壯性和擴(kuò)展性。SOA開(kāi)發(fā)和部署步驟設(shè)計(jì)和部署一個(gè)SOA汽車(chē)軟件大概可分為以下幾個(gè)步驟:圖1: SOA開(kāi)發(fā)部署步驟服務(wù)接口開(kāi)發(fā)階段往往需要挑選有固定規(guī)則、邏輯性強(qiáng),又有大量高度重復(fù)的場(chǎng)景進(jìn)行測(cè)試驗(yàn)證,為了快速進(jìn)行驗(yàn)證,架構(gòu)工程師通常會(huì)以IDL(接口描述語(yǔ)言)來(lái)做服務(wù)定義描述,作為開(kāi)發(fā)鏈路上后續(xù)工作開(kāi)展的輸入,業(yè)務(wù)邏輯開(kāi)發(fā)階段以統(tǒng)一的標(biāo)準(zhǔn)進(jìn)行服務(wù)實(shí)現(xiàn)。市面上的IDL語(yǔ)言非常多,例如FIDL、Protobuf、vCDL、ARXML、OMG IDL、CANoe FDX等。測(cè)試人員對(duì)于各種IDL的語(yǔ)法規(guī)則需要零基礎(chǔ)
3、開(kāi)始學(xué)習(xí),在轉(zhuǎn)換過(guò)程中相應(yīng)的操作也比較復(fù)雜、繁瑣,同時(shí)出錯(cuò)率也很高。如果軟件的架構(gòu)采用了SOA,對(duì)系統(tǒng)中的功能進(jìn)行了服務(wù)化,在前期技術(shù)選型,清單定義、架構(gòu)設(shè)計(jì)以及中期的業(yè)務(wù)邏輯開(kāi)發(fā)階段都會(huì)碰到諸如以下的幾種場(chǎng)景。圖2-1: 接口和數(shù)據(jù)類型定義Excel圖2-2: 接口和數(shù)據(jù)類型定義Excel如上圖簡(jiǎn)單示例,其中結(jié)構(gòu)體引用,數(shù)據(jù)類型等信息容易出錯(cuò),時(shí)常需要反復(fù)修改后再重新轉(zhuǎn)換為ARXML,這個(gè)過(guò)程費(fèi)時(shí)費(fèi)力,從效率角度來(lái)說(shuō)也影響了軟件的開(kāi)發(fā)進(jìn)度。場(chǎng)景二:以太網(wǎng)測(cè)試(以SOME/IP為例)時(shí),開(kāi)發(fā)人員輸出的是Excel,測(cè)試人員需要再把Excel轉(zhuǎn)成測(cè)試軟件可以支持的文件格式,如vCDL,此環(huán)節(jié)工作
4、量極大,正確率也無(wú)法保證。圖3-1: 以太網(wǎng)測(cè)試接口定義Excel圖3-2: 以太網(wǎng)測(cè)試接口定義Excel場(chǎng)景三:開(kāi)發(fā)人員在使用DaVinci做架構(gòu)設(shè)計(jì)時(shí),為了加快開(kāi)發(fā)周期,通常情況下會(huì)先使用Excel做模板,在Excel中填入接口信息、數(shù)據(jù)類型、SWC定義、SWC與接口關(guān)系等信息,然后再由模塊責(zé)任人把Excel中的數(shù)據(jù)在DaVinci Developer中做相應(yīng)的節(jié)點(diǎn)配置和連線關(guān)聯(lián),整個(gè)過(guò)程出錯(cuò)概率高并且重復(fù)性高,需要有工具能依據(jù)Excel模板文件自動(dòng)生成ARXML文件,實(shí)現(xiàn)SWC的轉(zhuǎn)換及接口與SWC結(jié)合工作,用以提高設(shè)計(jì)效率。場(chǎng)景四:在SOA架構(gòu)中,中間件技術(shù)的應(yīng)用使得應(yīng)用軟件與底層的操作
5、系統(tǒng)和硬件實(shí)現(xiàn)了解耦,我們可以使用 SIL (Software in loop) 技術(shù)在系統(tǒng)開(kāi)發(fā)早期對(duì)系統(tǒng)進(jìn)行功能驗(yàn)證。SIL 測(cè)試的一個(gè)重要環(huán)節(jié)是 SIL Adapter 開(kāi)發(fā)。SIL Adapter 實(shí)現(xiàn)了測(cè)試系統(tǒng)對(duì)被測(cè)服務(wù)實(shí)現(xiàn)的調(diào)用。針對(duì)各個(gè)服務(wù)接口的 SIL Adapter代碼結(jié)構(gòu)是相同的,只是接口參數(shù)數(shù)量、名稱、類型方面有少量代碼差異,整個(gè)過(guò)程重復(fù)性也較高,需要有工具能自動(dòng)將架構(gòu)設(shè)計(jì)產(chǎn)出的FIDL、XML、ARXML等文件自動(dòng)轉(zhuǎn)化為C+等代碼,同時(shí)能根據(jù)文件中的描述/備注等內(nèi)容自動(dòng)生成插樁代碼,這將縮短驗(yàn)證周期。場(chǎng)景五:SOA架構(gòu)設(shè)計(jì)、測(cè)試驗(yàn)證等階段,工程師在使用相關(guān)工具軟件時(shí),會(huì)使
6、用許多配置文件作為輸入或輸出文件,但是鑒于使用的工具眾多,且文件格式之間的標(biāo)準(zhǔn)并不統(tǒng)一,所使用的各個(gè)開(kāi)發(fā)工具及測(cè)試工具也并不能支持所有的格式,所以各個(gè)工具間的串聯(lián)并不流暢,影響工程師的工作效率,需要有工具能自動(dòng)將這些不同格式的文件進(jìn)行互相轉(zhuǎn)換以實(shí)現(xiàn)工具的高效串聯(lián)。場(chǎng)景六:測(cè)試用例通常是在Doors或Polarion中管理,測(cè)試用例中的測(cè)試步驟或測(cè)試標(biāo)準(zhǔn)正常是以自然語(yǔ)言的方式描述,在測(cè)試執(zhí)行過(guò)程中軟件無(wú)法識(shí)別這些描述性語(yǔ)言,測(cè)試人員需要先將這些自然語(yǔ)言轉(zhuǎn)換為腳本文件,再把測(cè)試腳本放到測(cè)試工程中執(zhí)行,在測(cè)試用例較多的時(shí)候這個(gè)工作量將會(huì)非常龐大,需要有工具能集成相關(guān)用例管理軟件,將測(cè)試用例能自動(dòng)轉(zhuǎn)換
7、為相應(yīng)的測(cè)試軟件的腳本文件,在提高效率的同時(shí)減少出錯(cuò)機(jī)率。場(chǎng)景七:SOA測(cè)試開(kāi)發(fā)過(guò)程大體上需要進(jìn)行以下幾個(gè)步驟:1. 測(cè)試規(guī)范開(kāi)發(fā):基于需求規(guī)范和測(cè)試經(jīng)驗(yàn)及對(duì)實(shí)現(xiàn)方案的理解,完成測(cè)試規(guī)范的開(kāi)發(fā)2. SOA-HIL 測(cè)試系統(tǒng)需求分析和測(cè)試系統(tǒng)開(kāi)發(fā):被測(cè)對(duì)象的引腳和資源定義,HIL硬件及測(cè)試軟件運(yùn)行環(huán)境搭建3. 測(cè)試工程開(kāi)發(fā):開(kāi)發(fā)測(cè)試工程,實(shí)現(xiàn)測(cè)試規(guī)范所定義的測(cè)試內(nèi)容的自動(dòng)化/半自動(dòng)化測(cè)試4. 仿真模型開(kāi)發(fā):開(kāi)發(fā)仿真模型,與待測(cè)節(jié)點(diǎn)建立接口交互5. 測(cè)試環(huán)境集成調(diào)試與測(cè)試執(zhí)行:針對(duì)某一具體被測(cè)對(duì)象進(jìn)行測(cè)試環(huán)境搭建、工程集成調(diào)試與測(cè)試執(zhí)行以上各個(gè)步驟中所需的輸入物類型較多,如:SOA功能的需求規(guī)范、
8、服務(wù)接口規(guī)范,資源定義文件,測(cè)試范圍定義,ARXML 等類型數(shù)據(jù)庫(kù)文件,測(cè)試系統(tǒng)第三方編程腳本,測(cè)試規(guī)范,通信數(shù)據(jù)庫(kù),通信矩陣文件,被測(cè)節(jié)點(diǎn)交互數(shù)據(jù)格式定義等,需要有工具能夠按測(cè)試項(xiàng)目進(jìn)行統(tǒng)一分類管理,同時(shí)能夠支持相關(guān)輸入物間進(jìn)行格式轉(zhuǎn)換,轉(zhuǎn)換后的結(jié)果能夠便捷地加載到相關(guān)的測(cè)試軟件中或能夠通過(guò)網(wǎng)絡(luò)自動(dòng)上傳到配置庫(kù)的對(duì)應(yīng)位置下方便后續(xù)操作。場(chǎng)景八:目前SOA架構(gòu)軟件普遍采用敏捷開(kāi)發(fā)方式進(jìn)行管理,軟件版本的高頻迭代極大考驗(yàn)了測(cè)試人員工作量和自動(dòng)化測(cè)試能力,目前大多整車(chē)廠和零部件供應(yīng)商基本上已在進(jìn)行或正在研案持續(xù)集成測(cè)試方案來(lái)解決這一問(wèn)題。如下圖所示,隨著SOA架構(gòu)的盛行,輸入物或規(guī)范文件已經(jīng)出現(xiàn)了
9、多樣化,但是持續(xù)集成測(cè)試推進(jìn)的前提條件是需要預(yù)先將這些測(cè)試軟件不可識(shí)別的接口文件或用例文件轉(zhuǎn)換為符合測(cè)試軟件定義的規(guī)范腳本,并且能夠與相關(guān)的工具進(jìn)行集成自動(dòng)轉(zhuǎn)換。圖4: 持續(xù)集成測(cè)試文件轉(zhuǎn)換需求示意圖為什么需要接口描述語(yǔ)言轉(zhuǎn)換以上幾個(gè)場(chǎng)景都需要測(cè)試人員手動(dòng)錄入或轉(zhuǎn)換后才能繼續(xù)推動(dòng)項(xiàng)目進(jìn)度,此環(huán)節(jié)尤為關(guān)鍵,但往往轉(zhuǎn)換周期較長(zhǎng),且該工作耗時(shí)又費(fèi)力,出錯(cuò)率也較高,導(dǎo)致經(jīng)常返工,這些問(wèn)題一直困擾著的開(kāi)發(fā)/測(cè)試人員。PAVELINK.SOA-Converter介紹針對(duì)以上問(wèn)題,北匯信息開(kāi)發(fā)出了接口描述語(yǔ)言轉(zhuǎn)換工具PAVELINK.SOA-Converter。PAVELINK.SOA-Converter是
10、一個(gè)基于Eclipse開(kāi)發(fā)的IDL轉(zhuǎn)換工具??蓪?shí)現(xiàn)對(duì)常用IDL語(yǔ)言的批量轉(zhuǎn)換(FIDL、OMG IDL、Protobuf、vCDL、CANoe FDX、ARXML等),例如FIDL轉(zhuǎn)CANoe FDX,F(xiàn)IDL與Protobuf互轉(zhuǎn),同時(shí)也支持直接通過(guò)Protobuf轉(zhuǎn)換CANoe FDX等便捷的轉(zhuǎn)換功能,轉(zhuǎn)換前可根據(jù)用戶需求自定義輸出目錄、是否忽略注釋信息、是否批量轉(zhuǎn)換、是否轉(zhuǎn)換為多個(gè)文件等配置。PAVELINK.SOA-Converter結(jié)合測(cè)試代理引擎進(jìn)行自動(dòng)化回歸測(cè)試,可以解決整個(gè)鏈路的溝通問(wèn)題并縮短測(cè)試驗(yàn)證的時(shí)間。用戶通用使用PAVELINK.SOA-Converter實(shí)現(xiàn)對(duì)文件的快
11、速轉(zhuǎn)換,相較于人工轉(zhuǎn)換,不但很大程度上節(jié)約了時(shí)間成本,而且保障了轉(zhuǎn)換的正確率,提高了開(kāi)發(fā)測(cè)試的進(jìn)度,同時(shí)有效降低了維護(hù)的成本。圖5: PAVELINK.SOA-Converter工作示意圖主要功能如下:1. 接口語(yǔ)言腳換器: 通過(guò)接口語(yǔ)言轉(zhuǎn)換實(shí)現(xiàn)基于SOA架構(gòu)的軟件設(shè)計(jì)開(kāi)發(fā)過(guò)程中各工具鏈間的連通。2. 接口語(yǔ)言編輯器: 通過(guò)搭建多個(gè)接口語(yǔ)言集中一站式編輯環(huán)境,可以實(shí)現(xiàn)對(duì)接口文件的二次編輯轉(zhuǎn)換,同時(shí)實(shí)現(xiàn)語(yǔ)法校驗(yàn)、關(guān)鍵字提示和補(bǔ)全等功能。3. 命令行轉(zhuǎn)換器: 提供無(wú)頭(headless)跨平臺(tái)的命令行工具,支持命令行調(diào)用轉(zhuǎn)換功能。4. 配置庫(kù)集成: 集成配置庫(kù),自動(dòng)同步文件,更新提醒,當(dāng)有源文件更
12、新后實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換為目標(biāo)文件。5. 開(kāi)放調(diào)用接口: 通過(guò)文件流監(jiān)聽(tīng)方式與外部工具集成,為自動(dòng)化測(cè)試提供便利。6. 插件靈活拓展: 通過(guò)插件的靈活拓展,快速實(shí)現(xiàn)新的腳本語(yǔ)言轉(zhuǎn)換。7. SOA通信方案拓展: 通過(guò)對(duì)接口描述語(yǔ)言的解讀,自動(dòng)轉(zhuǎn)換為服務(wù)端(Skeleton)和客戶端(Proxy)框架代碼等。PAVELINK.SOA-Converter使用說(shuō)明PAVELINK.SOA-Converter的使用操作十分便捷,在Eclipse中只需要點(diǎn)擊鼠標(biāo),或者使用簡(jiǎn)單的命令即可完成轉(zhuǎn)換工作。1.Eclipse 插件轉(zhuǎn)換在Eclipse中安裝好插件,選擇文件后右擊-SOA-Converter-選擇需要轉(zhuǎn)換的
13、格式類型即可。圖6: PAVELINK.SOA-Converter圖形化示意圖2. 命令行轉(zhuǎn)換也可通過(guò)命令執(zhí)行轉(zhuǎn)換。常用參數(shù)說(shuō)明:-sf指定轉(zhuǎn)換的源文件類型。-tf指定轉(zhuǎn)換后生成的文件類型。-sp指定需要轉(zhuǎn)換的文件或位置。-d指定轉(zhuǎn)換后文件輸出位置。-dv忽略版本校驗(yàn)。圖7: PAVELINK.SOA-Converter命令行示意圖3.示例說(shuō)明某OEM 基于SOA架構(gòu)的服務(wù)接口測(cè)試項(xiàng)目,使用PAVELINK.SOA-Converter實(shí)現(xiàn)FIDL轉(zhuǎn)CANoe系統(tǒng)變量XML,簡(jiǎn)化測(cè)試驗(yàn)證過(guò)程。圖8: FIDL轉(zhuǎn)CANoe系統(tǒng)變量示例轉(zhuǎn)換完成后,按步驟在CANoe中直接導(dǎo)入轉(zhuǎn)換后的XML文件即可,
14、如下圖。圖9:轉(zhuǎn)換后的系統(tǒng)變量XML文件導(dǎo)入CANoe軟件示例u CCU域控制器的測(cè)試規(guī)范、腳本開(kāi)發(fā)及測(cè)試服務(wù),使用PAVELINK.SOA-Converter實(shí)現(xiàn)FIDL轉(zhuǎn)SOA功能實(shí)現(xiàn)服務(wù)端和客戶端C+代碼示例圖10: SOA通信實(shí)現(xiàn)節(jié)點(diǎn)示意圖如上圖所示,調(diào)用PAVELINK.SOA-Converter轉(zhuǎn)換PREEvision等設(shè)計(jì)工具輸出的服務(wù)接口文件,生成對(duì)應(yīng)的Proxy、Skeleton、Stub代碼。圖11: 服務(wù)接口文件轉(zhuǎn)換C+示例圖u 某供應(yīng)商網(wǎng)聯(lián)類控制器SOA功能規(guī)范測(cè)試開(kāi)發(fā)項(xiàng)目,使用PAVELINK.SOA-Converter實(shí)現(xiàn)Excel轉(zhuǎn)ARXML,接口和SWC關(guān)聯(lián)示例圖12: Excel模板示意圖轉(zhuǎn)換后ARXML內(nèi)容如下:圖13: ARXML截圖示意更多功能,敬請(qǐng)期待 IDL文件編輯器,支持實(shí)時(shí)轉(zhuǎn)換,即編輯的同時(shí)進(jìn)行轉(zhuǎn)換結(jié)果的預(yù)覽,關(guān)鍵字提示、關(guān)鍵字高亮、語(yǔ)法錯(cuò)誤提示等; 網(wǎng)絡(luò)測(cè)試模板文件定制,自動(dòng)化腳本生成; 測(cè)試工具集成,自動(dòng)驅(qū)動(dòng)CANoe、ECU-TEST、dSPACE等加載工程執(zhí)行; 持續(xù)測(cè)試集成,服務(wù)接口定義文件變更后自動(dòng)觸發(fā)測(cè)試驗(yàn)證執(zhí)行。