公務(wù)員期刊網(wǎng) 論文中心 正文

DDS下的軟件接口測(cè)試方法

前言:想要寫(xiě)出一篇引人入勝的文章?我們特意為您整理了DDS下的軟件接口測(cè)試方法范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。

DDS下的軟件接口測(cè)試方法

摘要:隨著艦船一體化工作的推進(jìn),各個(gè)異構(gòu)設(shè)備節(jié)點(diǎn)統(tǒng)一采用數(shù)據(jù)分發(fā)服務(wù)(DataDistributionService)規(guī)范實(shí)現(xiàn)了信息的互聯(lián)互通,但對(duì)dds規(guī)范相關(guān)的軟件接口測(cè)試方法的研究卻相對(duì)遲緩?;诖饲闆r,通過(guò)分析DDS規(guī)范的模型特點(diǎn)和分發(fā)流程,提出一種基于DDS的軟件接口測(cè)試方法,并將測(cè)試方法的設(shè)計(jì)步驟進(jìn)行了闡述,通過(guò)對(duì)軟件接口測(cè)試情況的討論,經(jīng)過(guò)實(shí)踐檢驗(yàn),解決了對(duì)采用DDS規(guī)范的接口測(cè)試問(wèn)題。

關(guān)鍵詞:數(shù)據(jù)分發(fā)服務(wù);測(cè)試方法;接口測(cè)試

引言

近年來(lái),隨著艦船一體化[1]的工作不斷推進(jìn),在艦船上的各種設(shè)備紛紛加入主干網(wǎng)絡(luò)中,各個(gè)設(shè)備節(jié)點(diǎn)實(shí)現(xiàn)了互聯(lián)互通,信息處理系統(tǒng)需要將不同設(shè)備和不同時(shí)間的數(shù)據(jù)進(jìn)行整合,數(shù)據(jù)分發(fā)過(guò)程隨著數(shù)據(jù)需求的多樣性而變得更加復(fù)雜。為了滿足分布式的實(shí)時(shí)通信需求,由OMG組織提出的數(shù)據(jù)分發(fā)服務(wù)DDS[2]規(guī)范有效解決了此問(wèn)題。隨著DDS規(guī)范的逐步完善,越來(lái)越多的系統(tǒng)在設(shè)計(jì)之初就采用了以數(shù)據(jù)為中心的信息/訂閱通信模型,以滿足不同設(shè)備的通信需求,但與此同時(shí),DDS相關(guān)的軟件接口測(cè)試方法卻發(fā)展緩慢,相應(yīng)的測(cè)試工具并未被及時(shí)開(kāi)發(fā)與應(yīng)用。針對(duì)此情況,分析其模型特點(diǎn)和分發(fā)流程,提出了一種DDS接口測(cè)試方法,經(jīng)過(guò)實(shí)踐檢驗(yàn),可以有效地對(duì)采用DDS規(guī)范的系統(tǒng)進(jìn)行軟件接口測(cè)試[3]。

1DDS介紹

1.1數(shù)據(jù)分發(fā)服務(wù)(DDS)

DDS是/訂閱信息分發(fā)模型衍化而來(lái),繼承了/訂閱模型的優(yōu)點(diǎn)也借鑒了分布式對(duì)象模型的異構(gòu)特點(diǎn),有著低延遲、高容錯(cuò)性、高帶寬、傳輸方式靈活的特點(diǎn)。DDS規(guī)范體系結(jié)構(gòu)有兩層,分別是數(shù)據(jù)本地重構(gòu)(DLRL[4])層和DCPS[5]層,DLRL層是可選的,DCPS層是DDS的核心和基礎(chǔ),提供數(shù)據(jù)分發(fā)的基礎(chǔ)結(jié)構(gòu),保障了數(shù)據(jù)的傳輸。DCPS層創(chuàng)建了全局?jǐn)?shù)據(jù)空間(GDS)的概念,所有的數(shù)據(jù)對(duì)象都存在于空間中,可自動(dòng)和異步地向GDS讀取/寫(xiě)入數(shù)據(jù),者和訂閱者可隨時(shí)加入和離開(kāi)GDS,者和訂閱者通過(guò)主題進(jìn)行匹配所需的數(shù)據(jù)類(lèi)型,通過(guò)檢查和校驗(yàn)機(jī)制后完成數(shù)據(jù)的傳送。

