袁榆淞,饒 暢,張亞東,郭 進(jìn)
(1.西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都611756;2.重慶交通大學(xué) 交通運(yùn)輸學(xué)院,重慶400074)
CTCS-2級(jí)列車運(yùn)行控制(簡(jiǎn)稱:列控)系統(tǒng)是基于軌道電路和點(diǎn)式應(yīng)答器傳輸行車許可的安全苛求系統(tǒng)[1]。車載設(shè)備作為列控系統(tǒng)安全完整性4級(jí)(SIL-4,Safety Integrity Level-4)安全關(guān)鍵設(shè)備,在投入使用前必須進(jìn)行一系列嚴(yán)格的測(cè)試,以確保其質(zhì)量特性滿足高可靠性、高安全性、高穩(wěn)定性等標(biāo)準(zhǔn)的要求。
車載設(shè)備功能復(fù)雜,通常采用測(cè)試案例集的方式進(jìn)行完備性測(cè)試。由于測(cè)試案例集的規(guī)模往往較為龐大,為提高測(cè)試效率,通常將測(cè)試案例按照一定方法和原則串接成若干測(cè)試序列,用于指導(dǎo)實(shí)施測(cè)試。其中,列控系統(tǒng)的測(cè)試過程通??煞譃閷?shí)驗(yàn)室仿真測(cè)試、現(xiàn)場(chǎng)測(cè)試、聯(lián)調(diào)聯(lián)試、互聯(lián)互通測(cè)試等階段[2],現(xiàn)有工具生成的測(cè)試序列主要用于列控系統(tǒng)的仿真測(cè)試階段[3-6]。
不同于仿真測(cè)試,現(xiàn)場(chǎng)測(cè)試序列運(yùn)用在現(xiàn)場(chǎng)實(shí)際環(huán)境中,在測(cè)試時(shí)不僅要考慮測(cè)試案例之間的狀態(tài)有序銜接,還要考慮執(zhí)行測(cè)試案例的實(shí)際線路條件約束。目前,現(xiàn)場(chǎng)測(cè)試序列的生成主要由測(cè)試人員根據(jù)經(jīng)驗(yàn)進(jìn)行人工編制,這種方式易出現(xiàn)測(cè)試案例串接不合理的情況,進(jìn)而影響測(cè)試效率。
針對(duì)上述問題,本文開發(fā)了一種現(xiàn)場(chǎng)測(cè)試序列輔助生成工具——CTCS-2級(jí)列控車載設(shè)備現(xiàn)場(chǎng)測(cè)試序列輔助生成工具(簡(jiǎn)稱:輔助生成工具),綜合考慮測(cè)試案例的狀態(tài)銜接和執(zhí)行測(cè)試案例的實(shí)際線路條件,計(jì)算各測(cè)試案例的執(zhí)行距離,并通過圖形界面直觀反映各個(gè)測(cè)試案例在實(shí)際線路中的執(zhí)行點(diǎn)位置,可提高測(cè)試序列的生成效率和質(zhì)量。
每一條測(cè)試序列可形成一個(gè)完整的測(cè)試場(chǎng)景,其設(shè)計(jì)遵循如下原則[7-8]。
原則1:一條測(cè)試序列應(yīng)至少包含一條測(cè)試案例。
原則2:測(cè)試序列需覆蓋所有待測(cè)的測(cè)試案例,同時(shí),盡可能地減少重復(fù)案例的使用。
原則3:測(cè)試序列中前一測(cè)試案例的結(jié)束狀態(tài)應(yīng)與后一測(cè)試案例的起始狀態(tài)相匹配,保持狀態(tài)的連續(xù)性。
現(xiàn)場(chǎng)測(cè)試序列的串接不僅需要滿足上述基本原則,而且需要進(jìn)一步考慮現(xiàn)場(chǎng)線路條件的約束,故串接原則可作如下補(bǔ)充。
原則4:測(cè)試序列中每一條測(cè)試案例的執(zhí)行必須與列車當(dāng)前所處測(cè)試環(huán)境相符合。
原則5:測(cè)試案例應(yīng)盡可能地在待測(cè)線路上緊密布置,以減少列車的空跑距離。
現(xiàn)階段,現(xiàn)場(chǎng)測(cè)試序列的設(shè)計(jì)通常采用人工編制的方法,存在如下問題。
(1)測(cè)試線路基礎(chǔ)數(shù)據(jù)種類繁多且數(shù)據(jù)量大,采用廠家提供的工程線路數(shù)據(jù)表,以人工方式繪制線路數(shù)據(jù)圖。這種方式需要整理的信息量較多、步驟煩瑣且容易出錯(cuò)。
(2)測(cè)試案例集通常規(guī)模較大,依靠人工方式篩選符合上述串接原則3和原則4的測(cè)試案例,容易出現(xiàn)測(cè)試案例串接不合理的情況,導(dǎo)致測(cè)試序列無法執(zhí)行。
(3)測(cè)試人員需要預(yù)估測(cè)試案例的執(zhí)行距離,以確定測(cè)試案例在實(shí)際線路的測(cè)試位置,但測(cè)試案例執(zhí)行距離的估算目前仍是現(xiàn)場(chǎng)測(cè)試的一項(xiàng)技術(shù)難題。有的測(cè)試案例對(duì)測(cè)試地點(diǎn)無特殊要求(不涉及分相區(qū)、等級(jí)轉(zhuǎn)換點(diǎn)),現(xiàn)有方法往往采取固定長(zhǎng)度對(duì)測(cè)試區(qū)段進(jìn)行劃分[9-10],這種方法存在較大的估計(jì)偏差,易導(dǎo)致測(cè)試案例的執(zhí)行區(qū)段發(fā)生重疊干擾,或出現(xiàn)列車大量空跑現(xiàn)象,影響測(cè)試效率。
(4)容易出現(xiàn)漏測(cè)或者大量重復(fù)測(cè)試的情況,增加了不必要的測(cè)試開銷。
(5)測(cè)試序列數(shù)據(jù)往往采用各類文字處理軟件進(jìn)行人工編輯和管理,當(dāng)測(cè)試案例存在變更時(shí),需要逐個(gè)查找和修改涉及該案例的測(cè)試序列文檔,增加了序列的維護(hù)成本。
針對(duì)測(cè)試人員在進(jìn)行人工編制現(xiàn)場(chǎng)測(cè)試序列中所遇到的實(shí)際問題,現(xiàn)場(chǎng)測(cè)試序列輔助生成工具需滿足以下要求。
(1)友好的人機(jī)交互界面。測(cè)試人員能便捷地利用工具對(duì)測(cè)試案例、測(cè)試序列進(jìn)行檢索與查看,并能根據(jù)實(shí)際需求篩選相關(guān)信息。人機(jī)交互界面還支持測(cè)試線路的可視化展示,包括各個(gè)信號(hào)點(diǎn)、特殊區(qū)段的具體位置,線路速度、線路坡度的具體信息,便于測(cè)試人員根據(jù)實(shí)際線路條件在工程線路上鋪設(shè)測(cè)試案例。
(2)測(cè)試案例的自動(dòng)篩選。在進(jìn)行測(cè)試序列的設(shè)計(jì)過程中,輔助生成工具能自動(dòng)篩選出符合串接條件的測(cè)試案例,同時(shí)能根據(jù)測(cè)試案例執(zhí)行要求及測(cè)試案例之間的相關(guān)性,進(jìn)行合理性檢驗(yàn),提高測(cè)試序列的有效性。
(3)測(cè)試案例執(zhí)行距離的自動(dòng)計(jì)算。輔助生成工具能根據(jù)所選測(cè)試案例的具體信息,結(jié)合當(dāng)前所布置測(cè)試案例的實(shí)際位置,計(jì)算列車執(zhí)行完該測(cè)試案例的走行距離,預(yù)估測(cè)試案例的執(zhí)行范圍,并在人機(jī)交互界面上實(shí)現(xiàn)可視化展示。
(4)測(cè)試案例覆蓋率統(tǒng)計(jì)。輔助生成工具能實(shí)時(shí)反映待測(cè)測(cè)試案例的使用情況,避免出現(xiàn)漏測(cè)或大量重復(fù)測(cè)試的情況。
(5)測(cè)試序列的高效管理。輔助生成工具能根據(jù)實(shí)際需求對(duì)測(cè)試序列執(zhí)行讀取、圖形化預(yù)覽、編輯、存儲(chǔ)等操作,并能提供測(cè)試序列文檔的一鍵導(dǎo)出功能,減少人工方式編輯的煩瑣性。
結(jié)合當(dāng)前現(xiàn)場(chǎng)測(cè)試序列設(shè)計(jì)存在的問題,本文以線路數(shù)據(jù)的可視化、測(cè)試案例自動(dòng)篩選、測(cè)試案例執(zhí)行距離的自動(dòng)計(jì)算、測(cè)試案例覆蓋率統(tǒng)計(jì)、測(cè)試序列高效管理等核心功能開發(fā)為輔助生成工具的實(shí)現(xiàn)目標(biāo),對(duì)上述輔助生成工具功能需求進(jìn)行全覆蓋,從而使用輔助生成工具代替?zhèn)鹘y(tǒng)人工編制測(cè)試序列的方式,最大程度地減少人工編制測(cè)試序列的工作量,提高現(xiàn)場(chǎng)測(cè)試序列編制的效率與質(zhì)量。
測(cè)試序列輔助生成工具以測(cè)試案例集、列控工程數(shù)據(jù)表和車輛參數(shù)配置文件作為輸入,現(xiàn)場(chǎng)測(cè)試序列文檔作為輸出,總體架構(gòu)如圖1所示。
圖1 測(cè)試序列輔助生成工具總體架構(gòu)
輔助生成工具主要?jiǎng)澐譃?個(gè)模塊:列控基礎(chǔ)數(shù)據(jù)管理模塊、圖形界面繪制模塊、測(cè)試案例數(shù)據(jù)管理模塊、測(cè)試案例執(zhí)行距離計(jì)算模塊、測(cè)試序列生成模塊和測(cè)試序列數(shù)據(jù)管理模塊。各模塊總體功能如下。
(1)列控基礎(chǔ)數(shù)據(jù)管理模塊:讀取來自列控工程數(shù)據(jù)表的線路數(shù)據(jù)及被測(cè)車輛的參數(shù)配置文件后,將數(shù)據(jù)提供給圖形界面繪制模塊、測(cè)試案例執(zhí)行距離計(jì)算模塊和測(cè)試序列生成模塊使用。
(2)圖形界面繪制模塊:對(duì)線路數(shù)據(jù)、現(xiàn)場(chǎng)測(cè)試案例和測(cè)試序列等實(shí)現(xiàn)可視化展示。
(3)測(cè)試案例數(shù)據(jù)管理模塊:通過讀取數(shù)據(jù)庫(kù)里的測(cè)試案例并整理后,將案例信息傳遞給測(cè)試案例執(zhí)行距離計(jì)算模塊和測(cè)試序列生成模塊供后續(xù)調(diào)用。
(4)測(cè)試案例執(zhí)行距離計(jì)算模塊:對(duì)接收的數(shù)據(jù)按照內(nèi)嵌算法進(jìn)行執(zhí)行距離的計(jì)算,并將計(jì)算結(jié)果傳遞給測(cè)試序列生成模塊。
(5)測(cè)試序列生成模塊:完成測(cè)試序列的生成功能,將生成的測(cè)試序列傳遞給測(cè)試序列管理模塊進(jìn)行統(tǒng)一管理。
(6)測(cè)試序列管理模塊:對(duì)測(cè)試序列進(jìn)行存儲(chǔ),同時(shí),導(dǎo)出測(cè)試序列文檔供測(cè)試人員現(xiàn)場(chǎng)測(cè)試使用。
測(cè)試序列輔助生成工具將6個(gè)功能模塊細(xì)分為若干子功能,如圖2所示。
圖2 測(cè)試序列輔助生成工具功能結(jié)構(gòu)
原始的線路工程數(shù)據(jù)大多數(shù)采用Excel數(shù)據(jù)表的格式進(jìn)行存儲(chǔ),故輔助生成工具需要支持Excel文件的讀入。其中,所需的列控工程數(shù)據(jù)以相關(guān)技術(shù)規(guī)范作為編制依據(jù)[11-12],主要包括信號(hào)數(shù)據(jù)表、線路坡度表、線路速度表、分相區(qū)信息表、應(yīng)答器位置表等列控工程數(shù)據(jù)表。讀取的信號(hào)數(shù)據(jù)表主要涵蓋信號(hào)點(diǎn)數(shù)據(jù)與軌道區(qū)段數(shù)據(jù)。本文以某高速鐵路下行線正向信號(hào)為例,展示部分?jǐn)?shù)據(jù)內(nèi)容,如表1所示。
表1 某高速鐵路下行線正向信號(hào)數(shù)據(jù)(部分)
本文利用Java POI對(duì)Excel文件讀取的穩(wěn)定性與快速性,實(shí)現(xiàn)對(duì)上述列控工程數(shù)據(jù)表及相關(guān)試驗(yàn)列車車輛參數(shù)的讀取工作,并根據(jù)測(cè)試人員的需求對(duì)具體線路條件與車輛參數(shù)進(jìn)行檢索查詢。其中,列控工程數(shù)據(jù)表的導(dǎo)入流程如圖3所示。
圖3 列控工程數(shù)據(jù)表導(dǎo)入流程
輔助生成工具采用JavaFX關(guān)鍵技術(shù)對(duì)信號(hào)機(jī)、信號(hào)牌、軌道區(qū)段、應(yīng)答器等圖元進(jìn)行可視化設(shè)計(jì),并將讀取的線路數(shù)據(jù)中具體信號(hào)點(diǎn)所在的里程坐標(biāo)按比例映射于圖形顯示界面,實(shí)現(xiàn)對(duì)列控工程數(shù)據(jù)的圖形繪制,同時(shí),測(cè)試序列生成后在圖形界面上顯示各個(gè)測(cè)試案例的執(zhí)行范圍。下行線的部分顯示界面如圖4所示,其中,綠色部分表示當(dāng)前軌道區(qū)段放置有測(cè)試案例,對(duì)應(yīng)的實(shí)際里程長(zhǎng)度即為測(cè)試案例的執(zhí)行距離。
圖4 下行線部分圖形界面顯示
測(cè)試案例是對(duì)被測(cè)設(shè)備某一功能特征進(jìn)行針對(duì)性測(cè)試的指導(dǎo)文件,具有統(tǒng)一規(guī)范的描述格式,其主要內(nèi)容如表2所示。
表2 測(cè)試案例的主要內(nèi)容
基于表2對(duì)測(cè)試案例主要內(nèi)容的分類情況,對(duì)測(cè)試案例進(jìn)行分解,建立相應(yīng)的數(shù)據(jù)表存儲(chǔ)于MySQL數(shù)據(jù)庫(kù),并使用JDBC(Java Database Connectivity)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問。通過選擇測(cè)試案例編號(hào)對(duì)目標(biāo)案例執(zhí)行檢索、查詢等操作,同時(shí)可預(yù)覽該測(cè)試案例的具體信息,并在進(jìn)行序列串接工作時(shí)實(shí)現(xiàn)對(duì)測(cè)試案例覆蓋度實(shí)時(shí)更新的統(tǒng)計(jì)功能,其中,測(cè)試案例檢索流程如圖5所示。
圖5 測(cè)試案例檢索流程
在構(gòu)建查詢器流程中,輔助生成工具通過SQL語句查詢測(cè)試人員想要預(yù)覽的具體信息,例如,測(cè)試人員想要查看某測(cè)試案例的具體執(zhí)行流程,程序?qū)?通 過 語 句selset*from tc_execution_step where tc_id=?,調(diào)取表格tc_execution_step(測(cè)試案例執(zhí)行步驟表)中指定編號(hào)的測(cè)試案例具體內(nèi)容,并在系統(tǒng)界面的對(duì)應(yīng)表格中顯示查詢結(jié)果。
現(xiàn)場(chǎng)測(cè)試案例通常具備一定的執(zhí)行距離,執(zhí)行距離預(yù)估的準(zhǔn)確性將影響生成的測(cè)試序列對(duì)于原則4和原則5的吻合程度。為使預(yù)估的測(cè)試案例執(zhí)行距離逼近于實(shí)際執(zhí)行距離,本文通過分析測(cè)試案例的執(zhí)行步驟,發(fā)現(xiàn)列車在測(cè)試過程中始終在牽引狀態(tài)、惰行狀態(tài)、巡航狀態(tài)、常用制動(dòng)狀態(tài)、緊急制動(dòng)狀態(tài)及停車狀態(tài)之間不斷變化,故提取列車在執(zhí)行測(cè)試步驟過程中的運(yùn)行狀態(tài)變化路徑,例如某測(cè)試案例的運(yùn)行狀態(tài)路徑可表示為:牽引—惰行—緊急制動(dòng)—停車—牽引—巡航,結(jié)合被測(cè)列車的車輛參數(shù)及實(shí)際線路條件,基于典型的單質(zhì)點(diǎn)模型對(duì)列車作受力分析,利用列車動(dòng)力學(xué)公式計(jì)算列車在執(zhí)行測(cè)試步驟過程中的速度變化和運(yùn)行距離,能有效提升對(duì)于測(cè)試案例執(zhí)行距離的估算精度。其中,測(cè)試案例執(zhí)行距離計(jì)算流程如圖6所示。
圖6 測(cè)試案例執(zhí)行距離計(jì)算流程
測(cè)試序列生成功能模塊輔助測(cè)試人員完成測(cè)試序列的編制工作,同時(shí)完成測(cè)試序列的合理性校驗(yàn)。在測(cè)試人員為測(cè)試線路分配測(cè)試案例的過程中,辨識(shí)測(cè)試案例的屬性特征,并結(jié)合案例執(zhí)行所需滿足的測(cè)試環(huán)境的線路特征,例如,執(zhí)行位置約束(站內(nèi)或區(qū)間)、是否需要應(yīng)答器發(fā)送報(bào)文、特殊區(qū)段約束等,自動(dòng)篩選出滿足上述現(xiàn)場(chǎng)測(cè)試序列設(shè)計(jì)原則3和原則4的測(cè)試案例集供測(cè)試人員選擇,從而提高測(cè)試序列的生成效率。其中,測(cè)試序列的生成流程如圖7所示。
圖7 測(cè)試序列生成流程
編制好測(cè)試序列后,測(cè)試序列數(shù)據(jù)管理功能模塊可以對(duì)測(cè)試序列進(jìn)行保存、查看、編輯、刪除等操作,其中,每條測(cè)試序列中所包含的每個(gè)測(cè)試案例具有在實(shí)際線路上的里程位置和執(zhí)行距離。同時(shí),測(cè)試序列數(shù)據(jù)管理功能模塊可以以Word文件形式進(jìn)行導(dǎo)出,便于測(cè)試人員將其作為現(xiàn)場(chǎng)測(cè)試的指導(dǎo)依據(jù)。
輔助生成工具利用Intellij IDEA 2019集成開發(fā)環(huán)境進(jìn)行開發(fā),采用Java編程語言,其主界面如圖8所示。界面共分為4個(gè)顯示區(qū),具體分區(qū)信息如表3所示。
表3 主界面分區(qū)信息表
圖8 輔助生成工具主界面區(qū)域劃分
利用本文工具串接測(cè)試序列的具體步驟如下。
步驟1:測(cè)試人員點(diǎn)擊“加載測(cè)試案例”,從數(shù)據(jù)庫(kù)中導(dǎo)入測(cè)試案例集,并根據(jù)實(shí)際需求確定需要執(zhí)行測(cè)試的測(cè)試案例。
步驟2:測(cè)試人員點(diǎn)擊“加載測(cè)試線路”選擇被測(cè)線路,輔助生成工具自動(dòng)在主界面C區(qū)完成線路數(shù)據(jù)的圖形繪制。
步驟3:測(cè)試人員點(diǎn)擊“車輛參數(shù)配置”,選擇待測(cè)試的列車車型和具體車輛參數(shù)。
步驟4:測(cè)試人員通過點(diǎn)擊軌道區(qū)段的方式在線路上配置測(cè)試案例來生成測(cè)試序列。其中,測(cè)試案例配置信息如圖9所示,輔助生成工具將根據(jù)上述現(xiàn)場(chǎng)測(cè)試序列設(shè)計(jì)原則3和原則4篩選符合串接條件的測(cè)試案例于測(cè)試案例選擇框中供測(cè)試人員選擇,并自動(dòng)計(jì)算所選測(cè)試案例的執(zhí)行距離。
圖9 測(cè)試案例配置信息
步驟5:在測(cè)試序列串接完成后,在主界面D區(qū)中選擇“序列保存”,將測(cè)試序列上傳至數(shù)據(jù)庫(kù),至此,序列串接工作結(jié)束。測(cè)試人員可單擊A區(qū)中“管理測(cè)試序列”,對(duì)該條測(cè)試序列執(zhí)行讀取、查看、導(dǎo)出及刪除等管理操作,其中,測(cè)試序列管理界面如圖10所示。點(diǎn)擊查看按鈕后,可對(duì)選定案例的執(zhí)行步驟進(jìn)行預(yù)覽,如圖11所示。
圖10 測(cè)試序列管理界面
圖11 測(cè)試案例執(zhí)行步驟
同人工串接現(xiàn)場(chǎng)測(cè)試序列作對(duì)比,輔助生成工具完成了線路數(shù)據(jù)的圖形化繪制、自動(dòng)篩選符合串接條件的測(cè)試案例、測(cè)試案例執(zhí)行距離的自動(dòng)計(jì)算及測(cè)試案例覆蓋度統(tǒng)計(jì)等功能,顯著減少了人工開銷,并縮短了測(cè)試序列的生成周期,提高了序列質(zhì)量和有效性,同時(shí),當(dāng)測(cè)試案例內(nèi)容出現(xiàn)變更時(shí)(不影響串接順序),只需要修改數(shù)據(jù)庫(kù)中對(duì)應(yīng)測(cè)試案例內(nèi)容,測(cè)試序列將實(shí)現(xiàn)自動(dòng)更新,進(jìn)而減少了測(cè)試序列的維護(hù)成本。
本文針對(duì)當(dāng)前人工編制現(xiàn)場(chǎng)測(cè)試序列存在的問題,開發(fā)了具有良好人機(jī)交互界面的現(xiàn)場(chǎng)測(cè)試序列輔助生成工具。該輔助生成工具實(shí)現(xiàn)了列控基礎(chǔ)數(shù)據(jù)管理、圖形界面繪制、測(cè)試案例數(shù)據(jù)管理、測(cè)試案例執(zhí)行距離自動(dòng)計(jì)算、測(cè)試序列輔助生成等功能,操作簡(jiǎn)單且使用方便,不僅提高了測(cè)試序列的生成效率,而且進(jìn)一步提升了測(cè)試序列的質(zhì)量。今后可以采用相關(guān)優(yōu)化理論和算法,實(shí)現(xiàn)測(cè)試序列的一鍵高效生成,最大限度地降低測(cè)試序列編制的工作量,提高測(cè)試序列生成的自動(dòng)化水平。