董文通 梅磊 石曉寧
中國電子科技集團第三十八研究所 安徽 合肥 230088
軟件測試是伴隨著計算機技術的發展而逐漸發展的技術,在軟件工程中占有重要的一環,軟件測試技術決定軟件產品質量。據統計,在軟件工程中軟件測試會占用到軟件開發周期的40%,對于產品質量要求更高的甚至于會占到60%。如今的軟件系統快速發展,軟件產品的功能愈發龐大復雜,同時越來越多的軟件系統呈現出分布式以及模塊化的特性。配置項軟件數據交互之間的報文解析更是成為開發人員和測試人員花費大量時間處理的難題。本文建立報文協議數據解析技術可以減輕測試人員對于報文解析的工作量,節約測試過程中對于數據處理解析的時間,更加精準的完成報文協議的分析。
現代計算機絕大多數都是使用TCP/IP協議來實現通信[1]。運輸層的協議主要分為兩種協議:TCP協議和UDP協議。TCP為兩臺主機提供了高可靠性的傳輸通信。而UDP與TCP不同,只提供了端對端的通信,該通信方式并不可靠[2]。針對TCP/IP協議的報文編解碼技術比較成熟的為VMF(可變報文格式)[3]。這主要用于指揮系統中報文格式的標準,為寬帶受限的戰場環境實時傳輸指揮控制代碼信息而制定的一種可變長度的分組報文格式[4]。本文針對網絡傳輸過程中TCP/IP協議的報文編解碼技術的研究以及報文編解碼系統設計。
在整個軟件系統的軟件測試過程,更關注利用計算機網絡進行各個配置項軟件之間的通信、通信單元中各個協議的正確性以及通信過程中各個協議的正確性。為了更為直接地解決這個問題,我們建立了數據報文的基礎模型。在計算機網路通信過程中,通常各個配置項之間所交互的報文包含了發送方需要發送的完整數據信息,應用層上定義的報文通常由幀頭、消息內容、校驗以及幀尾組成,測試過程中,所關注的網絡協議數據中的數據是報文中最基本的組成成分。在網絡的協議中,數據解析是根據已知的數據通信協議,并按照通信協議去除冗余信息,計算獲得用戶需要的數據信息,分析出信息值。數據解析的過程通常都是按照報文協議中固定的步進和回溯對數據進行解析。數據幀和數據包都是有一定的規律,數據幀由固定的長度,數據包通常根據信息源、采樣率和采樣時間有所不同,以及每次發送的報文長度可知,我們可以將每次傳輸的數據協議全部都轉化為基礎數據進行解析協議。對于解析的結構,以常見的報文結構舉例,數據中報文結構如下所示:

中我們設置有報文頭Message_Header,里面包含有消息碼和報文長度等信息。我們定義messageA、messageB等作為消息內容中的基礎數據,通過對于上述中的報文利用編譯原理中的數據結構進行解析能夠得到數據中的編解信息。我們知道協議總長度N,除messageHeader以外長度。我們需要對每個根據字節的偏移量設置相應的算法進行結構的解析和對應,其中對于每個字段長度的解析與測試算法為:
對于每個消息結構體messageAi的字段長度lengthAi,每個消息結構體的內存偏移量為PAi;對于區域內最后一個字節偏移量為PAj;其中計算PAij= PAj+lengthAj-PAi;重復上述步驟,對于每一個PAij與消息中數值長度進行對應。對于網絡協議中數據的結構體解析,我們需要對基礎數據的字段長度,階段性內容進行計算和驗證測試。
本文根據軟件測試過程中所涉及的通信模塊協議數據的測試,提出一種協議的數據模型,并根據協議的數據模型提出了數據解析的方法。并基于該方法設計相關的協議模型解析平臺首先本文所舉例的協議結構中的數據進行解析和測試。該系統平臺可以針對軟件測試過程中所涉及的協議數據進行充分的解析和測試,從而大大的縮減測試的時間和人力成本。同時具備很好的經濟價值和使用價值,并為后續的智能化測試提供參考依據。