1.2DDS的分發(fā)流程簡(jiǎn)述

DDS為了實(shí)現(xiàn)數(shù)據(jù)的分發(fā)[6]設(shè)計(jì)了一整套相應(yīng)的流程,可概括為DCPS初始化,者初始化、訂閱者訂閱、傳遞數(shù)據(jù)四個(gè)步驟。在DCPS初始化階段最主要的工作為域的建立、Qos策略設(shè)置和傳輸?shù)某跏蓟ぷ?,域存在校?yàn)機(jī)制,訂閱者和者的域必須與DCPS層的域一致。者定義數(shù)據(jù)類(lèi)型、生成主題,訂閱者查找主題并完成訂閱,經(jīng)過(guò)中間檢查機(jī)制檢查,符合連接規(guī)則后者和訂閱者將建立連接,者通過(guò)DataWriter寫(xiě)入最新數(shù)據(jù),DCPS進(jìn)行數(shù)據(jù)分發(fā),訂閱者通過(guò)DataReader讀取最新數(shù)據(jù),通過(guò)以上的流程就實(shí)現(xiàn)了數(shù)據(jù)的分發(fā),數(shù)據(jù)有效地從者傳遞到訂閱者。

2軟件接口測(cè)試常用方法

2.1借助測(cè)試工具

軟件測(cè)試時(shí)如測(cè)試接口類(lèi)型為串口,軟件測(cè)試人員往往會(huì)使用串口調(diào)試助手,當(dāng)測(cè)試接口類(lèi)型為網(wǎng)口時(shí),軟件測(cè)試人員會(huì)使用Wireshark工具測(cè)試TCP或UDP協(xié)議的報(bào)文,借助得心應(yīng)手的測(cè)試工具來(lái)進(jìn)行接口測(cè)試是軟件測(cè)試人員的優(yōu)先選擇,但正如前文所提到的有關(guān)DDS的測(cè)試工具未被及時(shí)開(kāi)發(fā)與應(yīng)用,在針對(duì)DDS進(jìn)行軟件接口測(cè)試時(shí),面臨著無(wú)測(cè)試工具可用的尷尬局面。

2.2自研工具

根據(jù)對(duì)以數(shù)據(jù)為中心的訂閱模式進(jìn)行分析,由于系統(tǒng)內(nèi)均為分布式節(jié)點(diǎn),自然可以聯(lián)想到將測(cè)試節(jié)點(diǎn)加入全局?jǐn)?shù)據(jù)空間進(jìn)行全局通信,得益于DDS異步通信方式的特性,測(cè)試節(jié)點(diǎn)的加入不會(huì)影響系統(tǒng)原有的分布式節(jié)點(diǎn),并且加入的測(cè)試節(jié)點(diǎn)不受數(shù)量上的制約,可以加入多個(gè)測(cè)試節(jié)點(diǎn)來(lái)并行測(cè)試以提升測(cè)試效率,這有利于減少接口測(cè)試在整個(gè)測(cè)試周期中的時(shí)間占比。根據(jù)對(duì)DDS的分發(fā)流程的分析,全局?jǐn)?shù)據(jù)空間是根據(jù)主題進(jìn)行數(shù)據(jù)分發(fā),測(cè)試節(jié)點(diǎn)設(shè)置完成主題即可完成與被測(cè)對(duì)象的關(guān)聯(lián),形成測(cè)試節(jié)點(diǎn)-被測(cè)對(duì)象的成對(duì)關(guān)系。

3設(shè)計(jì)步驟

3.1者設(shè)計(jì)步驟

