沈鵬,李利,胡曉燕,金媛媛
(中航工業(yè)洪都,江西南昌,330024)
基于國內(nèi)某技術(shù)標準總線數(shù)據(jù)的通用解析方法研究
沈鵬,李利,胡曉燕,金媛媛
(中航工業(yè)洪都,江西南昌,330024)
國內(nèi)某技術(shù)標準數(shù)據(jù)總線在我國航空航天、武器平臺等方面的應(yīng)用十分廣泛,該標準對總線數(shù)據(jù)格式要求嚴格。在型號軟件測試中,由于接口控制數(shù)據(jù)數(shù)量非常多,若采用普通的數(shù)據(jù)解析方法將帶來很大的工作量,因此需要一種高效的數(shù)據(jù)解析方法以提高測試效率。本文針對該標準總線數(shù)據(jù)的特點,結(jié)合某型號接口控制數(shù)據(jù)文件的若干數(shù)據(jù)類型,研究了基于該標準總線數(shù)據(jù)的測試通用解析方法。
國內(nèi)某技術(shù)標準;總線數(shù)據(jù);數(shù)據(jù)解析;軟件測試
航空電子設(shè)備軟件關(guān)系著飛機的飛行安全,由此對航空電子軟件的測試工作提出了非常高的要求。國內(nèi)某技術(shù)標準數(shù)據(jù)總線在我國航空電子設(shè)備的應(yīng)用越來越廣泛,該標準對總線數(shù)據(jù)格式要求嚴格。在國內(nèi)進行航電總線測試時,會針對該項目進行專用的測試工具開發(fā),用來進行總線數(shù)據(jù)分析測試工作,在分析過程中,對于數(shù)據(jù)的解析是一個重點。但由于一般測試數(shù)據(jù)解析工具是針對固定的型號軟件進行開發(fā)的,如果設(shè)備型號的變更導(dǎo)致軟件相關(guān)數(shù)據(jù)項的變更,這種測試數(shù)據(jù)解析工具可能就無法滿足要求,因此需要一種通用的總線數(shù)據(jù)測試解析方法來進行測試數(shù)據(jù)的解析。一方面可以在處理大量的數(shù)據(jù)項解析時,節(jié)約測試工作量;另一方面,當型號軟件發(fā)生變更時,只需要進行很小的數(shù)據(jù)項配置工作,即可繼續(xù)進行數(shù)據(jù)測試解析,大大節(jié)約了測試的時間和成本。
在型號軟件測試中,對于接口控制數(shù)據(jù)文件中總線數(shù)據(jù)的測試是十分重要的,但由于數(shù)據(jù)項數(shù)量多,這就需要工具進行總線數(shù)據(jù)的測試解析?;趪鴥?nèi)某技術(shù)標準總線的數(shù)據(jù)在標準中有著嚴格的要求,針對該標準總線數(shù)據(jù)的特點,結(jié)合某型號接口控制數(shù)據(jù)文件的若干數(shù)據(jù)類型,研究基于國內(nèi)某技術(shù)標準總線數(shù)據(jù)的測試通用解析方法,以提高型號軟件的測試效率。
國內(nèi)某技術(shù)標準總線全稱是數(shù)字式時分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線,總線上傳輸?shù)臄?shù)字數(shù)據(jù)采用標準中定義的消息和字的格式。該標準中規(guī)定,消息是包括一個指令字、一個狀態(tài)字和若干數(shù)據(jù)字及狀態(tài)響應(yīng)間隔在內(nèi)的傳輸序列[1]。字是一個信息序列,包括指令字、狀態(tài)字和數(shù)據(jù)字三種類型的字[1]。每個字的字長為20位,由16位有效位加同步頭和奇偶校驗位組成。
該標準總線數(shù)據(jù)的一個重要特點是位優(yōu)先權(quán)。也就是說,在總線上傳輸?shù)臄?shù)據(jù)字,總是每個字的最高有效位在先,按數(shù)值遞減的次序跟著較低有效位[1]。如果在總線上發(fā)送的信息,其精度或分辨率超過16位,也應(yīng)先發(fā)送最高有效位。超過16位的再按數(shù)據(jù)遞減的次序組成第二個字發(fā)送,允許將多個參數(shù)信息的位合并成一個數(shù)據(jù)字。
在型號軟件測試中,通過總線數(shù)據(jù)采集模塊采集到國內(nèi)某技術(shù)標準總線數(shù)據(jù),測試解析工具獲取采集到的總線數(shù)據(jù),在工具進行初始化時,能從數(shù)據(jù)庫中取得相應(yīng)的數(shù)據(jù)項配置信息,然后根據(jù)數(shù)據(jù)項的配置信息對此總線數(shù)據(jù)的數(shù)據(jù)項進行解析,并能通過選擇已配置的數(shù)據(jù)項信息,自動根據(jù)配置信息調(diào)用相應(yīng)的算法進行解析,得到最終的目標數(shù)據(jù)。由于在目前實際的測試工作中,常用的測試分析工具,如BusTools,在進行數(shù)據(jù)字的解析時,會自動處理同步頭和奇偶校驗位,并在接口控制數(shù)據(jù)文件中僅對有效數(shù)據(jù)位進行定義。因此,對于20位的數(shù)據(jù)字,本文只對其中16位的有效數(shù)據(jù)位進行分析。測試解析工作的工作模式如圖1所示。
通過對某型軟件接口控制數(shù)據(jù)文件中所有數(shù)據(jù)進行分析整理,得出主要有五種數(shù)據(jù)類型,以下是對此五種數(shù)據(jù)類型數(shù)據(jù)特點的分析。
3.1需進行十進制轉(zhuǎn)換的普通數(shù)據(jù)
圖1 測試解析工作模式
需進行十進制轉(zhuǎn)換的普通數(shù)據(jù)主要是在單個數(shù)據(jù)字內(nèi),指定了該數(shù)據(jù)二進制表示形式的起始位和結(jié)束位,若為有符號數(shù),則需要指定符號位。然后,根據(jù)起始位、結(jié)束位和符號位信息截取目標數(shù)據(jù)段,并進行二進制向十進制的轉(zhuǎn)換,將轉(zhuǎn)換的十進制結(jié)果與單位量進行換算,即可得到這種類型數(shù)據(jù)的目標值,數(shù)據(jù)處理過程如圖2所示。
圖2 需進行十進制轉(zhuǎn)換的普通數(shù)據(jù)類型
在對這種類型的數(shù)據(jù)處理時,需要注意區(qū)分有符號數(shù)據(jù)和無符號數(shù)據(jù)。由于二進制數(shù)據(jù)在計算機中存儲的是數(shù)據(jù)的補碼,正數(shù)的補碼就是其原碼,而負數(shù)的補碼則是其原碼按位取反再加1。
3.2 枚舉型數(shù)據(jù)
枚舉型數(shù)據(jù)包括十進制匹配和二進制匹配兩種類型。枚舉型數(shù)據(jù)主要是在單個數(shù)據(jù)字內(nèi),指定了該數(shù)據(jù)二進制表示形式的起始位和結(jié)束位,根據(jù)起始位和結(jié)束位信息截取目標數(shù)據(jù)段,枚舉型數(shù)據(jù)的目標值采用鍵-值對的形式進行匹配,數(shù)據(jù)處理過程如圖3所示。
若為十進制匹配數(shù)據(jù),則將目標數(shù)據(jù)段進行二進制向十進制的轉(zhuǎn)換,并進行鍵-值對的匹配,找到目標數(shù)據(jù)。
若為二進制匹配數(shù)據(jù),則將目標數(shù)據(jù)段直接進行鍵-值對的匹配,找到目標數(shù)據(jù)。
圖3 枚舉型數(shù)據(jù)類型
3.3 需進行十進制轉(zhuǎn)換的復(fù)合型數(shù)據(jù)
圖4 需進行十進制轉(zhuǎn)換的復(fù)合型數(shù)據(jù)類型
需進行十進制轉(zhuǎn)換的復(fù)合型數(shù)據(jù)主要是通過將多個需要進行十進制轉(zhuǎn)換的普通數(shù)據(jù)類型進行拼接得到目標結(jié)果,數(shù)據(jù)處理過程如圖4所示。
常見的該類型數(shù)據(jù)如日期,需要得到年月日時分秒的數(shù)據(jù)信息,通過將若干數(shù)據(jù)字中的若干目標數(shù)據(jù)段進行截取,并采用第一種數(shù)據(jù)類型的轉(zhuǎn)換方式進行十進制轉(zhuǎn)換,最后將所有的轉(zhuǎn)換結(jié)果進行拼接得到最終的目標數(shù)據(jù)。
3.4 需進行十進制轉(zhuǎn)換的三十二位型數(shù)據(jù)
需進行十進制轉(zhuǎn)換的三十二位型數(shù)據(jù)主要是指在總線上發(fā)送的信息超過16位,而超過16位的按數(shù)據(jù)遞減的次序組成第二個字發(fā)送。該目標數(shù)據(jù)段分隔在兩個數(shù)據(jù)字中,需要分別將兩個數(shù)據(jù)字中的有效數(shù)據(jù)段進行拼接,再進行二進制向十進制的轉(zhuǎn)換,最終得到目標數(shù)據(jù),數(shù)據(jù)處理過程如圖5所示。
3.5 常量型數(shù)據(jù)
圖5 需進行十進制轉(zhuǎn)換的三十二位數(shù)據(jù)
常量型數(shù)據(jù)是在單個數(shù)據(jù)字中,指定了該數(shù)據(jù)的起始位和結(jié)束位,但目標數(shù)據(jù)段對應(yīng)的目標值是一個常量,無需進行轉(zhuǎn)換。
4.1 普通數(shù)據(jù)算法設(shè)計
假設(shè)數(shù)據(jù)塊的十六進制數(shù)據(jù)字符串為S,目標數(shù)據(jù)在數(shù)據(jù)塊中的字號為m,通過目標數(shù)據(jù)字在該數(shù)據(jù)塊中的字號可以得到目標數(shù)據(jù)字的十六進制字符串,目標數(shù)據(jù)字的十六進制數(shù)據(jù)為SHex,通過字符串截取方法Substring獲取目標數(shù)據(jù)字的十六進制數(shù)據(jù)字符串SHex,則:
目標數(shù)據(jù)字二進制表示形式為SBinary,經(jīng)過方法HexToBinary(SHex)將十六進制字符串SHex轉(zhuǎn)換成二進制表示形式SBinary。得到目標數(shù)據(jù)字的二進制字符串后,根據(jù)數(shù)據(jù)項的起始位、結(jié)束位信息,獲得目標數(shù)據(jù)段的二進制字符串Starget。
若目標數(shù)據(jù)符號位為正,假設(shè)Starget的位數(shù)為n,單位量的值為u0。遍歷目標數(shù)據(jù)段的二進制字符串,則目標數(shù)據(jù)計算公式f(n)為:
若目標數(shù)據(jù)符號位為負,先對目標數(shù)據(jù)段二進制字符串末位減1,再對所有數(shù)據(jù)位取反,得到負數(shù)的原碼二進制字符串Snew,假設(shè)Snew的位數(shù)為n,單位量的值為u0。遍歷目標數(shù)據(jù)段的二進制字符串,則目標數(shù)據(jù)計算公式f(n)為:4.2枚舉型數(shù)據(jù)算法設(shè)計
枚舉型數(shù)據(jù)的算法與普通數(shù)據(jù)算法是一致的,通過數(shù)據(jù)項所在的字號、起始位、結(jié)束位、符號位等信息計算得到目標數(shù)據(jù)段所對應(yīng)的數(shù)據(jù)后,需要根據(jù)枚舉配置項的鍵值對數(shù)據(jù),匹配得到目標數(shù)據(jù)。
4.3 復(fù)合型數(shù)據(jù)算法設(shè)計
復(fù)合型數(shù)據(jù)是由多個普通數(shù)據(jù)組合而成,假設(shè)復(fù)合型數(shù)據(jù)是由n個普通數(shù)據(jù)構(gòu)成,第i個普通數(shù)據(jù)的位數(shù)為length(i),則復(fù)合型數(shù)據(jù)的目標數(shù)據(jù)計算公式f(n)為:
4.4 三十二位型數(shù)據(jù)算法設(shè)計
三十二位型數(shù)據(jù)是由兩個數(shù)據(jù)字組成,假設(shè)數(shù)據(jù)塊的十六進制數(shù)據(jù)字符串為S,第一個數(shù)據(jù)字字號為m,第二個數(shù)據(jù)字字號為n,且m<n,第一個數(shù)據(jù)字的起始位為s1,結(jié)束位為e1;第二個數(shù)據(jù)字的起始位為s2,結(jié)束位為e2。第一個數(shù)據(jù)字的有效二進制數(shù)據(jù)段為S1,第二個數(shù)據(jù)字的有效二進制數(shù)據(jù)段為S2,則:
目標二進制數(shù)據(jù)段Starget則為S1和S2的連接字符串,目標數(shù)據(jù)的計算公式與普通數(shù)據(jù)的計算公式一致。
4.5 常量型數(shù)據(jù)算法設(shè)計
常量型數(shù)據(jù)的目標數(shù)據(jù)值是一個常量,假設(shè)常量為C0,則目標數(shù)據(jù)計算公式f(n)為:
本文根據(jù)國內(nèi)某技術(shù)標準總線數(shù)據(jù)的特點,結(jié)合某型號接口控制數(shù)據(jù)文件中的接口數(shù)據(jù)信息,提取通用的數(shù)據(jù)類型并進行了分析。再根據(jù)各數(shù)據(jù)類型的特點進行算法設(shè)計,得到通用的幾種測試數(shù)據(jù)類型的解析公式。在測試工作中,只需要完善各個數(shù)據(jù)項相應(yīng)的配置信息,在獲取總線數(shù)據(jù)中的數(shù)據(jù)塊后,可以按照相應(yīng)的配置信息進行數(shù)據(jù)解析,并自動得到解析結(jié)果。此解析方法在用于該標準總線數(shù)據(jù)的解析時可以較小地受型號變更的影響,只需對配置信息進行修改,即可進行總線數(shù)據(jù)的解析工作。
[1]數(shù)字式時分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線.GJB289A-97.1998,5.
[2]布朗,等.軟件測試.原理與實踐(英文版).北京:機械工業(yè)出版社,2012.
[3]劉振宇,王恒.基于形式化方法的測試驅(qū)動開發(fā)研究.計算機工程與設(shè)計,2008.
[4]程燁,高建華.與設(shè)計模式相結(jié)合的測試驅(qū)動開發(fā)方法.計算機工程與設(shè)計,2006.
>>>作者簡介
沈鵬,男,1988年出生,2013年畢業(yè)于北京航空航天大學(xué),工程師,現(xiàn)從事軟件工程專業(yè)工作。
Research on General Analytical Method of Bus Data Based on Domestic Technical Standard
Shen Peng,Li Li,Hu Xiaoyan,Jin Yuanyuan
(AVIC-HONGDU,Nanchang,Jiangxi,330024)
A domestic technical standard for bus data is widely applied in Chinese aerospace,weapon platform,etc. The standard strictly limits the format of bus data.Since the interface control data is enormous and normal data analytical method will cause tremendous workload during the test of software,a effective data analytical method to increase test efficiency is needed.Base on the characteristics of standard bus data and certain data types of interface control document,a research on the general analytical method is performed based on the standard bus data.
A domestic technical standard;Bus data;Data analysis;Software test
2016-10-19)