張佳瑩,曲 娜,鄭偉南,衛昱含
(吉林建筑工程學院 城建學院,吉林 長春 130111)
由于國內經濟的不斷快速發展,大型城市以及中型城市正逐步的擴建,城市面臨著人口不斷增加以及城市占地面積擴大的問題[1].為了保證城市軌道交通能夠更加安全、效率地運行,于是各個城市的軌道交通建設放棄選擇使用原有的基于軌道電路的列車控制系統(TBTC),而采用最新的列車控制系統基于通信的列車控制系統(CBTC)[2].
在現有的城市軌道交通系統中很多都采用了CBTC系統,但是很多城市地鐵都出現過大大小小的事故[3].在CBTC系統中,車載設備保證著列車的安全行駛,系統功能都需要通過車載設備才能實現[4].因此完成CBTC系統測試中重要的一個環節就是對列車的車載設備進行調試[5].
本研究系統根據新一代的CBTC系統設計理念,利用車載設備的測試軟件進行車載設備的測試.通過測試軟件,觀察車載控制器內的數據變化,對測試參數的具體分析,最后基于工程實踐的經驗,對CBTC系統測試用例進行設計.
在CBTC系統下,車—地雙向實時數據的傳輸采用的是無線通信的手段[6].列車不再是單一地接收地面傳到車載設備的控制信息,列車還需將列車的位置信息和列車的運行信息及時反饋給地面設備[7].地面設備通過得到的列車信息計算出列車的移動授權(MovingAuthority下面簡稱MA),并且動態更新,將移動授權通過車—地通信網絡傳輸到車載設備[8].車載設備根據收到的移動授權信息和當前列車的運行狀態,計算出列車的運行速度曲線,控制列車的牽引、制動與運行[9].
CBTC系統下的車載設備將接收的信息來自區域控制器ZC、ATS系統、地面信標和計算機連鎖CI,同時需要將處理的信息反饋給各系統,其中的之間的邏輯關系非常復雜[10].為了避免輸入條件之間的彼此結合導致新的狀況出現而帶來檢查方面的困難,因此如何設計測試用例,可以在測試手段的選取上采用一種形式,滿足描述多條件組合,且產生對應多動作.這要求我們對測試用例的設計時采取因果圖法.
因果圖模型中有兩類主要部分的因果圖參數和結構,如圖1所示:

圖1 因果圖模型
其中字母B表示基本事件,即不需探究自身原因或者沒有原因的事件;X表示中間事件,即任意含有原因的事件;G表示邏輯門,即通過對輸入原理進行邏輯門運算而得到相應的輸出事件;P表示連接事件,其從始至終都指向中間事件.
運用因果圖法進行設計測試案例的進程中判定表的生成是一個非常重要的環節,且具有較高要求.判定表有四個部分組成:行動樁、條件樁、行動條目和條件條目.目前,很少有參考文獻給予一個非常明確清晰的轉化算法,所有的測試用例基本都是由工程實踐中得出.本文針對現有的一些轉化方法進行研究,提出采用條件遍歷算法來對因果圖進行轉化,其算法框架如圖2所示.

