董文通 梅磊 石曉寧
中國電子科技集團(tuán)第三十八研究所 安徽 合肥 230088
軟件測試是伴隨著計(jì)算機(jī)技術(shù)的發(fā)展而逐漸發(fā)展的技術(shù),在軟件工程中占有重要的一環(huán),軟件測試技術(shù)決定軟件產(chǎn)品質(zhì)量。據(jù)統(tǒng)計(jì),在軟件工程中軟件測試會占用到軟件開發(fā)周期的40%,對于產(chǎn)品質(zhì)量要求更高的甚至于會占到60%。如今的軟件系統(tǒng)快速發(fā)展,軟件產(chǎn)品的功能愈發(fā)龐大復(fù)雜,同時越來越多的軟件系統(tǒng)呈現(xiàn)出分布式以及模塊化的特性。配置項(xiàng)軟件數(shù)據(jù)交互之間的報文解析更是成為開發(fā)人員和測試人員花費(fèi)大量時間處理的難題。本文建立報文協(xié)議數(shù)據(jù)解析技術(shù)可以減輕測試人員對于報文解析的工作量,節(jié)約測試過程中對于數(shù)據(jù)處理解析的時間,更加精準(zhǔn)的完成報文協(xié)議的分析。
現(xiàn)代計(jì)算機(jī)絕大多數(shù)都是使用TCP/IP協(xié)議來實(shí)現(xiàn)通信[1]。運(yùn)輸層的協(xié)議主要分為兩種協(xié)議:TCP協(xié)議和UDP協(xié)議。TCP為兩臺主機(jī)提供了高可靠性的傳輸通信。而UDP與TCP不同,只提供了端對端的通信,該通信方式并不可靠[2]。針對TCP/IP協(xié)議的報文編解碼技術(shù)比較成熟的為VMF(可變報文格式)[3]。這主要用于指揮系統(tǒng)中報文格式的標(biāo)準(zhǔn),為寬帶受限的戰(zhàn)場環(huán)境實(shí)時傳輸指揮控制代碼信息而制定的一種可變長度的分組報文格式[4]。本文針對網(wǎng)絡(luò)傳輸過程中TCP/IP協(xié)議的報文編解碼技術(shù)的研究以及報文編解碼系統(tǒng)設(shè)計(jì)。
在整個軟件系統(tǒng)的軟件測試過程,更關(guān)注利用計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行各個配置項(xiàng)軟件之間的通信、通信單元中各個協(xié)議的正確性以及通信過程中各個協(xié)議的正確性。為了更為直接地解決這個問題,我們建立了數(shù)據(jù)報文的基礎(chǔ)模型。在計(jì)算機(jī)網(wǎng)路通信過程中,通常各個配置項(xiàng)之間所交互的報文包含了發(fā)送方需要發(fā)送的完整數(shù)據(jù)信息,應(yīng)用層上定義的報文通常由幀頭、消息內(nèi)容、校驗(yàn)以及幀尾組成,測試過程中,所關(guān)注的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)中的數(shù)據(jù)是報文中最基本的組成成分。在網(wǎng)絡(luò)的協(xié)議中,數(shù)據(jù)解析是根據(jù)已知的數(shù)據(jù)通信協(xié)議,并按照通信協(xié)議去除冗余信息,計(jì)算獲得用戶需要的數(shù)據(jù)信息,分析出信息值。數(shù)據(jù)解析的過程通常都是按照報文協(xié)議中固定的步進(jìn)和回溯對數(shù)據(jù)進(jìn)行解析。數(shù)據(jù)幀和數(shù)據(jù)包都是有一定的規(guī)律,數(shù)據(jù)幀由固定的長度,數(shù)據(jù)包通常根據(jù)信息源、采樣率和采樣時間有所不同,以及每次發(fā)送的報文長度可知,我們可以將每次傳輸?shù)臄?shù)據(jù)協(xié)議全部都轉(zhuǎn)化為基礎(chǔ)數(shù)據(jù)進(jìn)行解析協(xié)議。對于解析的結(jié)構(gòu),以常見的報文結(jié)構(gòu)舉例,數(shù)據(jù)中報文結(jié)構(gòu)如下所示:
中我們設(shè)置有報文頭Message_Header,里面包含有消息碼和報文長度等信息。我們定義messageA、messageB等作為消息內(nèi)容中的基礎(chǔ)數(shù)據(jù),通過對于上述中的報文利用編譯原理中的數(shù)據(jù)結(jié)構(gòu)進(jìn)行解析能夠得到數(shù)據(jù)中的編解信息。我們知道協(xié)議總長度N,除messageHeader以外長度。我們需要對每個根據(jù)字節(jié)的偏移量設(shè)置相應(yīng)的算法進(jìn)行結(jié)構(gòu)的解析和對應(yīng),其中對于每個字段長度的解析與測試算法為:
對于每個消息結(jié)構(gòu)體messageAi的字段長度lengthAi,每個消息結(jié)構(gòu)體的內(nèi)存偏移量為PAi;對于區(qū)域內(nèi)最后一個字節(jié)偏移量為PAj;其中計(jì)算PAij= PAj+lengthAj-PAi;重復(fù)上述步驟,對于每一個PAij與消息中數(shù)值長度進(jìn)行對應(yīng)。對于網(wǎng)絡(luò)協(xié)議中數(shù)據(jù)的結(jié)構(gòu)體解析,我們需要對基礎(chǔ)數(shù)據(jù)的字段長度,階段性內(nèi)容進(jìn)行計(jì)算和驗(yàn)證測試。
本文根據(jù)軟件測試過程中所涉及的通信模塊協(xié)議數(shù)據(jù)的測試,提出一種協(xié)議的數(shù)據(jù)模型,并根據(jù)協(xié)議的數(shù)據(jù)模型提出了數(shù)據(jù)解析的方法。并基于該方法設(shè)計(jì)相關(guān)的協(xié)議模型解析平臺首先本文所舉例的協(xié)議結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行解析和測試。該系統(tǒng)平臺可以針對軟件測試過程中所涉及的協(xié)議數(shù)據(jù)進(jìn)行充分的解析和測試,從而大大的縮減測試的時間和人力成本。同時具備很好的經(jīng)濟(jì)價值和使用價值,并為后續(xù)的智能化測試提供參考依據(jù)。