黃曉帆,歐陽(yáng)敏
(卡斯柯信號(hào)有限公司 測(cè)試部,上海 200071)
城市軌道交通信號(hào)系統(tǒng)主要包括車載控制器(CC,Carbone Controller)、區(qū)域控制器(ZC,Zone Controller)、線路控制器(LC, Line Controller)、計(jì)算機(jī)聯(lián)鎖(CI, Computer Interlocking)系統(tǒng)和自動(dòng)列車監(jiān)控(ATS,Automatic Train Supervision)系統(tǒng)。其中,ATS系統(tǒng)主要提供列車運(yùn)行監(jiān)督和控制的自動(dòng)化行車調(diào)度指揮功能[1-3]。隨著城市軌道交通建設(shè)的不斷發(fā)展,地鐵運(yùn)營(yíng)自動(dòng)化程度不斷提高,地鐵列車運(yùn)營(yíng)管理日趨復(fù)雜,原先由司機(jī)執(zhí)行的許多工作轉(zhuǎn)變?yōu)橛勺詣?dòng)化系統(tǒng)和中心調(diào)度員聯(lián)合完成,ATS系統(tǒng)涉及的運(yùn)營(yíng)場(chǎng)景更加復(fù)雜[4]。為此,對(duì)ATS軟件的測(cè)試要求更高,有必要研究和開(kāi)發(fā)ATS軟件的自動(dòng)化測(cè)試系統(tǒng),實(shí)現(xiàn)對(duì)多場(chǎng)景、多功能的測(cè)試覆蓋,支持迭代開(kāi)發(fā)的自動(dòng)化回歸測(cè)試,有效發(fā)現(xiàn)軟件中存在的缺陷,降低測(cè)試人員工作強(qiáng)度。
常見(jiàn)的軟件動(dòng)態(tài)測(cè)試方法分為2類:白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試,需要了解程序內(nèi)部結(jié)構(gòu),據(jù)此設(shè)計(jì)測(cè)試用例[5]。黑盒測(cè)試又稱為功能測(cè)試,測(cè)試人員無(wú)需了解程序內(nèi)部結(jié)構(gòu),重點(diǎn)關(guān)注系統(tǒng)功能是否滿足用戶要求。目前,雖有不少成熟的商用自動(dòng)化測(cè)試工具,如LR(LoadRunner)和QTP(QuickTest Professional)等,但這些工具不滿足實(shí)時(shí)性要求,且不支持專用協(xié)議,多適用于單一類型測(cè)試等[6-7],不適用于具有復(fù)雜專用接口和業(yè)務(wù)流程的軌道交通信號(hào)系統(tǒng)的測(cè)試。
在分析ATS系統(tǒng)相關(guān)接口、系統(tǒng)構(gòu)成和主要功能的基礎(chǔ)上,提出ATS軟件自動(dòng)化測(cè)試系統(tǒng)(簡(jiǎn)稱:測(cè)試系統(tǒng))方案,利用虛擬機(jī)技術(shù)搭建了ATS系統(tǒng)模擬測(cè)試環(huán)境,設(shè)計(jì)基于場(chǎng)景模擬的測(cè)試用例,驗(yàn)證ATS組合功能的正確性,以快速交付可靠的ATS軟件產(chǎn)品。
ATS系統(tǒng)自身功能的實(shí)現(xiàn)建立在通過(guò)接口與相關(guān)系統(tǒng)進(jìn)行通信和信息交互的基礎(chǔ)上,其接口包括2類:
(1)與信號(hào)系統(tǒng)內(nèi)部的其它子系統(tǒng)的接口,包括 CI、CC、ZC、LC;
(2)與信號(hào)系統(tǒng)之外的其它系統(tǒng)的接口,包括綜合監(jiān)控系統(tǒng)(ISCS,Integrated Supervisory Control System)、時(shí)鐘系統(tǒng)(CLOCK,Clock System)、旅客信息系統(tǒng)(PIS,Passenger Information Service System)、廣播系統(tǒng)(PA, Public Address System)、牽引供電系統(tǒng)(SCADA, Supervisory Control and Data Acquisition System)、 發(fā)車表示器(TDT,Train Depart Timer)等。
ATS系統(tǒng)主要由工作站、應(yīng)用服務(wù)器、通信前置機(jī)、網(wǎng)關(guān)服務(wù)器、車站服務(wù)器、在線時(shí)刻表等組成。
工作站通常設(shè)置2個(gè)或3個(gè)屏幕的窗口,其中,1個(gè)為運(yùn)行圖顯示窗口,主要用于顯示計(jì)劃運(yùn)行圖,提供運(yùn)行圖修改、打印等操作界面;另外1個(gè)或2個(gè)為站場(chǎng)圖顯示窗口,主要用于顯示站場(chǎng)設(shè)備狀態(tài)、時(shí)間、報(bào)警,提供權(quán)限管理、列車運(yùn)行控制、車輛管理、報(bào)警管理、報(bào)表等操作的人機(jī)交互界面[8]。
應(yīng)用服務(wù)器作為ATS系統(tǒng)的數(shù)據(jù)處理中樞,向工作站發(fā)送站場(chǎng)圖顯示數(shù)據(jù)、告警、列車狀態(tài)信息,處理調(diào)度人員、維護(hù)人員、派班人員的各種操作請(qǐng)求,并將請(qǐng)求發(fā)送給相關(guān)系統(tǒng)執(zhí)行;保存系統(tǒng)日常運(yùn)行的各種數(shù)據(jù),提供事后分析和回放。
通信前置機(jī)負(fù)責(zé)ATS系統(tǒng)與信號(hào)系統(tǒng)之外其它系統(tǒng)的通信;根據(jù)項(xiàng)目的不同要求,實(shí)現(xiàn)ATS與PIS、ISCS、PA、CLOCK等的接口,以及與其它線路的接口[9]。
網(wǎng)關(guān)服務(wù)器為ATS系統(tǒng)的關(guān)鍵核心模塊,負(fù)責(zé)與ATC接口,完成與CC、ZC和LC子系統(tǒng)通信,提供會(huì)話管理、臨時(shí)限速管理、計(jì)軸有效性確認(rèn)、列車控制命令管理、列車告警管理、列車連掛管理等。
車站服務(wù)器為ATS系統(tǒng)的集中站數(shù)據(jù)處理中樞,完成與CI和TDT系統(tǒng)的通信,本集中站內(nèi)列車追蹤和計(jì)劃調(diào)整;自動(dòng)辦理進(jìn)路。若ATS接入車輛段,還可提供自動(dòng)洗車和自動(dòng)出入庫(kù)控制功能。
在線時(shí)刻表主要用于日常運(yùn)營(yíng)過(guò)程中當(dāng)天計(jì)劃圖、當(dāng)天實(shí)際圖、歷史計(jì)劃圖、基本計(jì)劃圖、預(yù)測(cè)計(jì)劃圖的顯示,提供增加列車、刪除列車、變更列車運(yùn)行車次等時(shí)刻表在線調(diào)整的操作界面。
場(chǎng)景是指由事件觸發(fā)形成相應(yīng)的流程,進(jìn)而形成一系列事件的結(jié)果,通常用于描述軟件使用過(guò)程中的基本流程和功能需求?;趫?chǎng)景的測(cè)試方法從最終用戶的角度來(lái)測(cè)試軟件是否滿足用戶需求,針對(duì)軟件中所有可能出現(xiàn)的業(yè)務(wù)流程,重點(diǎn)關(guān)注測(cè)試場(chǎng)景中各個(gè)功能項(xiàng)是否能夠滿足需求且正確執(zhí)行。
在軌道交通信號(hào)領(lǐng)域,相對(duì)于CI、CC、ZC、LC,ATS系統(tǒng)直接面向地鐵運(yùn)營(yíng)管理人員。面對(duì)日益復(fù)雜的運(yùn)營(yíng)場(chǎng)景,用戶需求變化更為頻繁。ATS系統(tǒng)的軟件測(cè)試不僅要求驗(yàn)證ATS軟件單個(gè)功能項(xiàng)的正確性,還需要考慮地鐵運(yùn)營(yíng)場(chǎng)景和用戶使用習(xí)慣,驗(yàn)證ATS軟件多個(gè)功能項(xiàng)組合的正確性,對(duì)測(cè)試資源和效率的要求更高,亟需借助自動(dòng)化測(cè)試代替部分手工測(cè)試,以提高測(cè)試效率。
如圖1所示,基于場(chǎng)景模擬的ATS軟件自動(dòng)化測(cè)試系統(tǒng)由被測(cè)對(duì)象服務(wù)器、模擬集成服務(wù)器、測(cè)試管理服務(wù)器3臺(tái)服務(wù)器組成。
被測(cè)對(duì)象服務(wù)器上運(yùn)行被測(cè)試的ATS系統(tǒng)的軟件,即需要被驗(yàn)證的軟件。模擬集成服務(wù)器運(yùn)行除ATS系統(tǒng)之外的其它仿真軟件,提供ATS軟件模擬運(yùn)行所需的外部接口條件。測(cè)試管理服務(wù)器主要完成測(cè)試場(chǎng)景的編輯,啟動(dòng)測(cè)試流程,調(diào)用被測(cè)對(duì)象服務(wù)器和模擬集成服務(wù)器執(zhí)行和終止測(cè)試,自動(dòng)生成測(cè)試報(bào)告。
被測(cè)對(duì)象服務(wù)器采用虛擬機(jī)技術(shù),提供運(yùn)行被驗(yàn)證的ATS軟件所需的操作系統(tǒng)(Windows server 2012、Windows 10或Redhat Linux7.2)環(huán)境,以模擬運(yùn)行ATS工作站、在線時(shí)刻表、應(yīng)用服務(wù)器、車站服務(wù)器、通信前置機(jī)和網(wǎng)關(guān)服務(wù)器等ATS軟件,測(cè)試應(yīng)覆蓋ATS系統(tǒng)所有操作,包括運(yùn)行圖編輯下發(fā)、站場(chǎng)控制、用戶管理、列車運(yùn)行控制、臨時(shí)限速管理、自動(dòng)排路、人工排路等[10]。
模擬集成服務(wù)器運(yùn)行模擬ATS系統(tǒng)外部環(huán)境的仿真程序,包括與信號(hào)系統(tǒng)內(nèi)部其它子系統(tǒng)或設(shè)備(CI系統(tǒng)、CC、ZC、LC)接口的仿真程序,以及與信號(hào)系統(tǒng)之外的其它系統(tǒng)(SCADA、ISCS、CLOCK、PIS、PA)接口的仿真程序。對(duì)ATS系統(tǒng)外部環(huán)境的模擬并不模擬相關(guān)子系統(tǒng)或設(shè)備/系統(tǒng)功能,僅按照ATS系統(tǒng)與這些子系統(tǒng)或設(shè)備/系統(tǒng)的接口協(xié)議中規(guī)定的消息格式和內(nèi)容,實(shí)時(shí)地向被測(cè)試的ATS系統(tǒng)發(fā)送消息,為被測(cè)試的ATS系統(tǒng)提供與真實(shí)的列車運(yùn)行環(huán)境一致的運(yùn)行條件。例如,可使列車按照CI模擬產(chǎn)生的信號(hào)開(kāi)放信息,沿著進(jìn)路鎖閉方向前行,自動(dòng)產(chǎn)生符合信號(hào)規(guī)則的紅光帶移動(dòng)信息,按照指定的速度運(yùn)行,以支持ATS軟件的測(cè)試。
除了可模擬真實(shí)的列車運(yùn)行環(huán)境,測(cè)試系統(tǒng)還支持2類故障注入:(1)信號(hào)設(shè)備故障,包括道岔失表、燈絲斷絲、區(qū)間紅光帶;(2)信號(hào)系統(tǒng)各個(gè)子系統(tǒng)或設(shè)備間的通信異常,包括時(shí)序錯(cuò)誤和通信內(nèi)容錯(cuò)誤。
測(cè)試管理服務(wù)器運(yùn)行測(cè)試系統(tǒng)自身的軟件,用于控制測(cè)試過(guò)程,實(shí)施測(cè)試管理,主要包括測(cè)試流程編輯、測(cè)試場(chǎng)景編輯、測(cè)試日志分析、測(cè)試報(bào)告自動(dòng)生成4個(gè)模塊。
2.4.1 測(cè)試流程編輯模塊
該模塊主要用于定義自動(dòng)化測(cè)試的基本流程,如圖2所示,同時(shí)存儲(chǔ)測(cè)試所需要的軟件、配置數(shù)據(jù)以及測(cè)試使用的工具(測(cè)試環(huán)境自動(dòng)部署工具、通信信息網(wǎng)絡(luò)封包分析工具等)。
當(dāng)該模塊收到測(cè)試場(chǎng)景編輯模塊發(fā)送的測(cè)試服務(wù)請(qǐng)求之后,按照收到的軟件版本和配置數(shù)據(jù)版本,啟動(dòng)自動(dòng)部署工具,遠(yuǎn)程部署被測(cè)對(duì)象服務(wù)器上的ATS系統(tǒng)測(cè)試環(huán)境,模擬集成服務(wù)器上ATS接口系統(tǒng)的仿真環(huán)境。在測(cè)試執(zhí)行階段,該模塊調(diào)用模擬集成服務(wù)器模擬ATS系統(tǒng)外部環(huán)境,配合被測(cè)ATS系統(tǒng)軟件的測(cè)試場(chǎng)景執(zhí)行;同時(shí),該模塊記錄測(cè)試過(guò)程中ATS界面上所有的控件狀態(tài),ATS與其它子系統(tǒng)/外部系統(tǒng)的所有接口通信信息內(nèi)容,并將其存儲(chǔ)在測(cè)試日志存儲(chǔ)模塊中,供測(cè)試報(bào)告自動(dòng)生成模塊調(diào)用。
2.4.2 測(cè)試場(chǎng)景編輯模塊
該模塊主要用于測(cè)試計(jì)劃策略的編輯、查看和管理,設(shè)置被測(cè)試的軟件版本和配置數(shù)據(jù)版本,存儲(chǔ)為每個(gè)測(cè)試場(chǎng)景設(shè)計(jì)的測(cè)試用例腳本,存儲(chǔ)各個(gè)測(cè)試場(chǎng)景預(yù)期測(cè)試結(jié)果,包括控件狀態(tài)及對(duì)應(yīng)的接口通信信息。
2.4.3 測(cè)試日志存儲(chǔ)模塊
該模塊主要用于存儲(chǔ)被測(cè)對(duì)象服務(wù)器上ATS界面所有的控件狀態(tài)、ATS系統(tǒng)各軟件模塊的運(yùn)行日志、以及模擬集成服務(wù)器上運(yùn)行的ATS外部環(huán)境的模擬生成的所有接口通信信息,并根據(jù)預(yù)定義的接口通信信息解析腳本,自動(dòng)解析通信信息包中各個(gè)字段的內(nèi)容。
2.4.4 測(cè)試報(bào)告自動(dòng)生成模塊
該模塊將測(cè)試日志存儲(chǔ)模塊中存儲(chǔ)的測(cè)試執(zhí)行產(chǎn)生的接口通信信息內(nèi)容和ATS界面上的控件狀態(tài),與測(cè)試場(chǎng)景編輯模塊中的存儲(chǔ)的預(yù)期結(jié)果對(duì)應(yīng)的控件狀態(tài)和接口通信信息內(nèi)容進(jìn)行比較。如果兩者一致,則判斷本測(cè)試場(chǎng)景通過(guò)測(cè)試;如果兩者不一致,則判斷本測(cè)試場(chǎng)景未通過(guò)測(cè)試。
測(cè)試系統(tǒng)根據(jù)測(cè)試用例腳本自動(dòng)執(zhí)行測(cè)試過(guò)程,全部測(cè)試用例腳本執(zhí)行完成后,能自動(dòng)生成測(cè)試報(bào)告,可極大提高測(cè)試人員的工作效率,使測(cè)試人員將精力集中于測(cè)試場(chǎng)景的設(shè)計(jì)。
以上海地鐵1號(hào)線信號(hào)系統(tǒng)升級(jí)項(xiàng)目中ATS軟件測(cè)試為例,編輯多輛列車運(yùn)行計(jì)劃,仿真列車自動(dòng)按照計(jì)劃模擬運(yùn)行,描述其自動(dòng)化測(cè)試過(guò)程。
(1)在被測(cè)對(duì)象服務(wù)器上,存儲(chǔ)ATS軟件、網(wǎng)絡(luò)配置、數(shù)據(jù)文件;在模擬集成服務(wù)器上存放CI系統(tǒng)仿真、CC仿真、ZC仿真、LC仿真設(shè)備軟件及數(shù)據(jù)。
(2)運(yùn)行測(cè)試環(huán)境自動(dòng)部署工具,分別遠(yuǎn)程安裝被測(cè)對(duì)象服務(wù)器和模擬集成服務(wù)器上的ATS系統(tǒng)內(nèi)部測(cè)試環(huán)境和ATS系統(tǒng)外部環(huán)境。
(3)測(cè)試人員編寫(xiě)列車運(yùn)行計(jì)劃腳本,如圖3所示,測(cè)試場(chǎng)景中設(shè)置5列列車按3 min發(fā)車間隔,從轉(zhuǎn)換軌所在站臺(tái)出發(fā);命名為sched0.dat放置在測(cè)試管理服務(wù)器上。
圖3 列車運(yùn)行計(jì)劃腳本示例
(4)測(cè)試人員在測(cè)試模擬集成服務(wù)器上配置轉(zhuǎn)換軌所在站臺(tái)的位置信息:集中站號(hào)、站臺(tái)號(hào)、方向等,如圖4所示。其它配置信息,如圖5所示。
圖4 轉(zhuǎn)換軌位置信息配置示例
圖5 其它配置信息示例
(5)運(yùn)行測(cè)試用例腳本命令;當(dāng)測(cè)試系統(tǒng)時(shí)間到達(dá)列車計(jì)劃中設(shè)置的出發(fā)時(shí)間時(shí),CC模擬會(huì)依次加車到轉(zhuǎn)換軌所在站臺(tái),模擬限制人工駕駛模式(RM,Restricted Mode)駕駛列車精確??空九_(tái),接收運(yùn)行計(jì)劃后,進(jìn)入正線模擬運(yùn)行。在列車模擬運(yùn)行過(guò)程中,測(cè)試系統(tǒng)記錄并存儲(chǔ)ATS系統(tǒng)日志,如圖6所示。與預(yù)期結(jié)果進(jìn)行比較,自動(dòng)生成測(cè)試報(bào)告。
圖6 日志示例
針對(duì)上海地鐵1號(hào)線信號(hào)系統(tǒng)升級(jí)中的ATS軟件測(cè)試,結(jié)合運(yùn)營(yíng)場(chǎng)景設(shè)計(jì)了基于13個(gè)場(chǎng)景的測(cè)試用例,覆蓋47個(gè)功能項(xiàng)。從測(cè)試環(huán)境自動(dòng)化部署到測(cè)試報(bào)告自動(dòng)生成共耗時(shí)2 h。在使用自動(dòng)化測(cè)試平臺(tái)前,人工搭建測(cè)試環(huán)境并完成測(cè)試,通常需要8 h。利用該自動(dòng)化測(cè)試平臺(tái),可大幅減少測(cè)試時(shí)間。隨著測(cè)試系統(tǒng)日趨完善,測(cè)試人員編寫(xiě)的測(cè)試場(chǎng)景腳本的復(fù)用率將會(huì)逐漸提升,利用已創(chuàng)建的測(cè)試場(chǎng)景腳本,測(cè)試執(zhí)行人員可將更多精力用于其它有助于測(cè)試效率提升的工作。
開(kāi)發(fā)了基于場(chǎng)景模擬的ATS軟件自動(dòng)化測(cè)試系統(tǒng)。測(cè)試系統(tǒng)由被測(cè)對(duì)象服務(wù)器、模擬集成服務(wù)器和測(cè)試管理服務(wù)器構(gòu)成,將ATS系統(tǒng)內(nèi)部環(huán)境的模擬與ATS系統(tǒng)外部環(huán)境的模擬相分離,降低ATS軟件仿真測(cè)試系統(tǒng)的復(fù)雜度。目前,已完成測(cè)試管理服務(wù)器軟件模塊的開(kāi)發(fā),包括測(cè)試流程編輯、測(cè)試場(chǎng)景編輯、測(cè)試日志存儲(chǔ)、測(cè)試報(bào)告生成4個(gè)主要模塊。使用該測(cè)試系統(tǒng)時(shí),將單一功能項(xiàng)與運(yùn)營(yíng)場(chǎng)景結(jié)合起來(lái)設(shè)計(jì)測(cè)試用例,使用基于一個(gè)場(chǎng)景模擬的測(cè)試用例即可驗(yàn)證多個(gè)功能項(xiàng)組合的正確性,可顯著提高軟件測(cè)試效率。此外,測(cè)試系統(tǒng)可自動(dòng)執(zhí)行測(cè)試過(guò)程,并自動(dòng)生成測(cè)試報(bào)告,測(cè)試人員可將精力集中于測(cè)試場(chǎng)景設(shè)計(jì)和測(cè)試策略優(yōu)化,不斷優(yōu)化測(cè)試系統(tǒng)。
地鐵ATS系統(tǒng)與鐵路分散自律調(diào)度集中控制(CTC,Centralized Traffic Control)系統(tǒng)的功能類似,雖然兩者外部接口存在很大差別,但測(cè)試方法可以借鑒。