作者 | 梵高先生
小編 | 不吃豬頭肉
在上一篇文章中,我們對(duì) DDS 協(xié)議測(cè)試的策略、方法和工具進(jìn)行了詳細(xì)的介紹。本文旨在進(jìn)一步探討如何利用這些方法和工具搭建實(shí)際的測(cè)試環(huán)境,并執(zhí)行測(cè)試,進(jìn)而揭示可能遇到的各類問(wèn)題。
被測(cè)協(xié)議棧簡(jiǎn)介
在本次測(cè)試中,被測(cè)協(xié)議棧選擇了一個(gè)在汽車(chē)行業(yè)內(nèi)廣泛使用的開(kāi)源 DDS 產(chǎn)品。
近年來(lái)隨著開(kāi)源軟件社區(qū)的不斷發(fā)展和成熟,越來(lái)越多的整車(chē)廠在選擇 DDS 協(xié)議棧實(shí)現(xiàn)時(shí),開(kāi)始青睞開(kāi)源產(chǎn)品。相比商業(yè)化的 DDS 協(xié)議棧,開(kāi)源產(chǎn)品具有顯著的成本優(yōu)勢(shì)。此外,使用開(kāi)源產(chǎn)品還可以讓整車(chē)廠獲得更大的自主可控性,以便根據(jù)自身需求對(duì)協(xié)議棧進(jìn)行定制和優(yōu)化。
然而天下沒(méi)有免費(fèi)的午餐,選擇開(kāi)源 DDS 協(xié)議棧也意味著使用者必須承擔(dān)起產(chǎn)品質(zhì)量的責(zé)任。與商業(yè)化產(chǎn)品不同,開(kāi)源產(chǎn)品通常沒(méi)有專門(mén)的團(tuán)隊(duì)負(fù)責(zé)質(zhì)量保證。因此,開(kāi)源 DDS 協(xié)議棧的使用者必須投入額外的精力和資源,甚至組建專門(mén)的軟件團(tuán)隊(duì),來(lái)全面評(píng)估、測(cè)試和維護(hù)所選擇的開(kāi)源產(chǎn)品,以確保其功能和性能滿足汽車(chē)行業(yè)的嚴(yán)苛要求。
本篇文章中我們?cè)噲D準(zhǔn)確地識(shí)別出可能存在的問(wèn)題,希望為汽車(chē)行業(yè)用戶在選擇開(kāi)源 DDS 協(xié)議棧時(shí)提供實(shí)用的參考。
測(cè)試環(huán)境搭建
被測(cè)的 DDS 協(xié)議棧部署在一臺(tái)運(yùn)行 Ubuntu 操作系統(tǒng)的 x 86 服務(wù)器上。這種部署方式能夠?yàn)?DDS 協(xié)議棧提供一個(gè)簡(jiǎn)單、穩(wěn)定,且一致的運(yùn)行環(huán)境,避免資源或網(wǎng)絡(luò)配置錯(cuò)誤等原因?qū)е碌臏y(cè)試結(jié)果不可信。
同時(shí),為了全面評(píng)估 DDS 協(xié)議棧的功能和性能,我們?cè)?DDS 之上部署了兩個(gè)專門(mén)設(shè)計(jì)的測(cè)試應(yīng)用程序。這兩個(gè)應(yīng)用程序的主要目的是模擬真實(shí)場(chǎng)景下的應(yīng)用程序?qū)?DDS 接口的調(diào)用,以驗(yàn)證 DDS 能夠正確地處理各種請(qǐng)求并返回預(yù)期的結(jié)果。通過(guò)這種方式, 可以全面檢驗(yàn) DDS 的接口是否符合 OMG DDS 標(biāo)準(zhǔn),以及是否能夠滿足汽車(chē)行業(yè)的特定需求。
為了實(shí)現(xiàn)對(duì)測(cè)試過(guò)程的自動(dòng)化控制和管理,我們?cè)?a target="_blank">上位機(jī)中開(kāi)發(fā)了一套專門(mén)的測(cè)試腳本。這些腳本負(fù)責(zé)向 DDS 測(cè)試應(yīng)用程序發(fā)送各種測(cè)試指令,根據(jù)預(yù)定的邏輯對(duì)測(cè)試應(yīng)用程序的行為進(jìn)行編排和調(diào)度。測(cè)試過(guò)程全自動(dòng)化,無(wú)需任何人工干預(yù),能夠確保測(cè)試過(guò)程的一致性和可重復(fù)性。
此外,為了方便工程師對(duì)測(cè)試用例進(jìn)行管理和監(jiān)控,上位機(jī)軟件還提供了一個(gè)直觀的圖形化界面。通過(guò)這個(gè)界面,測(cè)試人員可以輕松地創(chuàng)建、編輯和組織測(cè)試用例,并實(shí)時(shí)監(jiān)控測(cè)試的執(zhí)行狀態(tài)和結(jié)果。
圖1-DDS測(cè)試環(huán)境搭建
需要強(qiáng)調(diào)的是,測(cè)試環(huán)境可以根據(jù)用戶的具體需求進(jìn)行靈活地配置。比如將 DDS 測(cè)試程序部署在一個(gè)或多個(gè)真實(shí)的 ECU 中,以幫助我們發(fā)現(xiàn)系統(tǒng)性的網(wǎng)絡(luò)配置問(wèn)題、兼容性問(wèn)題或性能問(wèn)題等,包括防火墻、IP 地址、端口號(hào)、TSN 約束、時(shí)間同步、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)問(wèn)題,DDS 中間件與不同硬件和軟件平臺(tái)之間的兼容性問(wèn)題,也包括吞吐量、延遲、資源占用等指標(biāo)。從而全面評(píng)估 DDS 分布式系統(tǒng)在實(shí)際應(yīng)用場(chǎng)景下的可靠性、兼容性和性能表現(xiàn),為系統(tǒng)的開(kāi)發(fā)和優(yōu)化提供重要的依據(jù)。
測(cè)試用例介紹
測(cè)試用例覆蓋了 OMG DDS 規(guī)范中定義的所有軟件接口,共 406條測(cè)試用例,內(nèi)容如下:
?接口行為測(cè)試,包括正常調(diào)用時(shí)的行為測(cè)試,以及錯(cuò)誤調(diào)用的故障行為測(cè)試,共計(jì) 353 條用例
?QoS 測(cè)試,即 OMG DDS 中定義的各項(xiàng) QoS 的功能測(cè)試,共計(jì) 53 條用例
關(guān)于性能測(cè)試,由于 DDS 的性能很大程度上取決于硬件平臺(tái)的性能和資源情況,以及操作系統(tǒng)的調(diào)度和管理機(jī)制,故在測(cè)試服務(wù)器中得到的性能測(cè)試結(jié)果與實(shí)際系統(tǒng)的性能表現(xiàn)可能相差很大,故本次測(cè)試不包含性能測(cè)試。
測(cè)試結(jié)果分析
概覽本次測(cè)試共計(jì)執(zhí)行 406 個(gè)測(cè)試用例,通過(guò)194個(gè),失敗 212 個(gè),通過(guò)率為 47.78%。如下為各模塊的通過(guò)情況。
圖2-測(cè)試結(jié)果概覽
問(wèn)題示例
功能缺失
如下表格列出了部分當(dāng)前版本 DDS 缺失的接口。這些缺失的接口對(duì)于 DDS 分布式系統(tǒng)的功能和性能具有直接或間接的影響。重要的是,開(kāi)發(fā)者文檔可能并未明確指出這些接口功能的缺失,這種情況可能會(huì)對(duì)系統(tǒng)的穩(wěn)定性和可靠性帶來(lái)潛在風(fēng)險(xiǎn)。因此,用戶在使用 DDS 時(shí)需要對(duì)這些潛在的缺陷保持警覺(jué),并采取相應(yīng)的預(yù)防措施。此外,用戶應(yīng)當(dāng)積極參與開(kāi)源社區(qū)討論,關(guān)注產(chǎn)品的更新日志,以便及時(shí)了解和補(bǔ)充這些關(guān)鍵接口的功能,從而降低系統(tǒng)運(yùn)行中的不確定性和風(fēng)險(xiǎn)。表 1: 功能缺失問(wèn)題示例
圖3-功能缺失問(wèn)題的測(cè)試報(bào)告示例
行為錯(cuò)誤
當(dāng)開(kāi)發(fā)者根據(jù)官方文檔調(diào)用特定 API 時(shí),軟件表現(xiàn)出的行為與文檔描述不一致。這種不一致性可能表現(xiàn)為返回錯(cuò)誤的結(jié)果、觸發(fā)未預(yù)期的副作用或完全無(wú)響應(yīng)。這種情況下,開(kāi)發(fā)者不得不投入大量的時(shí)間去排查和定位問(wèn)題。表 2:API 行為錯(cuò)誤示例
圖4-行為錯(cuò)誤測(cè)試報(bào)告示例
異常終止
此類問(wèn)題指的是當(dāng)應(yīng)用程序在某些場(chǎng)景下調(diào)用特定接口時(shí),DDS 中間件出現(xiàn)異常終止。這類問(wèn)題的嚴(yán)重性在于其難以被發(fā)現(xiàn)、排查和修復(fù)。問(wèn)題的隱蔽性在于異常通常只在特定的條件下觸發(fā),這些條件可能包括特定的數(shù)據(jù)模式、并發(fā)級(jí)別或資源使用情況,使得在常規(guī)測(cè)試中難以觸發(fā)和識(shí)別。同時(shí),即使問(wèn)題被成功識(shí)別,修復(fù)工作也同樣困難重重,這需要精確修改復(fù)雜的代碼邏輯,還需要確保不會(huì)對(duì) DDS 的其他功能造成負(fù)面影響。
由于 DDS 中間件作為系統(tǒng)的基礎(chǔ)軟件,其穩(wěn)定性對(duì)整個(gè)系統(tǒng)的運(yùn)行至關(guān)重要。同時(shí),基礎(chǔ)軟件的不穩(wěn)定性會(huì)對(duì)上層應(yīng)用和最終用戶產(chǎn)生連鎖反應(yīng),極大地影響整個(gè)系統(tǒng)的質(zhì)量和用戶體驗(yàn)。因此,解決 DDS 中間件的異常終止問(wèn)題,不僅是提升軟件質(zhì)量的技術(shù)挑戰(zhàn),也是確保系統(tǒng)整體穩(wěn)定性和可靠性的重要一環(huán)。表 3: DDS 軟件異常終止問(wèn)題示例總結(jié)
經(jīng)過(guò)本篇文章的介紹,相信讀者已經(jīng)對(duì)DDS的協(xié)議測(cè)試以及可能存在的問(wèn)題有了大概的了解。
在敏捷開(kāi)發(fā)模式下,軟件需求不斷增加,軟件系統(tǒng)的規(guī)模和復(fù)雜度也在不斷增長(zhǎng)。然而,許多關(guān)鍵問(wèn)題(尤其是性能問(wèn)題)只有在軟件達(dá)到一定規(guī)模和復(fù)雜度后才會(huì)暴露出來(lái)。一旦發(fā)現(xiàn)這些問(wèn)題,修復(fù)的成本往往非常高昂,因?yàn)槿魏位A(chǔ)軟件的改動(dòng)可能會(huì)影響到整個(gè)系統(tǒng),牽一發(fā)而動(dòng)全身。
相比之下,如果在項(xiàng)目早期就能夠模擬實(shí)際的應(yīng)用場(chǎng)景,并對(duì) DDS 進(jìn)行全面的功能和性能測(cè)試,開(kāi)發(fā)團(tuán)隊(duì)可以深入了解 DDS 的行為特點(diǎn),甚至軟件缺陷,識(shí)別性能瓶頸,從而及時(shí)調(diào)整設(shè)計(jì),優(yōu)化實(shí)現(xiàn)。這種“前置”的測(cè)試方法不僅能夠顯著降低后期的修復(fù)成本,能夠提高整個(gè)系統(tǒng)的質(zhì)量和可靠性,幫助系統(tǒng)應(yīng)對(duì)未來(lái)的挑戰(zhàn)。
本文介紹了南京臻融科技有限公司(以下簡(jiǎn)稱“臻融科技”)開(kāi)發(fā)的DDS協(xié)議測(cè)試工具。臻融科技在過(guò)去十年里,一直致力于DDS產(chǎn)品及其相關(guān)工具鏈的自主研發(fā),并且在國(guó)內(nèi)關(guān)鍵行業(yè)領(lǐng)域取得了最高的市場(chǎng)份額。這款DDS協(xié)議測(cè)試工具在DDS研發(fā)過(guò)程中已經(jīng)歷了近十年的不斷迭代,證明了其產(chǎn)品的成熟性和可靠性。臻融科技與北匯信息的合作,旨在將這套工具引入汽車(chē)行業(yè),以協(xié)助客戶建立DDS測(cè)試能力,提供高品質(zhì)的測(cè)試服務(wù)和相關(guān)培訓(xùn),進(jìn)而加快DDS在汽車(chē)行業(yè)的推廣和應(yīng)用。
-
測(cè)試
+關(guān)注
關(guān)注
8文章
5274瀏覽量
126600 -
DDS
+關(guān)注
關(guān)注
21文章
633瀏覽量
152631 -
汽車(chē)
+關(guān)注
關(guān)注
13文章
3493瀏覽量
37256
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論