本發(fā)明涉及軌道交通領(lǐng)域,具體為列車運行控制系統(tǒng)安全關(guān)鍵軟件自動測試平臺。
背景技術(shù):
列車運行控制系統(tǒng),簡稱列控系統(tǒng),是保障列車在高速度、高密度的環(huán)境下安全運行、提高運輸效率的重要部分。現(xiàn)代列控系統(tǒng)已經(jīng)從軌道電路、機車信號等設(shè)備的簡單組合,逐漸向功能完善、層次分明、集運行控制及自動駕駛為一體的綜合自動化系統(tǒng)方向發(fā)展。在此過程中,軟件被大量的應(yīng)用在列控系統(tǒng)中,而且越來越多的安全相關(guān)功能由硬件移植到軟件,使得列控系統(tǒng)軟件成為“安全關(guān)鍵軟件”。列控系統(tǒng)安全關(guān)鍵軟件已經(jīng)參與到列控系統(tǒng)的決策、控制及管理,而且軟件執(zhí)行的功能越來越多,復雜度也越來越高,軟件遺漏需求、邏輯錯誤等均可能造成人員傷亡,重大財產(chǎn)損失及環(huán)境破壞等災(zāi)難性后果。列控系統(tǒng)安全關(guān)鍵軟件必須經(jīng)過全面、嚴格的測試,明確軟件在各種場景下均不會導向危險。
測試平臺是保證軟件測試質(zhì)量、提高測試效率和管理測試過程的關(guān)鍵技術(shù)。目前,列控系統(tǒng)安全關(guān)鍵軟件的測試平臺主要是仿真平臺,通過模擬軟件可能的場景進行測試,沒有專門針對列控系統(tǒng)安全關(guān)鍵軟件的自動軟件測試平臺。仿真平臺的測試用例主要來自相關(guān)工程和專家的經(jīng)驗,工程的差異性和專家的人因不確定性都可能影響測試用例的質(zhì)量,存在測試需求遺漏,測試不全面,測試需求重復等問題,導致列控系統(tǒng)安全關(guān)鍵軟件存在安全隱患。同時,列控系統(tǒng)安全關(guān)鍵軟件測試是一個復雜的過程,仿真平臺的測試用例維護、測試過程管理、測試結(jié)果記錄及結(jié)果分析都需要大量的人工參與。采用成熟的算法自動生成全面的測試用例,自動管理和分析測試結(jié)果的測試平臺對提高列控系統(tǒng)安全關(guān)鍵軟件的測試質(zhì)量、效率和降低測試成本具有重要意義。
目前,列控系統(tǒng)軟件測試平臺主要是根據(jù)列控軟件的功能及特點,分析軟件與人員、其他系統(tǒng)或設(shè)備的交互,提取軟件的輸入、輸出,搭建仿真平臺,借助相關(guān)工程和專家的經(jīng)驗,模擬軟件可能的各種場景,觀察軟件在這些場景下運行是否正常,同時人工記錄和分析測試結(jié)果,達到測試的目的。
該技術(shù)的缺點:
(1)仿真平臺存在不容易實體表現(xiàn)的抽象場景,如道岔轉(zhuǎn)換過程中,容易遺漏測試場景。
(2)仿真平臺的測試用例依賴相關(guān)項目和專家的經(jīng)驗,項目的差異性和專家的主觀性導致難以保證測試用例的合理性,仿真場景可能存在重復、遺漏或錯誤,部分安全場景難以覆蓋,為列車運行控制系統(tǒng)的運營埋下安全隱患;
(3)仿真平臺成本高,測試用例的維護和更新、測試結(jié)果的記錄和分析等都依賴人工,難以防止人因失誤,同時測試效率較低。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在提出一套完整的列車運行控制系統(tǒng)安全關(guān)鍵軟件自動測試平臺,覆蓋列車運行控制系統(tǒng)安全關(guān)鍵軟件從需求分析、測試用例自動生成、自動測試、自動記錄和分析測試結(jié)果的全過程。
具體技術(shù)方案為:
列車運行控制系統(tǒng)安全關(guān)鍵軟件自動測試平臺,包括建模子系統(tǒng)、測試路徑生成子系統(tǒng)、組合覆蓋子系統(tǒng)、測試結(jié)果分析子系統(tǒng)、通信接口子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。
所述建模子系統(tǒng)完成列車運行控制系統(tǒng)安全關(guān)鍵軟件功能需求建模,具有列車運行控制系統(tǒng)的標準化的功能模型庫,針對具體功能進行測試時可通過功能模型庫的模型單元快速建立軟件系統(tǒng)的功能模型。
所述測試路徑生成子系統(tǒng)將建模子系統(tǒng)生成的狀態(tài)圖模型轉(zhuǎn)換為有向圖模型,通過廣度優(yōu)先搜索、前綴圖匹配等算法,生成符合覆蓋準則的測試路徑。
所述組合覆蓋子系統(tǒng)采用組合測試思想,分析每條路徑的邊的可能的測試場景集,根據(jù)路徑中邊之間的順序關(guān)系進行組合覆蓋,得到測試用例,并將測試用例轉(zhuǎn)化為XML測試腳本文件,存儲到數(shù)據(jù)管理子系統(tǒng)。
所述通信接口子系統(tǒng)是平臺與待測系統(tǒng)交互的關(guān)鍵,該子系統(tǒng)集成測試過程中需要與待測對象進行通信的設(shè)備,并通過統(tǒng)一的接口設(shè)備實現(xiàn)各個接口數(shù)據(jù)的發(fā)送和采集,將測試數(shù)據(jù)存儲到數(shù)據(jù)管理子系統(tǒng)。
所述測試結(jié)果分析子系統(tǒng)比較測試過程中通信接口子系統(tǒng)發(fā)送的測試用例和接收到的被測設(shè)備的測試用例執(zhí)行結(jié)果,,自動分析測試結(jié)果,生成測試結(jié)果報告。
所述數(shù)據(jù)管理子系統(tǒng)包含數(shù)據(jù)庫和文件管理系統(tǒng)。其中數(shù)據(jù)庫存儲測試用例、環(huán)境數(shù)據(jù)以及實測過程中與待測系統(tǒng)交互的數(shù)據(jù)。文件管理系統(tǒng)存儲列車運行控制系統(tǒng)基礎(chǔ)信號組件的基礎(chǔ)功能模型、測試路徑XML文件、測試用例序列XML腳本文件和測試結(jié)果報告文件。
測試路徑生成子系統(tǒng)與組合覆蓋子系統(tǒng),組合覆蓋子系統(tǒng)與通信接口子系統(tǒng),通信接口子系統(tǒng)與測試結(jié)果分析子系統(tǒng)之間均存在單向通信,前一子系統(tǒng)工作完成后向后續(xù)子系統(tǒng)發(fā)送信號,觸發(fā)后續(xù)子系統(tǒng)工作,從而使得從測試路徑生成至測試結(jié)果分析的整個流程可自動進行。
建模子系統(tǒng)采用SCADE(Safety Critical Application Development Environment)對待測對象進行模型構(gòu)建。
測試路徑生成子系統(tǒng)、組合覆蓋子系統(tǒng)、通信接口子系統(tǒng)可在數(shù)據(jù)管理子系統(tǒng)的支持下獨立運行,通過從數(shù)據(jù)管理子系統(tǒng)獲取歷史數(shù)據(jù),上述子系統(tǒng)可針對特定數(shù)據(jù)生成相應(yīng)的子系統(tǒng)運算結(jié)果。
本發(fā)明提供的列車運行控制系統(tǒng)安全關(guān)鍵軟件自動測試平臺,建立列車運行控制系統(tǒng)基礎(chǔ)信號模型庫,提高建模的準確度和效率;根據(jù)列車運行控制系統(tǒng)需求和功能模型庫形式化地描述列車運行控制系統(tǒng)安全關(guān)鍵軟件的需求,利用仿真和模型檢測方法驗證模型的安全性和活性,保障模型的正確性;利用廣度優(yōu)先搜索、前綴圖匹配等算法,生成符合覆蓋準則的測試路徑,結(jié)合組合覆蓋生成列車運行控制系統(tǒng)安全關(guān)鍵軟件的測試用例,具有測試用例覆蓋全面、不重復、不遺漏,包含異常測試場景和小概率場景的特點;測試序列自動生成與自動注入,并自動完成分析和統(tǒng)計測試結(jié)果,提高測試質(zhì)量和效率,同時降低測試成本。
附圖說明
圖1是本發(fā)明的結(jié)構(gòu)示意圖;
圖2是本發(fā)明的建模子系統(tǒng)結(jié)構(gòu)示意圖;
圖3是本發(fā)明的測試路徑生成子系統(tǒng)結(jié)構(gòu)示意圖;
圖4是本發(fā)明的組合覆蓋子系統(tǒng)結(jié)構(gòu)示意圖。
具體實施方式
結(jié)合附圖說明本發(fā)明的具體實施方式。
本發(fā)明為列車運行控制系統(tǒng)安全關(guān)鍵軟件自動測試平臺,包括建模子系統(tǒng)、測試路徑生成子系統(tǒng)、組合覆蓋子系統(tǒng)、通信接口子系統(tǒng)、測試結(jié)果分析子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng),如圖1所示。系統(tǒng)間各個子系統(tǒng)通過標準串口或高速以太網(wǎng)連接,其中建模子系統(tǒng)用于構(gòu)建待測安全關(guān)鍵軟件的功能需求模型,并對模型進行仿真和驗證,保證模型的安全性和準確性。建模子系統(tǒng)通過接口A與測試路徑生成子系統(tǒng)進行通信,將建模子系統(tǒng)的模型信息和模型修改信息。測試路徑生成子系統(tǒng)、組合覆蓋子系統(tǒng)、通信接口子系統(tǒng)、測試結(jié)果分析子系統(tǒng)分別通過接口D、E、F、G與數(shù)據(jù)管理子系統(tǒng)進行通信,從數(shù)據(jù)管理子系統(tǒng)中提取各個子系統(tǒng)操作所需數(shù)據(jù)。測試路徑生成子系統(tǒng)通過接口A獲取建模子系統(tǒng)的模型文件或更新的模型文件。通過接口B將生成的測試路徑發(fā)送給組合覆蓋子系統(tǒng),組合覆蓋子系統(tǒng)根據(jù)測試路徑和路徑的邊代表的測試場景集自動生成測試用例。組合覆蓋子系統(tǒng)通過接口C向通信接口子系統(tǒng)發(fā)生測試用例生成結(jié)束信息,通信接口子系統(tǒng)對待測系統(tǒng)自動測試。通信接口子系統(tǒng)通過接口H向測試結(jié)果分析子系統(tǒng)發(fā)送測試完成消息,測試結(jié)果分析子系統(tǒng)自動分析測試用例的執(zhí)行情況。該系統(tǒng)的一般工作過程是。
建模子系統(tǒng)完成列車運行控制系統(tǒng)安全關(guān)鍵軟件需求建模。首先根據(jù)《CTCS-3級列控系統(tǒng)系統(tǒng)需求規(guī)范(SRS)》和《CTCS-3級列控系統(tǒng)總體技術(shù)方案》等需求規(guī)范,利用建模子系統(tǒng)采用SCADE建立列車運行控制系統(tǒng)基礎(chǔ)信號組件的基礎(chǔ)功能模型庫。然后,利用基礎(chǔ)功能模型庫中的模型組件針對具體的待測安全關(guān)鍵軟件的功能構(gòu)建軟件系統(tǒng)模型,利用SCADE提供的仿真器和模型檢測器保證模型的正確性,如圖2所示。當建模子系統(tǒng)新建模型或者修改模型后,該子系統(tǒng)向測試路徑生成子系統(tǒng)發(fā)送模型更新信息,測試路徑生成子系統(tǒng)重新獲取模型。測試路徑生成子系統(tǒng)包括模型轉(zhuǎn)換模塊、算法選擇模塊以及路徑校驗?zāi)K。測試路徑生成子系統(tǒng)從建模子系統(tǒng)接收待測對象的模型文件后,首先將經(jīng)過驗證的模型文件存儲于數(shù)據(jù)管理子系統(tǒng);然后對XML格式的模型信息文件進行解析。模型轉(zhuǎn)換模塊自動對模型信息進行篩選,提取保留模型信息包中符合圖論有向圖的信息,從而將SCADE模型轉(zhuǎn)換為有向圖模型。算法選擇器模塊通過界面配置圖覆蓋準則以及相關(guān)算法參數(shù),系統(tǒng)根據(jù)配置從測試路徑生成算法庫中自動匹配算法生成測試路徑。路徑校驗?zāi)K考察測試路徑對圖模型覆蓋的完整度,當覆蓋度滿足要求時將測試路徑轉(zhuǎn)化為XML文件并存儲于數(shù)據(jù)管理子系統(tǒng)并向組合覆蓋子系統(tǒng)發(fā)送消息通知其存在新的測試路徑需要處理,如圖3所示。
組合覆蓋子系統(tǒng)接收到測試路徑生成子系統(tǒng)生成的測試路徑后,組合覆蓋子系統(tǒng)從數(shù)據(jù)管理子系統(tǒng)獲取模型文件以及測試路徑生成子系統(tǒng)生成的測試路徑信息,分析每條路徑的邊上可能的安全關(guān)鍵軟件的測試場景,采用組合測試的方式,根據(jù)路徑中邊的順序關(guān)系對路徑上所有的邊的測試場景進行組合覆蓋,得到測試用例,并將測試用例轉(zhuǎn)化為XML腳本,以文件形式存儲到文件管理子系統(tǒng),將測試數(shù)據(jù)以數(shù)據(jù)庫表結(jié)構(gòu)存儲于數(shù)據(jù)管理系統(tǒng)中,如圖4所示。該子系統(tǒng)可與通信接口子系統(tǒng)通信,向通信接口子系統(tǒng)發(fā)送測試用例生成消息。
通信接口子系統(tǒng)接收到測試用例生成消息后,從數(shù)據(jù)管理子系統(tǒng)獲取包含測試用例信息的XML腳本文件,將測試用例及必要的環(huán)境數(shù)據(jù)按照接口設(shè)備的規(guī)格要求發(fā)送給接口設(shè)備,接口設(shè)備驅(qū)動被測對象測試,同時實時采集被測設(shè)備對測試用例的執(zhí)行結(jié)果。通信接口子系統(tǒng)將測試過程的狀態(tài)及測試結(jié)果等信息存儲于數(shù)據(jù)管理子系統(tǒng),并向結(jié)果分析子系統(tǒng)發(fā)送測試完成信息。
測試結(jié)果分析子系統(tǒng)接收到測試完成信息之后從數(shù)據(jù)管理子系統(tǒng)獲取測試過程數(shù)據(jù)及測試結(jié)果數(shù)據(jù),結(jié)合測試序列腳本XML文件核對每一個測試用例的執(zhí)行情況,自動統(tǒng)計測試用例的類型、比例,統(tǒng)計每個需求的失敗用例并顯示,包括需求名稱、失敗的測試用例、用例類型以及該需求中的同類型的所有測試用例。對于失敗測試用例,系統(tǒng)進行故障追蹤,將異常情況定位到具體模型測試路徑的邊場景中。最終根據(jù)測試分析結(jié)果生成測試報告,并以文本文件格式存儲于數(shù)據(jù)管理子系統(tǒng)中。