(1)配置本機(jī)ip和廣播地址。(2)使用接口定義語(yǔ)言(idl)定義數(shù)據(jù)類(lèi)型,推薦創(chuàng)建一個(gè)結(jié)構(gòu)體,根據(jù)被測(cè)報(bào)文定義所需的成員變量及其數(shù)據(jù)類(lèi)型并做好相應(yīng)的注釋。(3)使用腳本,生成輔助文件。(4)創(chuàng)建工程,將輔助文件添加至工程文件中。(5)編寫(xiě)publisher代碼。此步驟會(huì)先將域初始化,如果域初始化失敗將會(huì)直接報(bào)錯(cuò)處理,域初始化成功再將者加入至所需的域中,根據(jù)被測(cè)報(bào)文將每個(gè)成員變量都進(jìn)行賦值,將主題設(shè)置與訂閱端主題一致,Qos策略可以按需配置,主要有BEST_EFFORT盡力而為模式和RELIABLE可靠模式,無(wú)明確要求時(shí)可選BEST_EFFORT盡力而為模式,一直重復(fù)發(fā)送報(bào)文觀察現(xiàn)象即可,如果沒(méi)有發(fā)送周期需求,建議設(shè)置2s-3s的發(fā)送間隔,防止接收端接收大量的數(shù)據(jù)從而產(chǎn)生異常,2s-3s的發(fā)送周期也適合軟件測(cè)試人員觀察被測(cè)對(duì)象是否達(dá)到了預(yù)期的結(jié)果。(6)編譯工程,運(yùn)行程序查看發(fā)送結(jié)果。此處建議添加對(duì)發(fā)送結(jié)果的反饋,如果發(fā)送失敗可將錯(cuò)誤代碼進(jìn)行打印,方便排查錯(cuò)誤。發(fā)送成功后就可根據(jù)用例設(shè)計(jì)情況,改變成員變量的賦值,重新編譯后發(fā)送直至用例全部執(zhí)行結(jié)束。

3.2訂閱者設(shè)計(jì)步驟

(1)配置本機(jī)ip和廣播地址。(2)使用接口定義語(yǔ)言(idl)定義數(shù)據(jù)類(lèi)型。(3)使用腳本,生成輔助文件。(4)創(chuàng)建工程,將輔助文件添加至工程文件中。(5)編寫(xiě)subscriber代碼。域的初始化、主題設(shè)置和Qos策略設(shè)計(jì)與前文一致,將所需的報(bào)文中的成員變量打印輸出。(6)編譯工程,運(yùn)行程序查看接收結(jié)果。此處也同樣建議添加對(duì)接收結(jié)果的反饋,避免由DDS分發(fā)錯(cuò)誤而導(dǎo)致的接收異常。

4接口測(cè)試實(shí)踐

在配置項(xiàng)和系統(tǒng)測(cè)試時(shí),軟件測(cè)試人員常常會(huì)選擇黑盒測(cè)試方法來(lái)進(jìn)行軟件測(cè)試,當(dāng)軟件測(cè)試人員需要測(cè)試采用DDS規(guī)范的接口時(shí),測(cè)試目標(biāo)為軟件接口與受控文檔協(xié)議的一致性,在測(cè)試環(huán)境搭建完成并分析環(huán)境差異性后,可以分為2種情況進(jìn)行討論。

4.1測(cè)試節(jié)點(diǎn)做者

根據(jù)前文中的者設(shè)計(jì)步驟完成一個(gè)最小單元的者樣例,保證樣例通信正常,可以正常報(bào)文數(shù)據(jù),排除由數(shù)據(jù)分發(fā)服務(wù)或樣例引起的測(cè)試異常中止情況,使用受控文檔協(xié)議補(bǔ)充完成所有成員變量的定義并賦合理初始值。在實(shí)際測(cè)試時(shí),往往會(huì)有多個(gè)域的多條報(bào)文需要測(cè)試,編寫(xiě)publisher代碼時(shí)可以一次性將所有域的所有報(bào)文編寫(xiě)完成,也可以僅將一個(gè)域內(nèi)的所有報(bào)文編制完成,依據(jù)單個(gè)用例覆蓋最小化原則,測(cè)試時(shí)一次僅選擇一個(gè)域內(nèi)一條報(bào)文的某一字段進(jìn)行測(cè)試,依次執(zhí)行測(cè)試用例觀察預(yù)期結(jié)果。

4.2測(cè)試節(jié)點(diǎn)做訂閱者

