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