余昌瑾
(株洲中車時代電氣股份有限公司,湖南 株洲412001)
?
一種列車網(wǎng)絡(luò)應(yīng)用層控制軟件自動化測試系統(tǒng)
余昌瑾
(株洲中車時代電氣股份有限公司,湖南 株洲412001)
摘要:通過分析列車網(wǎng)絡(luò)應(yīng)用層控制軟件的自動化測試現(xiàn)狀后,提出了一種列車網(wǎng)絡(luò)應(yīng)用層控制軟件自動化測試系統(tǒng)。對該自動化測試系統(tǒng)的基本測試流程進行了介紹,并詳細描述了該自動化測試系統(tǒng)的硬件構(gòu)成以及數(shù)據(jù)傳輸協(xié)議導(dǎo)入、陪測程序自動生成、測試用例導(dǎo)入等核心功能。最后通過對同一個列車網(wǎng)絡(luò)應(yīng)用層控制軟件的三種測試方式耗時的比較,驗證了該自動化測試系統(tǒng)的可行性,證明其極大的提升了測試效率。
關(guān)鍵詞:自動化測試系統(tǒng);數(shù)據(jù)傳輸協(xié)議導(dǎo)入;陪測程序自動生成;測試用例導(dǎo)入
目前軌道交通行業(yè)內(nèi)大部分可以提供列車網(wǎng)絡(luò)控制軟件的公司,其網(wǎng)絡(luò)平臺在硬件以及底層驅(qū)動上是相對統(tǒng)一且成熟的。其中絕大部分的功能是通過列車網(wǎng)絡(luò)應(yīng)用層控制軟件(以下簡稱列車網(wǎng)絡(luò)軟件)來實現(xiàn)的,而不同的應(yīng)用領(lǐng)域、不同的項目背景造成在統(tǒng)一的網(wǎng)絡(luò)平臺下,項目間功能的差異化較大。且近年來列車網(wǎng)絡(luò)接入的車載設(shè)備越來越多,列車網(wǎng)絡(luò)承載的數(shù)據(jù)流越來越大,網(wǎng)絡(luò)控制軟件功能越來越復(fù)雜,導(dǎo)致差異化越發(fā)的變大。在這種情況下,原有人工測試的方法已經(jīng)不能滿足當前列車網(wǎng)絡(luò)軟件的測試難度和強度,需要開發(fā)相對應(yīng)的自動化測試系統(tǒng)才能有效地保證列車網(wǎng)絡(luò)軟件測試的質(zhì)量和效率。
目前在軌道交通行業(yè)內(nèi)網(wǎng)絡(luò)控制軟件自動化測試系統(tǒng)較少,且大多是針對底層驅(qū)動的自動化測試系統(tǒng)。少數(shù)幾個針對網(wǎng)絡(luò)應(yīng)用層軟件的自動化測試系統(tǒng)大多是將網(wǎng)絡(luò)上開源的自動化測試軟件框架平行移植到其網(wǎng)絡(luò)平臺上,需要4步才能完成自動化測試執(zhí)行得到結(jié)果:
(1)對數(shù)據(jù)傳輸協(xié)議中的變量進行定義;
(2)定制通信板卡或工控機作為陪測設(shè)備接入被測網(wǎng)絡(luò)系統(tǒng);
(3)編寫陪測程序來轉(zhuǎn)化不同協(xié)議下的數(shù)據(jù)流;
(4)通過面向?qū)ο?、解釋型的計算機語言來編寫測試腳本(例如Python語言)。
但現(xiàn)有的列車網(wǎng)絡(luò)軟件數(shù)據(jù)量較大,且不同項目間的數(shù)據(jù)傳輸協(xié)議是不同的,變量定義不可重復(fù)利用;由于依賴于各種不同的數(shù)據(jù)傳輸協(xié)議,陪測程序不可重復(fù)利用;測試用例是現(xiàn)有測試流程中必要的技術(shù)文檔,自動化測試系統(tǒng)也需要編寫機器識別的測試腳本,兩者重復(fù);而硬件雖然可以重復(fù)使用,但是可同時進行的測試項目受定制的通信板卡或者工控機的數(shù)量約束。這些都是現(xiàn)有列車網(wǎng)絡(luò)軟件自動化測試系統(tǒng)的不足之處,造成了人力資源浪費、測試效率低下。
針對以上分析并結(jié)合數(shù)據(jù)驅(qū)動測試框架、測試腳本模塊化框架、關(guān)鍵字驅(qū)動或表驅(qū)動測試框架各自特點[1],本文提出一種列車網(wǎng)絡(luò)軟件自動化測試系統(tǒng),該系統(tǒng)主要從以下4個方面來提高測試效率:
(1)利用現(xiàn)有列車網(wǎng)絡(luò)系統(tǒng)中的網(wǎng)絡(luò)設(shè)備作為陪測設(shè)備接入被測系統(tǒng);
(2)通過導(dǎo)入數(shù)據(jù)傳輸協(xié)議來由系統(tǒng)實現(xiàn)對變量的定義;
(3)測試用例和測試腳本進行合并,通過導(dǎo)入測試用例,由系統(tǒng)自動生成測試腳本;
(4)根據(jù)導(dǎo)入的數(shù)據(jù)傳輸協(xié)議自動生成陪測程序。
系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。
圖1 自動化測試系統(tǒng)功能結(jié)構(gòu)圖
2.1測試基本流程
本系統(tǒng)基本的自動化測試流程如下:
S01、測試開始,導(dǎo)入被測列車網(wǎng)絡(luò)軟件的各種數(shù)據(jù)傳輸協(xié)議,由系統(tǒng)對各種數(shù)據(jù)傳輸協(xié)議中各變量進行解析并定義后存入數(shù)據(jù)庫;
S02、由系統(tǒng)根據(jù)數(shù)據(jù)傳輸協(xié)議生成陪測程序,用于實現(xiàn)以太網(wǎng)協(xié)議與各種數(shù)據(jù)傳輸協(xié)議之間的數(shù)據(jù)轉(zhuǎn)化;
S03、導(dǎo)入并執(zhí)行預(yù)設(shè)的測試用例對各控制軟件進行測試,如測試結(jié)果與期望值相符則判斷控制軟件合格,否則為不合格,并將測試結(jié)論返回輸出至測試用例中。
2.2系統(tǒng)硬件構(gòu)成
在列車網(wǎng)絡(luò)軟件自動化測試系統(tǒng)中所依托的測試系統(tǒng)由PC端、陪測端和被測端三部分組成,陪測端與被測端均為列車網(wǎng)絡(luò)平臺產(chǎn)品(見圖2)。其中PC端與陪測端之間通過以太網(wǎng)連接,數(shù)據(jù)傳輸方式為UDP,陪測端與被測端之間為網(wǎng)絡(luò)通信線纜,數(shù)據(jù)傳輸協(xié)議包括網(wǎng)絡(luò)系統(tǒng)項目中所使用到的MVB協(xié)議、WTB協(xié)議、RS485/422協(xié)議、CAN協(xié)議、以太網(wǎng)協(xié)議。陪測端主要通過陪測軟件實現(xiàn)模擬所有輸入數(shù)據(jù)發(fā)送至被測端,并檢測被測端所有輸出數(shù)據(jù)。陪測端/被測端可以是單個模塊/單板,也可以使多個模塊/單板組成的陪測/被測系統(tǒng)。
圖2 自動化測試系統(tǒng)硬件構(gòu)成
2.3主要功能介紹
本系統(tǒng)支持的各種數(shù)據(jù)傳輸協(xié)議包括MVB協(xié)議、WTB協(xié)議、RS422協(xié)議、RS485協(xié)議、CAN協(xié)議和以太網(wǎng)協(xié)議。要求導(dǎo)入的各種數(shù)據(jù)傳輸協(xié)議均為固定的Excel格式,才能實現(xiàn)導(dǎo)入后自動解析協(xié)議中的變量并進行定義。以MVB協(xié)議為例,必須要包含五大要素:端口號、端口周期、端口方向、端口大小、端口中信號名稱及大小。通過讀取EXCEL固定表頭或者關(guān)鍵字獲取五大要素,并將信號名轉(zhuǎn)為同等大小的變量名存入變量庫。
當執(zhí)行完協(xié)議導(dǎo)入后即可以進行S02中的陪測程序自動生成。該功能需要結(jié)合列車網(wǎng)絡(luò)軟件開發(fā)工具。以開發(fā)工具MULTIPROG5.0為例,編寫一個支持UDP協(xié)議和MVB協(xié)議的應(yīng)用程序時要包括4個內(nèi)容:
(1)定義數(shù)據(jù)類型;
(2)定義MVB端口信息(包括端口號、端口大小、物理地址起始地址)和UDP端口信息(定義端口號);
(3)編寫描述MVB數(shù)據(jù)包與UDP數(shù)據(jù)包映射關(guān)系的主程序(使用MULTIPROG5.0編程工具支持的ST語言);
(4)任務(wù)運行周期。
其中(1)、(2)、(4)點中的信息,通過協(xié)議導(dǎo)入后即可獲知,第(3)點中主程序(ST語言)則是描述UDP數(shù)據(jù)包與MVB數(shù)據(jù)包相互映射的關(guān)系,可以由自動化測試系統(tǒng)自行決定其映射關(guān)系。例如,有3個32字節(jié)大小的MVB數(shù)據(jù)包(MVB1、MVB2、MVB3)需要填入1個1024大小的UDP數(shù)據(jù)包,那么UDP數(shù)據(jù)包的第1-32字節(jié)則對應(yīng)MVB1數(shù)據(jù)包,第33-64字節(jié)則對應(yīng)MVB2數(shù)據(jù)包,第65-96字節(jié)則對應(yīng)MVB3數(shù)據(jù)包。由于使用MULTIPROG5.0編程工具是可以將完整的應(yīng)用程序?qū)С鰹橄嚓P(guān)的配置文件,反之亦可通過導(dǎo)入配置文件生成支持UDP協(xié)議和MVB協(xié)議相互轉(zhuǎn)換的陪測程序。而其他無配置文件生成的開發(fā)工具也可以可以根據(jù)編程規(guī)則直接生成陪測程序的源代碼。
在步驟S03中測試用例的導(dǎo)入吸收了表驅(qū)動的測試框架相關(guān)特點。測試用例需要在EXCEL中以固定的表頭來體現(xiàn)用例ID、前置條件、輸入/操作步驟、期望結(jié)果、測試結(jié)論以及實際輸出值共六個要素:
(1)用例ID為測試用例的編號;
(2)前置條件是用來描述當前測試用例執(zhí)行的先決條件,即在執(zhí)行當前測試用例時,必須先執(zhí)行某個測試用例的輸入/操作步驟;
(3)輸入/操作步驟需遵循“變量名+執(zhí)行動作+參數(shù)”的格式,其中變量名為步驟S01的協(xié)議導(dǎo)入解析后產(chǎn)生,參數(shù)為數(shù)值或者中文名稱,執(zhí)行動作和中文名稱參數(shù)為事先配置,比如“=:等于,為”、“1:有效、高電平”,多條輸入/操作步驟需要通過“;”間隔;
(4)期望結(jié)果需遵循“變量名+判斷條件+參數(shù)”格式,其中變量名為步驟S01中協(xié)議導(dǎo)入解析后產(chǎn)生,參數(shù)為數(shù)值或者中文名稱,判斷條件和中文名稱參數(shù)為事先配置,比如“=:等于,為”、“>:大于”、“1:有效、高電平”,多條期望結(jié)果需要通過“;”間隔;
(5)實際值為期望結(jié)果中變量的實際數(shù)值,多個數(shù)值用“;”隔開;
(6)測試結(jié)論為期望結(jié)果與實際值是否相符,相符即為本條測試用例通過,反之則不通過。
測試用例示例如表1所列。
表1 測試用例示例
當測試用例導(dǎo)入后系統(tǒng)將其轉(zhuǎn)為可以執(zhí)行的測試腳本,自動化測試執(zhí)行完后,將“實際值”、“測試結(jié)論”填寫到測試用例中(EXCEL文檔),執(zhí)行完畢后將實際值和測試結(jié)論回填至測試用例中。
在某個項目的列車網(wǎng)絡(luò)軟件測試中采用人工測試,平行移植于通用的自動化測試系統(tǒng)框架,本文提出的自動化測試系統(tǒng)等三種方式分別進行測試。在第第一種測試方式中測試各個階段所占時間比率大致如下:測試設(shè)計(5%)、測試用例編寫(30%)、陪測程序編寫(10%)、測試執(zhí)行(35%)、測試記錄(5%)、回歸測試(10%)、編寫測試報告(5%)。以第人工測試方式為衡量基準,發(fā)現(xiàn)第二種方式減少了測試執(zhí)行(35%)、測試記錄(5%)、回歸測試(10%)、編寫測試報告(5%)等環(huán)節(jié),但增加了測試腳本編寫(35%)環(huán)節(jié),實際使用時間為人工測試方式所花時間的80%.而第三種方式減少了陪測程序編寫(10%)、測試執(zhí)行(35%)、測試記錄(5%)、回歸測試(10%)、編寫測試報告(5%)等環(huán)節(jié),實際使用時間為第一方式所花時間的35%.
雖然本文并未就自動化測試系統(tǒng)對軟件質(zhì)量提升進行闡述,但是業(yè)內(nèi)已公認自動化測試是軟件測試的大方向,能對軟件產(chǎn)品質(zhì)量保證和軟件產(chǎn)品的測試效率起到積極作用[2]。本文提出的自動化系統(tǒng)實際上是結(jié)合了列車網(wǎng)絡(luò)軟件設(shè)計開發(fā)流程和測試流程,充分利用現(xiàn)有技術(shù)文檔中的數(shù)據(jù)傳輸協(xié)議和測試用例來達到提升測試效率的目的,通過測試效率對比驗證了本系統(tǒng)的實用性。不過本文提出的自動化測試系統(tǒng)在測試效率上仍有進一步挖掘的空間,可以在此框架上增加其他輔助功能,進一步提升測試效率。下一步的目標是結(jié)合設(shè)計人員和測試人員的開發(fā)習(xí)慣,減少測試用例編寫這一環(huán)節(jié)的時間,實現(xiàn)進一步提升測試效率的目的。
參考文獻:
[1]Michael Kelly.Choosing a test automation framework[N]. 2003.10.20]http://www.ibm.com/developerworks/rational/library/ 591.html
[2]朱少民.全程軟件測試[M].第二版.北京:電子工業(yè)出版社,2014.
中圖分類號:TP274
文獻標識碼:B
文章編號:1672-545X(2016)04-0232-03
收稿日期:2016-01-01
作者簡介:余昌瑾(1983-),男,湖南株洲人,工程師,碩士,主要從事列車網(wǎng)絡(luò)應(yīng)用層控制軟件開發(fā)和測試工作。
A Control Software Auto-test System of Train Network ApplicationA Control Software Auto-test System of Train Network Application
YU Chang-jin
(Zhuzhou Crrc Times Electric Co.,ltd.,Zhuzhou Hunan 412001,China)
Abstract:Through the analysis of the auto-test status of train network application layer control software,this paper proposes a control software auto-test system of train network application layer.In this paper,the author introduced a basic test process of auto-test system and described the hardware of this system and the core functions,such as importation of data transmission protocol,automatic generation of accompany measuring program and importation of test cases.Based on the comparing in three time-consuming test of the same train network application layer control software,this paper verified the feasibility of the auto-test system,proved that it can greatly improving the test efficiency.
Key words:auto-test system;importation of data transmission protocol;automatic generation of accompany measuring program;importation of test cases