曹云剛
(貴州交通職業(yè)技術(shù)學(xué)院,貴州 貴陽 550008)
隨著我國經(jīng)濟(jì)的高速發(fā)展,各大中型城市處于不斷擴(kuò)建中,城市的占地面積和城市人口都在與日俱增,全國的城市軌道交通建設(shè)進(jìn)入了迅速發(fā)展期間。為了保證城市軌道交通能夠更加安全、高效地運(yùn)行,各個(gè)城市的軌道交通建設(shè)放棄選擇使用原有的基于軌道電路的列車控制系統(tǒng)(TBTC),采用新一代的列車控制系統(tǒng)-基于通信的列車控制系統(tǒng)(CBTC)[1]。
在現(xiàn)有的城市軌道交通系統(tǒng)中很多都采用了CBTC系統(tǒng),但是很多城市地鐵都出現(xiàn)過大大小小的事故[2]。在CBTC系統(tǒng)中,車載設(shè)備保證著列車的安全行駛,系統(tǒng)功能都需要通過車載設(shè)備來實(shí)現(xiàn)[3],因此完成CBTC系統(tǒng)測試中重要的一個(gè)環(huán)節(jié)就是對列車的車載設(shè)備進(jìn)行調(diào)試[4]。
本文根據(jù)CBTC系統(tǒng)的設(shè)計(jì)規(guī)范,借助車載設(shè)備的測試平臺對車載設(shè)備進(jìn)行測試。通過測試平臺軟件,觀察車載控制器內(nèi)的數(shù)據(jù)變化,對測試參數(shù)進(jìn)行具體分析,最后基于工程實(shí)踐的經(jīng)驗(yàn),對CBTC系統(tǒng)測試用例進(jìn)行設(shè)計(jì)。
CBTC系統(tǒng)是采用移動(dòng)閉塞的原理對列車進(jìn)行控制。在CBTC系統(tǒng)下,運(yùn)用無線通信的方式實(shí)現(xiàn)車-地雙向?qū)崟r(shí)數(shù)據(jù)傳輸[5]。列車不再是單一地接收地面?zhèn)鞯杰囕d設(shè)備的控制信息,它還需將列車的位置信息和列車的運(yùn)行信息及時(shí)反饋給地面設(shè)備[6]。地面設(shè)備通過得到的列車信息計(jì)算出列車的移動(dòng)授權(quán)(moving authority,MA),并且動(dòng)態(tài)更新,將移動(dòng)授權(quán)通過車-地通信網(wǎng)絡(luò)傳輸?shù)杰囕d設(shè)備[7]。車載設(shè)備根據(jù)收到的移動(dòng)授權(quán)信息和當(dāng)前列車的運(yùn)行狀態(tài),計(jì)算出列車的運(yùn)行速度曲線,控制列車的牽引、制動(dòng)與運(yùn)行[8]。
CBTC系統(tǒng)中車載設(shè)備需要接收來自于ATS系統(tǒng)、區(qū)域控制器ZC、計(jì)算機(jī)連鎖CI及地面信標(biāo)的信息,同時(shí)需要將處理的信息反饋給各系統(tǒng),其之間的邏輯關(guān)系非常復(fù)雜[9]??紤]到輸入條件相互組合會(huì)出現(xiàn)一些新的情況,檢查這些條件的組合相當(dāng)困難,所以在測試方法的選擇上需要考慮采用一種適合描述多條件組合,產(chǎn)生相對應(yīng)的多個(gè)動(dòng)作的形式來設(shè)計(jì)測試用例。這樣需要利用因果圖法對測試用例進(jìn)行設(shè)計(jì)。
因果圖模型主要包含因果圖結(jié)構(gòu)與參數(shù)兩個(gè)部分。其中因果圖結(jié)構(gòu)包含4部分,即中間事件、基本事件、邏輯門和連接事件。圖1為因果圖的理論示意圖。
圖1 因果圖理論示意圖
其中,X代表中間事件,指任何帶有原因的事件;B代表基本事件,指沒有原因或無需追究其原因的事件;G代表邏輯門,主要對輸入的原理進(jìn)行邏輯運(yùn)算。并得出相對應(yīng)的輸出事件;P代表連接事件,連接事件至始至終都指向中間事件。
判定表的生成是運(yùn)用因果圖法進(jìn)行設(shè)計(jì)測試案例的過程中至關(guān)重要的一個(gè)步驟,同時(shí)也是相對困難的事情。判定表由條件樁、行動(dòng)樁、條件條目與行動(dòng)條目4個(gè)部分組成。目前,很少有文獻(xiàn)給予一個(gè)非常明確清晰的轉(zhuǎn)化算法,所有的測試用例基本都是由工程實(shí)踐中得出。本文針對現(xiàn)有的一些轉(zhuǎn)化方法進(jìn)行研究,提出采用條件遍歷算法來對因果圖進(jìn)行轉(zhuǎn)化,其算法框架如圖2所示。
圖2 遍歷算法流程圖
通過上述方法,可以發(fā)現(xiàn)經(jīng)過一次次的條件遍歷,中間事件通過遍歷找出其產(chǎn)生的基本事件,最終可以得到由基本事件構(gòu)成的測試輸入數(shù)據(jù)。在執(zhí)行此算法時(shí),需要注意此算法針對單動(dòng)作輸出的情況進(jìn)行設(shè)計(jì)。如果遇到多動(dòng)作產(chǎn)生的情況,測試人員需要將各動(dòng)作的輸入條件進(jìn)行分析,找出各輸入條件的制約關(guān)系,對測試案例進(jìn)行設(shè)計(jì)。
車載設(shè)備作為CBTC系統(tǒng)中最為重要的部分,主要負(fù)責(zé)保護(hù)列車行駛安全、防止列車超速和防止列車進(jìn)入前車的運(yùn)行區(qū)間,對列車安全與列車的運(yùn)行效率起著極為重要的作用。由此可見,在列車運(yùn)營之前對車載設(shè)備的測試工作也顯得格外重要。本文選取有關(guān)ATP速度防護(hù)功能,結(jié)合研究的因果圖法測試案例的原理,對測試案例的生成進(jìn)行研究。
車載ATP速度防護(hù)主要包含兩個(gè)方面計(jì)算:觸發(fā)緊急制動(dòng)的速度計(jì)算和當(dāng)前推薦運(yùn)行速度計(jì)算。在列車行駛中,車載設(shè)備會(huì)實(shí)時(shí)地將以上兩個(gè)速度值反映在車載人機(jī)界面中,讓駕駛員可以實(shí)時(shí)地監(jiān)控列車的行駛速度。一旦列車超出當(dāng)前的推薦速度時(shí),車載設(shè)備會(huì)給予駕駛員警告信息。若此情況在規(guī)定時(shí)間內(nèi)消除,列車將繼續(xù)安全行駛;但此情況未能及時(shí)消除,列車的ATP功能將會(huì)啟動(dòng)緊急制動(dòng)以保護(hù)行車的安全。圖3為車載ATP防護(hù)的邏輯流程圖。
ATP速度防護(hù)系統(tǒng)功能的實(shí)現(xiàn)其實(shí)是一連串的系統(tǒng)動(dòng)作狀態(tài)的轉(zhuǎn)換,根據(jù)當(dāng)前系統(tǒng)的工作狀態(tài),結(jié)合變量的輸入輸出,根據(jù)工作流程,從現(xiàn)有的狀態(tài)轉(zhuǎn)為下一個(gè)工作的狀態(tài)?;谶@樣的工作流程模型,可以將被測的功能劃分為多種狀態(tài),狀態(tài)之間的轉(zhuǎn)換通過輸入的變量產(chǎn)生相對應(yīng)的動(dòng)作輸出。
在考慮輸入數(shù)據(jù)的取值方面需要將等價(jià)類的思想方法引入到設(shè)計(jì)當(dāng)中。將全部的輸入數(shù)據(jù)劃分為N個(gè)等價(jià)類。在每一個(gè)等價(jià)類中選用其中的一個(gè)數(shù)據(jù)作為測試的輸入數(shù)據(jù)。這樣可以用少量的數(shù)據(jù)取得較好的測試結(jié)果。根據(jù)以上對ATP速度防護(hù)系統(tǒng)流程的分析,可以將測試需要的輸入數(shù)據(jù)進(jìn)行定義。表1列出ATP速度防護(hù)系統(tǒng)中相關(guān)的變量的定義。
圖3 車載ATP防護(hù)邏輯流程圖
表1 ATP速度防護(hù)系統(tǒng)中相關(guān)的變量
在選取輸入數(shù)據(jù)取值時(shí),需要同時(shí)考慮到所有正常情況與異常情況下的數(shù)據(jù)輸入。要考慮滿足因果圖中各原因事件的“True”與“False”的關(guān)系。設(shè)計(jì)有效輸入,要確定使用的每一個(gè)有效類中的值;設(shè)計(jì)無效輸入,在等價(jià)類使用一個(gè)等價(jià)類作無效的輸入值,確保其他等價(jià)類為有效值的輸入。這樣考慮是從單缺陷進(jìn)行假設(shè)。當(dāng)然也可以從多缺陷進(jìn)行假設(shè),要實(shí)現(xiàn)這類測試需要大量冗余。
根據(jù)ATP速度防護(hù)的流程進(jìn)行遍歷,將一個(gè)整體的測試劃分為各類局部測試,最后將這些局部測試組合起來生成一個(gè)具體的測試方案。表2為在實(shí)際工程運(yùn)用的測試方案。
表2 測試方案表
在實(shí)際的測試中,僅僅靠幾次或者十幾次測試是不能有效地測試出系統(tǒng)功能的完整性和準(zhǔn)確性的。因此,測試人員需要反復(fù)地重復(fù)同一類測試多次。這樣就需要測試人員在測試后對進(jìn)行測試案例的數(shù)據(jù)結(jié)果進(jìn)行統(tǒng)計(jì)和驗(yàn)證,針對有缺陷的測試再次進(jìn)行反復(fù)測試。
在統(tǒng)計(jì)中,測試人員需要將測試劃分為測試案例的優(yōu)先級、預(yù)計(jì)測試的案例數(shù)量、完成測試的案例數(shù)量、實(shí)際測試的案例數(shù)量、通過測試的案例數(shù)量和未通過測試的案例數(shù)量等部分。
將統(tǒng)計(jì)的數(shù)據(jù)進(jìn)行整理,如表3所示。
表3 測試數(shù)據(jù)統(tǒng)計(jì)
將統(tǒng)計(jì)得到的數(shù)據(jù)表格轉(zhuǎn)化為圖表的格式,這樣測試人員可以直觀地發(fā)現(xiàn)出測試中所存在的問題,用來指導(dǎo)測試工作、調(diào)整測試,使得測試更加完備、準(zhǔn)確。
圖4 結(jié)果統(tǒng)計(jì)圖
從圖4的測試結(jié)果可以看出,測試人員經(jīng)過檢查分析可以及時(shí)發(fā)現(xiàn)測試中系統(tǒng)所存在的缺陷;并且針對這些缺陷對系統(tǒng)的影響,對測試案例進(jìn)行及時(shí)地調(diào)整與更新。
目前,我國城市軌道交通處于高速發(fā)展時(shí)期,CBTC系統(tǒng)被越來越多的軌道交通公司所應(yīng)用到實(shí)際工程建設(shè)中。這樣就需要一套完整、有效的測試方案對設(shè)備進(jìn)行測試,保證設(shè)備系統(tǒng)能夠正常地工作。本文針對車載設(shè)備的測試方法和具體的測試案例進(jìn)行研究,引入因果圖法并對其進(jìn)行改進(jìn)后提出車載設(shè)備測試方案,對車載ATP超速防護(hù)進(jìn)行測試實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,本文提出的測試方案切實(shí)有效,可以進(jìn)行推廣。
[1]向華.關(guān)于白盒測試基本方法的分析[J].江漢大學(xué)學(xué)報(bào),2003,31(1):38-41.
[2]徐杰,賈學(xué)祥.CBTC關(guān)鍵理論分析及北京地鐵4號線的應(yīng)用分析[J].鐵道通信信號,2010(46):44-46.
[3]付劍平,陸民燕.基于因果圖的軟件測試性影響因素分析[J].計(jì)算機(jī)應(yīng)用,2009,33(6):270-271.
[4]石慶喜,梁新元.因果圖的一種快速推理方法[J].計(jì)算機(jī)工程與應(yīng)用,2005(28):18-20.
[5]王立榮,何煒.基于因果圖的軟件測試方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(4):104-107.
[6]陳榮武,劉莉.基于CBTC的列車自動(dòng)駕駛控制算法[J].計(jì)算機(jī)應(yīng)用,2007,27(11):2649-2651.
[7]黃燕,姜林.因果圖與判定表組合生成測試用例的方法及其應(yīng)用[J].軟件導(dǎo)刊,2008,7(12):32-33.
[8]劉進(jìn),吳汶麒.軌道交通列車定位技術(shù)[J].城市軌道交通研究,2001,4(1):30-34.
[9]姜慶陽,盧佩玲,劉劍.CBTC移動(dòng)授權(quán)分配研究[J].中國鐵路,2010(4):76-78.
[10]唐抗尼,楊志杰,禹志陽.CTCS-3級列控系統(tǒng)的調(diào)試與試驗(yàn)[J].鐵道通信信號,2011(2):10-13.
[11]張勇,王超琦.CTCS-3級列控系統(tǒng)車載設(shè)備測試序列優(yōu)化生成方法[J].中國鐵道科學(xué),2011(3):100-106.