圖2 遍歷算法流程圖
通過上述方法,我們可以發現經過一次一次的條件遍歷,中間事件通過遍歷找出其產生的基本事件,我們最終可以得到由基本事件構成的測試輸入數據.在執行此算法時,我們需要注意此算法針對單動作輸出的情況進行設計.如果遇到多動作產生的情況,測試人員需要將各動作的輸入條件進行分析,找出各輸入條件的制約關系,對測試案例進行設計.
車載設備作為CBTC系統中最為重要的部分,主要負責保護列車行駛安全、防止列車超速和防止列車進入前車的運行區間,由此可見,在列車運營之前對車載設備的測試工作也顯得格外重要.本研究系統利用因果圖法測試案例的原理,對ATP速度防護功能方面進行選取,研究測試案例的生成.
車載ATP速度防護中有以下兩方面的計算:當前推薦運行速度計算以及觸發緊急制動的速度計算.在列車行駛中,車載設備會實時地將以上2個速度值反映在車載人機界面中,讓駕駛員可以實時地監控列車的行駛速度.一旦當列車超出當前的推薦速度時,車載設備會給予駕駛員警告信息.若此情況在規定時間內消除,列車將繼續安全行駛;但此情況未能及時消除,列車的ATP功能將會啟動緊急制動以保護行車的安全.我們可以將被測的功能劃分為多種狀態,狀態之間的轉換通過輸入的變量產生相對應的動作輸出.
在考慮輸入數據的取值方面我們需要將等價類的思想方法引入到設計當中.對所有已經輸入的數據進行劃分,可分為N個等價類.如何收集測試的輸入數據,可選取每個等價類中的一個數據作為輸入數據,則可達到選取少量數據但得到很好的測試結果.根據以上對ATP速度防護系統的流程分析,我們可以將測試需要的輸入數據進行定義.
在選取輸入數據取值時,我們需要同時考慮到所有正常情況與異常情況下的數據輸入.我們要考慮滿足因果圖中各原因事件的“True”與“False”的關系.在設計有效輸入,我們要確定使用的每一個有效類中的值;在設計無效輸入,為確保更多等價類的輸入為有效輸入,則需將一個等價類作為無效的輸入數據,這樣考慮是從單缺陷進行假設.當然也可以從多缺陷進行假設,要實現這類測試需要大量冗余.
根據ATP速度防護的流程進行遍歷,將一個整體的測試劃分為各類局部測試,最后將這些局部測試組合起來生成一個具體的測試方案.實際工程中采用的測試方案如表1所示:
在實際的測試中,僅僅靠幾次測試或者十幾次測試是不能夠有效地測試出系統功能的完整性和準確性的.所以可以對同類型的測試多次重復.這樣就需要在測試后,測試人員需要對進行測試案例的數據結果進行統計和驗證.若發現測試存在缺陷,則需進行再次測試.
在統計中,測試人員需要將測試劃分為以下部分:
測試案例優先級、測試案例預計總數、測試案例完成數量、測試案例實際數量以及通過和未通過測試的案例數量.

表1 測試方案表
所統計的數據在整理后得表2.

表2 測試數據統計
將統計得到的數據表格轉化為圖表的格式,這樣測試人員可以直觀地發現出測試中所存在的問題,用來指導測試工作、調整測試,使得測試更加完備、準確.
近年來,國內城市軌道交通正在發展高速的時期,更多的軌道交通公司對C B T C系統進行應用,實際的工程建設中可以發現.這樣急需要一套完整、有效的測試方案對設備進行測試,保證設備系統能夠正常地工作.本研究系統對車載設備的測試方法以及實際測試案例開展了深入研究,利用因果圖法在對其改進的基礎上提出有效的車載設備測試方案,對車載A T P超速防護進行測試實驗,實驗結果表明,本文提出的測試方案切實有效,可以進行推廣.
〔1〕向華.關于白盒測試基本方法的分析[J].江漢大學學報,2003,31(1):38-41.
〔2〕徐杰,賈學祥.CBTC關鍵理論分析及北京地鐵4號線的應用分析[J].鐵道通信信號,2010(46):44-46.
〔3〕付劍平,陸民燕.基于因果圖的軟件測試性影響因素分析[J].計算機應用,2009,33(6):270-271.
〔4〕石慶喜,梁新元.因果圖的一種快速推理方法[J].計算機工程與應用,2005(28):18-20.
〔5〕王立榮,何煒.基于因果圖的軟件測試方法[J].計算機系統應用,2010,19(4):104-107.
〔6〕陳榮武,劉莉.基于CBTC的列車自動駕駛控制算法[J].計算機應用,2007,27(11):2649-2651.鐵路.2010,(4):76-78.