根據(jù)前文中的訂閱者設(shè)計(jì)步驟完成一個(gè)最小單元的訂閱者樣例,保證樣例通信正常,可以正常接收?qǐng)?bào)文數(shù)據(jù),使用受控文檔協(xié)議補(bǔ)充完成所有成員變量的定義。編寫(xiě)subscriber代碼時(shí)推薦一次性將所有域的所有報(bào)文編寫(xiě)完成,根據(jù)實(shí)際測(cè)試需要,選擇性地接收所需報(bào)文進(jìn)行打印,依次執(zhí)行測(cè)試用例觀察預(yù)期結(jié)果。

4.3測(cè)試結(jié)果判斷和處理

由于使用黑盒測(cè)試的方式,預(yù)期結(jié)果也可能是多樣的,測(cè)試節(jié)點(diǎn)者依據(jù)文檔協(xié)議發(fā)送了報(bào)文,若測(cè)試對(duì)象有人機(jī)界面,可以根據(jù)人機(jī)界面顯示情況判斷是否達(dá)到了預(yù)期結(jié)果,若測(cè)試對(duì)象無(wú)人機(jī)界面,但有回送報(bào)文,需要添加訂閱者測(cè)試節(jié)點(diǎn)接收回送報(bào)文,可根據(jù)回送報(bào)文判斷是否達(dá)到了預(yù)期結(jié)果,根據(jù)預(yù)期結(jié)果,即可有效定位測(cè)試缺陷。但也存在一些特殊情況,若報(bào)文發(fā)送完成后,測(cè)試對(duì)象無(wú)響應(yīng),則應(yīng)按照者、測(cè)試環(huán)境、被測(cè)對(duì)象的順序排查問(wèn)題,使用Wireshark等網(wǎng)絡(luò)抓包工具判斷者是否成功,檢查者的成員變量定義是否正確,賦值是否在有效范圍之外,然后排除鏈路故障、丟包、硬件損壞等一系列測(cè)試環(huán)境異常情況,最后可引入白盒測(cè)試的方式定位被測(cè)對(duì)象的測(cè)試缺陷,即可分析出是由于文檔問(wèn)題還是軟件問(wèn)題引起的測(cè)試對(duì)象無(wú)響應(yīng)的情況。

5總結(jié)

在軟件接口測(cè)試中,由于采用DDS規(guī)范的測(cè)試工具未被開(kāi)發(fā),就需要軟件測(cè)試人員使用自研測(cè)試工具完成接口測(cè)試。從DDS的特點(diǎn)和分發(fā)流程入手,對(duì)自研工具的者和訂閱者進(jìn)行了詳細(xì)設(shè)計(jì)論述,通過(guò)實(shí)踐檢驗(yàn),可以有效地對(duì)采用DDS規(guī)范的軟件接口完成軟件測(cè)試,也為后續(xù)開(kāi)發(fā)DDS測(cè)試工具奠定了基礎(chǔ)。由于此方法要求軟件測(cè)試人員需要熟練掌握編程技巧,雖然可以多個(gè)測(cè)試節(jié)點(diǎn)并行測(cè)試互不干擾,但是整體的測(cè)試效率仍低于預(yù)期,后續(xù)可以考慮研究針對(duì)采用DDS接口的軟件自動(dòng)化測(cè)試方法。

參考文獻(xiàn)

[1]楊楚平,趙剛,馬超.艦船一體化網(wǎng)絡(luò)應(yīng)用研究[J].艦船科學(xué)技術(shù),2019,41(19):168-172.

[3]何瓊月.軟件測(cè)試中接口測(cè)試概述與實(shí)踐[J].電子測(cè)試,2021(02):80-81+75.

[4]周平,蘇銀科,沈超.基于DDS的分布式數(shù)字仿真系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2014,26(08):1678-1683+1691.

[5]裘楷,沈棟,李娜,吳宇紅.基于DCPS模型的數(shù)據(jù)分發(fā)服務(wù)DDS的研究[J].電子科技,2006(11):68-71+76.

[6]廖闖,鄭剛,高騫.船舶信息系統(tǒng)數(shù)據(jù)分發(fā)服務(wù)研究[J].計(jì)算機(jī)工程,2013,39(09):94-97+113.

作者:童佳鋒 單位:中國(guó)船舶重工集團(tuán)公司第七一五研究所