王菲 萬林
基于測試案例及JRU數(shù)據(jù)的專家系統(tǒng)研究
王菲 萬林
為保證高速鐵路能夠安全有效地運(yùn)行,在正式運(yùn)營前必須對列控系統(tǒng)進(jìn)行充分的功能測試。研究基于測試案例以及JRU數(shù)據(jù)的專家系統(tǒng)勢在必行。主要介紹系統(tǒng)的主要功能、拓?fù)浣Y(jié)構(gòu)及其測試步驟,以及實(shí)現(xiàn)測試案例快速匹配的Hash搜索樹等內(nèi)容。
專家系統(tǒng);測試案例;Hash搜索樹;JRU數(shù)據(jù)
目前我國CTCS-3級列控系統(tǒng)的功能測試,無論是現(xiàn)場測試還是試驗室測試,主要采用傳統(tǒng)的人工方式,依靠測試人員的經(jīng)驗判斷結(jié)果的正確性,發(fā)現(xiàn)問題后也由相關(guān)人員查找原因,給出相應(yīng)的解決方案。這種工作方式效率較低,對于某些偶發(fā)故障,復(fù)現(xiàn)故障發(fā)生的場景有很大的難度,給工作帶來很大的困擾。所以,研究結(jié)合人工智能技術(shù)的專家系統(tǒng),實(shí)現(xiàn)CTCS-3級列控系統(tǒng)的自動化功能測試意義重大。
以CTCS-3級列控系統(tǒng)測試案例為基礎(chǔ),正確界定每個案例的觸發(fā)條件、約束條件、期望結(jié)果以及不同案例的關(guān)聯(lián)性,形成一套案例規(guī)則庫,通過軟件實(shí)現(xiàn)自動導(dǎo)入。經(jīng)專家系統(tǒng)對比JRU數(shù)據(jù)和軟件預(yù)定義的消息流程及覆蓋的測試案例,輸出比較結(jié)果,如結(jié)果一致,則輸出每個案例執(zhí)行的時間、執(zhí)行情況等信息;如結(jié)果不一致,輸出錯誤信息。該系統(tǒng)可以通過圖表的形式,自動統(tǒng)計每個測試序列覆蓋的測試案例及數(shù)量。
本文提出的基于測試案例及JRU數(shù)據(jù)的專家系統(tǒng),可實(shí)現(xiàn)實(shí)驗室內(nèi)待測設(shè)備的功能測試和現(xiàn)場設(shè)備數(shù)據(jù)分析/測試等。根據(jù)測試要求的不同,按照不同的測試數(shù)據(jù)流方式,劃分為閉環(huán)測試系統(tǒng)和開環(huán)測試系統(tǒng)。閉環(huán)測試系統(tǒng)由實(shí)驗室仿真測試平臺提供測試數(shù)據(jù),適用于實(shí)驗室內(nèi)待測設(shè)備的功能測試;開環(huán)測試系統(tǒng)由現(xiàn)場JRU數(shù)據(jù)提供測試數(shù)據(jù),適用于現(xiàn)場設(shè)備的功能測試。
專家系統(tǒng)由3個獨(dú)立但聯(lián)系緊密的程序模塊組成,分別為車載數(shù)據(jù)監(jiān)控程序TM(Train-Monitor)、專家系統(tǒng)主程序ES(Expert-System)和模式識別程序PR(Pattern-Recognition)。
專家系統(tǒng)主程序接收J(rèn)RU數(shù)據(jù),但有些信息JRU數(shù)據(jù)中沒有記錄,如司機(jī)操作等,則利用模式識別程序獲取DMI的實(shí)時動態(tài)顯示信息,發(fā)送給專家系統(tǒng)主程序;專家系統(tǒng)依據(jù)這2個數(shù)據(jù)來源,通過搜索測試案例庫,查找符合條件的案例,并判斷案例的執(zhí)行情況。開環(huán)測試系統(tǒng)的測試數(shù)據(jù)流如圖1所示。
圖1 開環(huán)測試系統(tǒng)的測試步驟
開環(huán)測試系統(tǒng)包括以下3個步驟:①專家系統(tǒng)下載獲取現(xiàn)場JRU數(shù)據(jù);②專家系統(tǒng)從數(shù)據(jù)庫提取測試案例觸發(fā)/比對條件信息;③專家系統(tǒng)根據(jù)第1、2步獲取的信息進(jìn)行邏輯判斷,并輸出分析結(jié)果。
閉環(huán)測試系統(tǒng)的測試步驟如圖2所示,包括以下6個步驟。
1.根據(jù)測試人員操作指令,發(fā)送測試案例命令編號至實(shí)驗室仿真測試平臺。
2.仿真測試平臺根據(jù)命令編號提取對應(yīng)的測試子序列,并執(zhí)行。該子序列一一對應(yīng)于469個測試案例,可在仿真測試平臺執(zhí)行,同時可針對不同的數(shù)據(jù)配置文件生成不同線路的測試子序列。該測試子序列集構(gòu)成腳本測試案例庫。
3.從仿真測試平臺獲取測試案例所需的外部環(huán)境數(shù)據(jù)。
4.實(shí)時獲取實(shí)驗室內(nèi)DMI信息。
5.提取數(shù)據(jù)庫中的觸發(fā)/比對條件。
6.綜合第3、4、5步中獲取的信息,進(jìn)行邏輯判斷,并輸出分析結(jié)果。
傳統(tǒng)的線性搜索不適于大容量搜索,所以選擇一個合適的搜索算法成為提高測試案例搜索效率的關(guān)鍵問題。專家系統(tǒng)軟件在存儲從數(shù)據(jù)庫讀取的測試案例規(guī)則庫時,應(yīng)用了Hash表,軟件中Hash函數(shù)的構(gòu)造方法是以原始關(guān)鍵值作為新建數(shù)組的下標(biāo),由此得到的運(yùn)算結(jié)果就作為該原始關(guān)鍵值對應(yīng)規(guī)則的存儲地址。由于原始關(guān)鍵值分類不是很多,所以無需考慮產(chǎn)生“沖突”的現(xiàn)象。原始關(guān)鍵值指測試案例規(guī)則中DMI的消息分類和Platform(仿真平臺)的消息分類。例如DMI的消息分類有輸入信息、距離控制信息、速度信息、運(yùn)行計劃信息、監(jiān)控信息和按鍵信息,程序中分別用1、2、3、4、5、6來表示,先建立一個一維數(shù)組,填滿這個一維數(shù)組,并將每一個類型所對應(yīng)的數(shù)字為數(shù)組的下標(biāo),再以所得到數(shù)組的值作為DMI變量的存儲地址,把相應(yīng)的類型存儲到對應(yīng)的存儲地址中。同理,Platform的不同消息類型也似上述方式存儲到Platform相關(guān)的變量中。
建立Hash表后,可以通過判斷接收到DMI消息類型和Platform消息類型,到Hash表對應(yīng)的地址查找相關(guān)測試案例。
圖2 閉環(huán)測試系統(tǒng)的測試步驟
基于Hash函數(shù)的搜索方法相對于傳統(tǒng)的線性搜索,無論從時間復(fù)雜度還是從空間性能來看,都極大地提高了搜索效率,使得專家系統(tǒng)能夠滿足高速列控系統(tǒng)大容量數(shù)據(jù)交互的特性。
1.專家系統(tǒng)軟件首先讀取并存儲數(shù)據(jù)庫中的測試案例規(guī)則庫的規(guī)則,同時與DMI軟件和高速列控系統(tǒng)仿真平臺系統(tǒng)的接口服務(wù)器軟件進(jìn)行通信。當(dāng)接收到信息時,軟件按照相關(guān)通信協(xié)議進(jìn)行解析,分別存儲到DMI信息結(jié)構(gòu)體或Platform信息結(jié)構(gòu)體中。例如接收到DMI信息,軟件解析并存儲消息后,檢查觸發(fā)條件臨時隊列中是否已經(jīng)存在規(guī)則。如果存在,繼續(xù)檢查規(guī)則的比對確認(rèn);如果確認(rèn)比對,則直接將該條規(guī)則放置在結(jié)果隊列中,反之將該條規(guī)則放到需比對的規(guī)則鏈表上。
2.根據(jù)接收的DMI消息類型到存儲該消息類型的vector中進(jìn)行比對。先比對一條規(guī)則中的起始等級、起始模式,再比對觸發(fā)條件里的消息來源、消息類型、觸發(fā)條件RBC消息、觸發(fā)條件包、觸發(fā)條件相關(guān)變量/文本信息。若均滿足,則將該條規(guī)則存儲到觸發(fā)條件臨時隊列中。
3.檢查待比對規(guī)則的關(guān)聯(lián)案例執(zhí)行狀態(tài)是否成功。如果失敗,進(jìn)行下一個規(guī)則的比對,反之繼續(xù)本規(guī)則的下一步比對。需要比對的內(nèi)容包括結(jié)束等級、結(jié)束模式、條件消息來源、條件消息類型、條件RBC消息、條件包、條件相關(guān)變量/文本信息等。若均滿足,則將該條規(guī)則標(biāo)記為比對成功。
4.專家系統(tǒng)軟件執(zhí)行過程中將創(chuàng)建顯示比對結(jié)果的線程。該線程的主要功能是判斷規(guī)則在規(guī)定的時間內(nèi)是否比對成功。如果成功,則將該條規(guī)則標(biāo)記為執(zhí)行成功,反之標(biāo)記為執(zhí)行失敗,放置在顯示隊列中,并在鏈表中刪除該條規(guī)則。
本文所研究的基于測試案例及JRU數(shù)據(jù)的專家系統(tǒng)能夠運(yùn)用于實(shí)驗室及現(xiàn)場測試環(huán)境,通過導(dǎo)入測試數(shù)據(jù),與系統(tǒng)預(yù)設(shè)置的判斷依據(jù)進(jìn)行比對,實(shí)現(xiàn)測試案例的快速匹配,顯示及輸出測試案例執(zhí)行情況報告,提高了測試和分析的效率。在此基礎(chǔ)上,后續(xù)可結(jié)合現(xiàn)場測試的實(shí)際需求,通過專家系統(tǒng)分析主要的故障現(xiàn)象和原因。
[1]中華人民共和國鐵道部.科技運(yùn)[2009]59號.CTCS-3級列控系統(tǒng)測試案例(V3.0)[S].2009.
[2]翟立東,孫麗萍.軟件自動測試方法的研究與實(shí)現(xiàn)[J].大連鐵道學(xué)院學(xué)報,2005,26(4):52-57.
[3]趙國鋒,陳群麗.基于Hash和AQT的類決策樹包分類算法研究[J].通信技術(shù),2010,43(11):210-212.
[4]季學(xué)勝,李開成,張勇,劉大為.CTCS-3級列控系統(tǒng)測試案例生成方法的研究[J].鐵道通信信號,2009 (10):1-4.
[5]崔尚森,張白一.一種基于哈希表和Trie樹的快速IP路由查找算法[J].計算機(jī)工程與應(yīng)用,2005(9): 156-159.
[6]王爽.基于測試序列的專家系統(tǒng)的設(shè)計與實(shí)現(xiàn)[M].北京,北京郵電大學(xué),2012.
In order to guarantee the safe and efficient operation of high speed railway,the functional test of the train control system mustbe sufficientbefore the system is put into operation.The thesismainly describes themajor functions,topological structure and test procedure of the expert system and explained the Hash searching tree used to realize fastmatching of test cases.
Expert system;Test case;Hash searching tree;JRU data
王菲:中國鐵道科學(xué)研究院通信信號研究所助理研究員100081北京
萬林:中國鐵道科學(xué)研究院通信信號研究所助理研究員100081北京
2014-01-02
(責(zé)任編輯:溫志紅)