鐵路信號計算機聯(lián)鎖系統(tǒng)的自動化測試系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種鐵路信號計算機聯(lián)鎖系統(tǒng)的自動化測試系統(tǒng),包括測試用例執(zhí)行器和測試用例生成器。測試用例執(zhí)行器至少包括腳本執(zhí)行器、上位機模擬器和輸入輸出板模擬器。腳本執(zhí)行器用于讀入、解析和執(zhí)行測試用例腳本,上位機模擬器用于完成模擬聯(lián)鎖上位機的通信功能,輸入輸出板模擬器用于完成模擬輸入輸出板的通信功能;測試用例生成器接收測試場景腳本和實際站場數(shù)據(jù)并生成測試用例腳本。本發(fā)明能節(jié)省測試人力和時間、提高測試效率和準確率。
【專利說明】鐵路信號計算機聯(lián)鎖系統(tǒng)的自動化測試系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種鐵路信號計算機聯(lián)鎖系統(tǒng)的測試系統(tǒng),特別是涉及一種鐵路信號計算機聯(lián)鎖系統(tǒng)的自動化測試系統(tǒng)。
【背景技術(shù)】
[0002]鐵路信號計算機聯(lián)鎖系統(tǒng)是一種為了保證鐵路行車安全的設(shè)備,它可以接受調(diào)度人員的操作命令,并結(jié)合采集的各種設(shè)備狀態(tài)信息進行復雜的邏輯運算后,控制鐵路信號機的燈光顯示和道岔設(shè)備的動作。
[0003]鐵路信號計算機聯(lián)鎖系統(tǒng)在研發(fā)過程中和每個實際項目使用之前都必須經(jīng)過嚴格的測試,并且每次修改軟件或配置數(shù)據(jù)后,都要重新測試一遍軟件。目前鐵路信號計算機聯(lián)鎖系統(tǒng)的測試,主要依靠工程經(jīng)驗豐富的測試人員手工測試,由于采用測試人員的手工測試,使得現(xiàn)有計算機聯(lián)鎖測試過程中存在人力投入大,測試時間長,對測試人員要求高,測試過程易出錯,重復工作量大等一系列問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是提供一種鐵路信號計算機聯(lián)鎖系統(tǒng)的自動化測試系統(tǒng),能節(jié)省測試人力和時間、提高測試效率和準確率。
[0005]為解決上述技術(shù)問題,本發(fā)明提供的鐵路信號計算機聯(lián)鎖系統(tǒng)的自動化測試系統(tǒng)包括測試用例執(zhí)行器和測試用例生成器。
[0006]所述測試用例執(zhí)行器至少包括腳本執(zhí)行器、上位機模擬器和輸入輸出板模擬器。
[0007]所述腳本執(zhí)行器用于讀入、解析和執(zhí)行測試用例腳本,所述測試用例腳本用于描述聯(lián)鎖測試過程。
[0008]所述上位機模擬器用于完成模擬聯(lián)鎖上位機的通信功能,所述聯(lián)鎖上位機的通信功能包括用于接收聯(lián)鎖下位機發(fā)送的聯(lián)鎖狀態(tài)數(shù)據(jù)以及將聯(lián)鎖操作命令發(fā)送給所述聯(lián)鎖下位機。
[0009]所述輸入輸出板模擬器用于完成模擬輸入輸出板的通信功能,所述輸入輸出板的通信功能包括接收所述聯(lián)鎖下位機發(fā)送的繼電器控制命令和發(fā)送繼電器狀態(tài)數(shù)據(jù)給所述聯(lián)鎖下位機。
[0010]所述測試用例生成器接收測試場景腳本和實際站場數(shù)據(jù),根據(jù)實際站場數(shù)據(jù)中的實際使用的設(shè)備對所述測試場景腳本中的設(shè)備進行替換生成所述測試用例腳本。
[0011]進一步的改進是,所述測試場景腳本和所述測試用例腳本都采用可擴展標記語言(Extensible Markup Language, XML)格式語句描寫。
[0012]進一步的改進是,所述測試用例執(zhí)行器還包括用戶界面,所述用戶界面提供測試人員觀察測試過程中站場狀態(tài)變化的過程的功能和提供測試人員手動測試的功能。
[0013]進一步的改進是,所述測試用例執(zhí)行器還包括數(shù)據(jù)管理包,所述數(shù)據(jù)管理包用于實現(xiàn)聯(lián)鎖相關(guān)的各種數(shù)據(jù)模型,并在各種數(shù)據(jù)模型的基礎(chǔ)上提供獲取數(shù)據(jù)和設(shè)置數(shù)據(jù)的功倉泛。
[0014]進一步的改進是,所述測試用例執(zhí)行器所包含的數(shù)據(jù)來源包括:所述上位機模擬器接收到的所述聯(lián)鎖狀態(tài)數(shù)據(jù),所述輸入輸出板模擬器接收到的所述繼電器控制命令,所述腳本執(zhí)行器設(shè)置的模擬數(shù)據(jù)。
[0015]進一步的改進是,所述測試用例腳本包括如下4大類命令或語句:設(shè)置聯(lián)鎖輸入數(shù)據(jù)和上位機操作命令,比較聯(lián)鎖輸出數(shù)據(jù)和聯(lián)鎖狀態(tài)數(shù)據(jù),控制所述腳本執(zhí)行器的運行參數(shù),初始化所述聯(lián)鎖下位機命令。
[0016]本發(fā)明能夠?qū)崿F(xiàn)鐵路信號計算機聯(lián)鎖系統(tǒng)的自動化測試,能夠取得如下有益效果:
[0017]測試場景可以重復使用,能大大降低重復工作量。
[0018]節(jié)省了大量的人力和時間,并且對測試人員沒有過高的要求,提高了測試效率。
[0019]測試過程可重現(xiàn)且不易出錯,提高了測試的準確性。
[0020]測試結(jié)果易分析。
【專利附圖】
【附圖說明】
[0021]下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明:
[0022]圖1是鐵路信號計算機聯(lián)鎖系統(tǒng)的結(jié)構(gòu)示意圖;
[0023]圖2是本發(fā)明實施例的測試用例執(zhí)行器的結(jié)構(gòu)示意圖;
[0024]圖3是本發(fā)明實施例的測試用例生成器的結(jié)構(gòu)示意圖。
【具體實施方式】
[0025]本發(fā)明實施例是針對鐵路信號計算機聯(lián)鎖系統(tǒng)的結(jié)構(gòu)特點和測試工作的特點專門設(shè)計的一套綜合自動化測試系統(tǒng),如圖1所示,是鐵路信號計算機聯(lián)鎖系統(tǒng)的結(jié)構(gòu)示意圖;鐵路信號計算機聯(lián)鎖系統(tǒng)結(jié)構(gòu)上主要分為聯(lián)鎖上位機101,聯(lián)鎖下位機102,輸入輸出板103,繼電器電路104。
[0026]聯(lián)鎖上位機101負責接收操作人員的操作命令,并把命令下發(fā)給聯(lián)鎖下位機102,同時接收聯(lián)鎖下位機102發(fā)送的各種狀態(tài)數(shù)據(jù)并顯示給操作人員。聯(lián)鎖上位機101與聯(lián)鎖下位機102通過以太網(wǎng)通信。
[0027]聯(lián)鎖下位機102主要負責完成邏輯運算,并通過現(xiàn)場總線將控制命令發(fā)送給輸入輸出板103,或者接收輸入輸出板103發(fā)送的繼電器電路104狀態(tài)數(shù)據(jù)。
[0028]輸入輸出板103負責實際的采集和控制繼電器電路104動作。
[0029]如圖2所示,是本發(fā)明實施例的測試用例執(zhí)行器I的結(jié)構(gòu)示意圖;如圖3所示,是本發(fā)明實施例的測試用例生成器2的結(jié)構(gòu)示意圖。本發(fā)明實施例鐵路信號計算機聯(lián)鎖系統(tǒng)的自動化測試系統(tǒng)包括測試用例執(zhí)行器I和測試用例生成器2。
[0030]所述測試用例執(zhí)行器I的結(jié)構(gòu)按功能分成五個包,分別為:用戶界面3,數(shù)據(jù)管理包4,腳本執(zhí)行器5,上位機模擬器6和輸入輸出板模擬器7。
[0031]所述用戶界面3米用WPF (Windows Presentation Foundation)技術(shù)來實現(xiàn)站場圖形的顯示,顯示需要的動態(tài)數(shù)據(jù)從數(shù)據(jù)管理包4中獲取,主要提供測試人員觀察測試過程中站場狀態(tài)變化的過程的功能和測試人員手動測試的功能,并且可以選擇測試用例腳本8中的某個或者某類腳本進行測試。其中,WPF是微軟推出的用戶界面框架,屬于NETFrameW0rk3.0的一部分;它提供了統(tǒng)一的編程模型、語言和框架,真正做到了分離界面設(shè)計人員與開發(fā)人員的工作;同時它提供了全新的多媒體交互用戶圖形界面。
[0032]所述數(shù)據(jù)管理包4作為整個測試用例執(zhí)行器的核心,主要實現(xiàn)了聯(lián)鎖相關(guān)的各種數(shù)據(jù)模型,并在此基礎(chǔ)上提供獲取數(shù)據(jù)和設(shè)置數(shù)據(jù)的功能。數(shù)據(jù)管理包4中所包含的數(shù)據(jù)主要來自上位機模擬器6接收到的聯(lián)鎖狀態(tài)數(shù)據(jù)和輸入輸出板模擬器7接收到的聯(lián)鎖下位機102輸出的繼電器控制命令,以及腳本執(zhí)行器5設(shè)置的各種模擬數(shù)據(jù)。數(shù)據(jù)管理包4同時為其它四個包提供所需數(shù)據(jù)。
[0033]所述腳本執(zhí)行器5用于讀入、解析和執(zhí)行測試用例腳本8即負責加載和運行腳本,所述測試用例腳本8用于描述聯(lián)鎖測試過程。所述測試用例腳本8包括如下4大類命令或語句:設(shè)置聯(lián)鎖輸入數(shù)據(jù)和上位機操作命令,比較聯(lián)鎖輸出數(shù)據(jù)和聯(lián)鎖狀態(tài)數(shù)據(jù),控制所述腳本執(zhí)行器5的運行參數(shù),初始化所述聯(lián)鎖下位機102命令。
[0034]所述腳本執(zhí)行器5還輸出測試報告9。
[0035]所述上位機模擬器6用于完成模擬聯(lián)鎖上位機101的通信功能,所述聯(lián)鎖上位機101的通信功能包括用于接收聯(lián)鎖下位機102發(fā)送的聯(lián)鎖狀態(tài)數(shù)據(jù)以及將聯(lián)鎖操作命令發(fā)送給所述聯(lián)鎖下位機102。
[0036]所述輸入輸出板模擬器7用于完成模擬輸入輸出板103的通信功能,所述輸入輸出板103的通信功能包括接收所述聯(lián)鎖下位機102發(fā)送的繼電器控制命令和發(fā)送繼電器狀態(tài)數(shù)據(jù)給所述聯(lián)鎖下位機102。
[0037]所述測試用例生成器2負責完成測試場景腳本10到測試用例腳本8的轉(zhuǎn)換工作,所述測試用例生成器2接收測試場景腳本10和實際站場數(shù)據(jù)11,根據(jù)實際站場數(shù)據(jù)11中的實際使用的設(shè)備對所述測試場景腳本10中的設(shè)備進行替換生成所述測試用例腳本8。為簡化測試用例生成器的開發(fā)工作,測試場景腳本10和測試用例腳本8基本類似,只是在測試場景腳本10中出現(xiàn)具體的設(shè)備名稱時,只填寫設(shè)備種類名稱即可;測試用例生成器2負責根據(jù)實際的實際站場數(shù)據(jù)11將測試場景腳本10中的設(shè)備種類名稱修改為實際站場數(shù)據(jù)11中的實際使用的設(shè)備名稱即可將測試場景腳本10轉(zhuǎn)換為測試用例腳本8。
[0038]本發(fā)明實施例中,所述測試場景腳本10和所述測試用例腳本8都采用XML格式語句描寫。測試場景腳本10由工程經(jīng)驗豐富的人員手工編寫一次即可,在不同的項目中可以復用此測試場景腳本10。
[0039]本發(fā)明實施例為一種通用算法,能夠采用C#語言或者Java語言來實現(xiàn),也能采用其它編程語言來實現(xiàn)。
[0040]以上通過具體實施例對本發(fā)明進行了詳細的說明,但這些并非構(gòu)成對本發(fā)明的限制。在不脫離本發(fā)明原理的情況下,本領(lǐng)域的技術(shù)人員還可做出許多變形和改進,這些也應(yīng)視為本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種計算機聯(lián)鎖系統(tǒng)自動生成測試用例的方法,其特征在于,包括如下步驟: 步驟一、形成站場基本數(shù)據(jù),站場基本數(shù)據(jù)由多個基本數(shù)據(jù)文件組成,每一個基本數(shù)據(jù)文件對應(yīng)于一類軌旁設(shè)備的所有聯(lián)鎖邏輯相關(guān)基本數(shù)據(jù),每一個基本數(shù)據(jù)文件由多個采用XML文件描述的設(shè)備元素組成,每一設(shè)備元素對應(yīng)于一個軌旁設(shè)備的所有聯(lián)鎖邏輯相關(guān)基本數(shù)據(jù); 步驟二、形成測試模板文件,所述測試模板文件由多個測試模板集組成,每一個測試模板集對應(yīng)于一類功能相關(guān)測試集;各類功能的所述測試模板集由多個測試模板子集組成,各所述測試模板子集對應(yīng)于一類功能中各子功能的相關(guān)測試集;各所述測試模板子集由多個采用XML文件描述的測試模板元素組成,每一個測試模板元素描述了一類聯(lián)鎖邏輯的測試場景; 步驟三、根據(jù)所述站場基本數(shù)據(jù)和所述測試模板文件自動生成測試用例,包括如下分步驟: 步驟31、加載所述測試模板文件; 步驟32、依次循環(huán)所述測試模板文件并依次遍歷所述測試模板文件中的每一個測試模板元素所對應(yīng)的測試場景; 步驟33、檢測所述測試模板元素的語法格式,取值范圍,邏輯關(guān)系,確保生成的測試用例能被正確識別; 步驟34、對每一個所述測試模板元素都生成一個單獨的測試用例集文件,該測試用例集文件中包含其對 應(yīng)的所述測試模板元素的測試場景下針對同類設(shè)備的所有的測試用例;通過每一個所述測試模板元素生成所對應(yīng)的測試用例集文件的步驟包括如下的步驟35至步驟310 ; 步驟35、所述測試模板元素的屬性中的設(shè)備類型值指明了待測設(shè)備的類型,所述待測設(shè)備的類型為適合所述測試模板元素的測試場景的設(shè)備類型,通過所述測試模板元素的屬性中的設(shè)備類型值獲取所述站場基本數(shù)據(jù)中的所述待測設(shè)備的類型所對應(yīng)的所述基本數(shù)據(jù)文件; 步驟36、依次循環(huán)所述待測設(shè)備的類型所對應(yīng)的所述基本數(shù)據(jù)文件從而獲取待測設(shè)備元素,使得該基本數(shù)據(jù)文件中的每一個待測設(shè)備元素都至少包括一個測試用例覆蓋; 步驟37、為每個所述待測設(shè)備元素所對應(yīng)的待測設(shè)備生成一個原始測試用例; 步驟38、根據(jù)所述待測設(shè)備的類型所對應(yīng)的所述基本數(shù)據(jù)文件對各所述原始測試用例進行設(shè)備名的替換; 步驟39、根據(jù)所述待測設(shè)備的類型所對應(yīng)的所述基本數(shù)據(jù)文件對各所述原始測試用例進行期望狀態(tài)值的替換; 步驟310、依次循環(huán)所述待測設(shè)備的相關(guān)設(shè)備的類型所對應(yīng)的基本數(shù)據(jù)文件,重復步驟37至步驟39,使每一個所述相關(guān)設(shè)備都生成一個測試用例; 步驟311、保存生成的所有測試用例,生成運行日志。
2.如權(quán)利要求1所述的方法,其特征在于:步驟一中的所述軌旁設(shè)備的類型包括信號機、道岔或區(qū)段。
3.如權(quán)利要求1或2所述的方法,其特征在于:所述設(shè)備元素包括設(shè)備ID、待測試的設(shè)備類型、待測試的設(shè)備名、控制區(qū)域和相關(guān)設(shè)備。
4.如權(quán)利要求1所述的方法,其特征在于:各所述測試模板集所對應(yīng)的功能類型包括進路功能、道岔功能或區(qū)段功能。
5.如權(quán)利要求1或4所述的方法,其特征在于:所述測試模板元素包含:測試ID,待測試的設(shè)備類型,測試輸入值,測試步驟,待操作的相關(guān)設(shè)備,設(shè)備操作命令以及期望的返回值。
6.如權(quán)利要求1所述的方法,其特征在于:步驟38中根據(jù)所述待測設(shè)備的類型所對應(yīng)的所述基本數(shù)據(jù)文件對各所述原始測試用例進行設(shè)備名的替換的方法包括如下步驟: 若所述基本數(shù)據(jù)文件中的所述待測設(shè)備的類型和所述原始測試用例中的設(shè)備類型一致,則所述原始測試用例中所對應(yīng)的設(shè)備為所述待測試設(shè)備,則所述原始測試用例中的設(shè)備類型的值替換為所述待測設(shè)備元素的設(shè)備名稱; 若所述基本數(shù)據(jù)文件中的所述待測設(shè)備的類型和所述原始測試用例中的設(shè)備類型不一致,則所述原始測試用例中所對應(yīng)的設(shè)備為所述待測試設(shè)備的相關(guān)設(shè)備,則所述原始測試用例中的設(shè)備類型的值替換為所述基本數(shù)據(jù)文件中的相關(guān)設(shè)備元素的設(shè)備名稱。
7.如權(quán)利要求1所述的方法,其特征在于:步驟39中根據(jù)所述待測設(shè)備的類型所對應(yīng)的所述基本數(shù)據(jù)文件對各所述原始測試用例進行期望狀態(tài)值的替換的方法包括如下步驟: 若所述基本數(shù)據(jù)文件中的所述待測設(shè)備的類型和所述原始測試用例中的設(shè)備類型一致,則所述原始測試用例中所對應(yīng)的設(shè)備為所述待測試設(shè)備,則所述原始測試用例中的期望狀態(tài)值替換為所述待測設(shè)備元素的期望狀態(tài)值; 若所述基本數(shù)據(jù)文件中的所述待測設(shè)備的類型和所述原始測試用例中的設(shè)備類型不一致,則所述原始 測試用例中所對應(yīng)的設(shè)備為所述待測試設(shè)備的相關(guān)設(shè)備,則所述原始測試用例中的期望狀態(tài)值替換為所述基本數(shù)據(jù)文件中的相關(guān)設(shè)備元素的期望狀態(tài)值。
【文檔編號】G05B23/02GK103885439SQ201410108026
【公開日】2014年6月25日 申請日期:2014年3月21日 優(yōu)先權(quán)日:2014年3月21日
【發(fā)明者】陳云, 閆坤 申請人:上海富欣智能交通控制有限公司