張雁鵬,梁春燕,謝迎鋒,張振海
基于IRM-COM的列車運行控制系統(tǒng)測試用例生成方法
張雁鵬1, 2,梁春燕1, 2,謝迎鋒3,張振海1, 2
(1. 蘭州交通大學 自動化與電氣工程學院,甘肅 蘭州 730070;2. 甘肅省人工智能與圖形圖像處理工程研究中心,甘肅 蘭州 730070;3. 北京全路通信信號研究設計院集團有限公司,北京 100070)
為驗證高速鐵路列車運行控制系統(tǒng)在多個故障發(fā)生時的安全性,針對系統(tǒng)故障降級場景,提出一種基于初始約簡矩陣—組合遺漏矩陣(IRM-COM)測試用例生成算法的故障組合注入方法。首先對故障類型進行矩陣形式化描述,然后形成故障注入組合測試表初始矩陣,最后生成測試用例表。仿真結(jié)果表明,該組合測試的故障檢測率比隨機測試和自適應隨機測試平均高10.2%,而且測試用例個數(shù)比自動高效測試用例生成器(AETG)和基于矩陣重復度的組合測試(CTboMRD)平均少13.4%,驗證了所提算法具有更強的約簡能力,提高了測試效率。
列車運行控制系統(tǒng);測試用例生成;組合測試;故障注入
隨著我國高速鐵路的快速發(fā)展,CTCS(Chinese Train Control System,中國鐵路列車運行控制系統(tǒng))作為監(jiān)督、控制和調(diào)整列車速度的技術裝備,其安全性至關重要,現(xiàn)場的復雜性和特殊性使CTCS冗余技術的驗證難以進行。列車運行控制系統(tǒng)仿真平臺是對CTCS的真實模擬,可以實現(xiàn)其安全性相關的測試[1]。仿真平臺的故障注入技術用于收集系統(tǒng)可靠性相關的信息,評價系統(tǒng)的安全防護設計水平[2],模擬CTCS現(xiàn)場故障產(chǎn)生,將有效的CTCS故障模式注入到系統(tǒng)中,分析系統(tǒng)響應,從而評價CTCS系統(tǒng)冗余技術的有效性。故障注入技術在國內(nèi)外研究中應用廣泛,蔡伯根等[3]通過故障注入四元組模型設計了基于HLA(high level architecture,高層體系結(jié)構(gòu))的列車運行控制系統(tǒng)仿真故障注入平臺,結(jié)果證明故障注入技術能夠?qū)崿F(xiàn)CTCS功能級別的測試。Azimi等[4]通過在圖形處理器通用計算中引入輻射引起的瞬時誤差來實現(xiàn)故障注入,與傳統(tǒng)的軟件緩解方案相比結(jié)果更加準確、有效。Mostowski[5]采用特定的測試工具實現(xiàn)了在工業(yè)和汽車鄰域故障模型中的故障用例測試,文中使用封裝了故障的待測系統(tǒng)模型比在進行測試時注入故障方便、容易。隨著單個故障注入技術的日漸成熟,多個故障的組合注入技術也得到了進一步的發(fā)展。伍振宇[6]設計了飛行管理系統(tǒng)容錯結(jié)構(gòu)的聯(lián)合故障注入算法,更多的故障出現(xiàn)在頂層計算機中,聯(lián)合故障注入的方法比單個故障注入能更有效地測試容錯性。和貴恒[7]利用多智能體仿真的安全分析方法通過構(gòu)建故障注入智能體,將故障組合注入到模型中,得出了和RBC(Radio Block Center,無線閉塞中心)切換場景相關的多個故障相互作用的風險耦合規(guī)則。綜上所述,目前針對列車運行控制仿真系統(tǒng)的故障注入技術通常只研究了基于簡單場景的單個故障的測試,但隨著系統(tǒng)復雜性的逐漸提高,系統(tǒng)事故一般不只是單個致因事件導致的,而是通過多個致因部件的相關失效機制相互作用共同導致的[8],因此,需要一種適合復雜測試場景的多個故障的組合測試方法來驗證系統(tǒng)的安全性。組合測試是軟件系統(tǒng)安全性測試的重要方法,稱為T-Way測試,是使用覆蓋表作為測試用例集[9],通過將測試用例集注入到待測系統(tǒng)中,引發(fā)系統(tǒng)故障,從而驗證系統(tǒng)對于并發(fā)故障的處理能力。本文通過對組合、隨機和自適應隨機測試的對比,證明組合測試更適用于CTCS仿真平臺的多個故障組合測試。因此,研究CTCS的故障組合注入問題最重要的研究內(nèi)容是生成覆蓋表,即故障注入組合測試用例表。本文提出了一種適用于CTCS故障降級場景故障注入的測試用例生成算法,通過對故障降級場景相關故障的分析得出故障注入組合測試元素表,并給故障類型設置故障注入代碼,將元素表用矩陣化的形式表示,得出故障注入組合測試用例表,最終用IRM-COM算法生成規(guī)模最小的測試用例表,最少的測試用例可以提高組合測試的效率。
我國鐵路現(xiàn)投入使用的CTCS分為4個等級(C0~C3),同一線路的不同區(qū)段上裝備2種及以上列車控制系統(tǒng)時,就會涉及到等級轉(zhuǎn)換。若地面、車載設備發(fā)生故障,CTCS將采取降級處理,來確保列車安全運行。本文主要研究因設備故障而降級的3類情況:
1) CTCS-3 (簡稱C3)因設備故障降為CTCS-2 (簡稱C2)。
CTCS降級可能由RBC,無線通信以及聯(lián)鎖等設備發(fā)生故障引起。比如,當RBC和它的備用系統(tǒng)同時故障,或者無線通信設備(含車載和地面設備)故障時,該RBC管轄范圍內(nèi)的列車將無法收到其發(fā)送的信息,當通信超時且列車實際速度在C2允許速度范圍內(nèi),C3自動轉(zhuǎn)為C2運行[10]。C3無線通信過程如圖1所示。
圖1 C3無線通信過程
2) C2因設備故障無法自動轉(zhuǎn)到C3 。
C3因故障降到C2后,列車嘗試轉(zhuǎn)換到C3,車載設備需要依次完成如下工作才能轉(zhuǎn)換到C3:
①車載設備與GSM-R(Global System for Mobile Communications-for Railway,鐵路數(shù)字移動通信系統(tǒng))無線網(wǎng)絡連接并注冊;
②當列車到達RBC連接點應答器組時,應答器組給列車發(fā)送建立連接的信息包;
③當列車收到信息后,經(jīng)過轉(zhuǎn)換預告點應答器組時,車載設備給RBC發(fā)進路和位置信息,接受轉(zhuǎn)換命令;
④在列車到達轉(zhuǎn)換執(zhí)行點應答器組,若達到C3條件,則自動轉(zhuǎn)到C3。
如果以上工作中的任意一步未完成,C2就不滿足轉(zhuǎn)為C3的條件,繼續(xù)保持C2控車[11]。C2轉(zhuǎn)為C3的示意圖如圖2所示。
圖2 C2轉(zhuǎn)換為C3示意圖
3) C2因故障降級。
當列車以C2運行時,有如下情況:
①列車前方軌道電路故障時,列車由完全監(jiān)控模式轉(zhuǎn)為目視行車模式;
②前方軌道電路掉碼且過4 s還未收到正常信息碼,則觸發(fā)常用制動;
③前方若干個應答器丟失,列車從完全監(jiān)控模式轉(zhuǎn)變?yōu)椴糠直O(jiān)控模式[12],繼續(xù)運行。
為了方便描述CTCS故障降級場景中設備的故障類型,從而實現(xiàn)故障注入,將故障類型矩陣形式化描述,引入IRM-COM測試用例生成算法,動態(tài)生成故障注入組合測試用例表。
由文獻[13?14]中的相關定義得出本文研究所涉及到的幾個定義。
其中:′和′分別為和的任一子集,模型中給定,利用關系求出最小測試用例集。
由表1得故障注入組合測試表矩陣描述:
由2.1中的5)和表1可得,故障注入組合測試表初始矩陣共有660個測試用例,包括了必須和冗余的測試用例,為提高故障注入組合測試的效率,需對矩陣約簡,以最少的測試用例最大程度覆蓋測試系統(tǒng)各個方面的因素。
表1 CTCS故障降級場景故障注入組合測試元素
定義矩陣為最終故障注入組合測試用例表,當故障注入組合測試表初始矩陣中第a行與矩陣中任意一行的元素在小于等于1(若為三因素,則小于等于2)個位置上對應相同,則a就屬于矩陣的一個測試用例。
根據(jù)CTCS故障降級場景中每個故障場景的故障個數(shù)不同,設1有個元素,2有個元素,3有個元素,則生成故障注入組合測試用例表矩陣的算法,即IRM-COM算法為:
1) 根據(jù)2.1生成矩陣,其中a,b,c的下標分別為1,2,3的第個元素。
2) 最終故障注入組合測試用例表矩陣。
由于每列元素個數(shù)的不同而存在組合遺漏情況,因此矩陣由初始約簡矩陣1和組合遺漏矩陣2共同組成:
①生成初始約簡矩陣1。
對1列元素,矩陣1中個元素按照矩陣的順序排列,其每個元素的數(shù)量最多為:
②生成組合遺漏矩陣2。
將矩陣1中包含0元素的全部行選出并放到矩陣中,得到組合遺漏項矩陣,將矩陣中各行進行互相擴充,得到組合遺漏矩陣2。例如生成矩陣1后,矩陣如下:
則通過擴充后,最終得到矩陣2為:
該仿真實驗依托蘭州交通大學“國家級軌道交通信息與控制虛擬仿真實驗教學中心”,利用京沈高速鐵路CTCS仿真平臺,結(jié)合現(xiàn)場線路數(shù)據(jù)和實際設備信息,實現(xiàn)了隨機、自適應隨機數(shù)生成算法以及IRM-COM測試用例生成算法,并在京沈高速鐵路CTCS仿真平臺上進行測試用例生成試驗。該系統(tǒng)利用虛擬機實現(xiàn)與運行環(huán)境的隔離,使用TCP/IP協(xié)議進行通信,利用數(shù)據(jù)采集器實現(xiàn)數(shù)據(jù)采集并發(fā)送到服務器。針對表2和表3的覆蓋表規(guī)模,利用不同的方法生成測試用例,并進行對比。
表2 待測系統(tǒng)CAi最好的2-way
組合覆蓋率可以科學地衡量一個測試用例集的故障檢測能力,可以為質(zhì)量評估提供重要的依 據(jù)[16],測試用例集的組合覆蓋率表示為:
設為SUT的一個測試用例集,τ表示覆蓋強度,n表示參數(shù)個數(shù),m表示測試用例個數(shù),表示T中包含的τ值模式集合,ti(τ)表示ti中包含所有τ值模式的集合,SUT(τ)表示SUT中包含的應該檢測τ值模式的集合,本文選擇2-way值模式。因此,覆蓋2-way值模式越多,c(τ)越大,則測試用例的故障檢測能力越強。通過3種測試方法生成的測試用例集,分別計算c(τ),組合覆蓋率結(jié)果對比如圖3所示。
由圖3可得3種測試方法生成相同用例個數(shù)后計算得到的組合覆蓋率,計算他們的平均組合覆蓋率分別是:隨機測試為0.83、自適應隨機測試為0.87、組合測試為0.97,0.97>0.87>0.83。結(jié)果表明,組合測試的組合覆蓋率大于其他2種方法,因此組合測試的故障檢測能力更強。
組合分散度是另一種評估測試用例集質(zhì)量的依據(jù),測試用例集的分散度為:
由圖4可得,3種測試方法生成相同用例個數(shù)后計算得到的組合分散度,計算他們的平均組合分散度分別是:隨機測試為0.47,自適應隨機測試為0.49,組合測試為0.56,由于0.56>0.49>0.47,組合測試的組合分散度大于其他2種。因此,本文提出的故障注入組合測試用例表的故障檢測能力優(yōu)于文獻[7]中多個故障的隨機測試,更適用于CTCS故障降級場景的故障注入測試。
圖4 3種方法組合分散度比較
本文搜集了可以生成組合測試用例的AETG算法和文獻[17]中的CTboMRD算法,針對表3中的6個待測系統(tǒng),3種算法生成的測試用例個數(shù)對比結(jié)果如圖5所示。
表3 待測系統(tǒng)用例規(guī)模
由表3可見,待測系統(tǒng)1,2,3的用例集規(guī)模為水平覆蓋表,即每個測試方面的元素個數(shù)相同,而待測系統(tǒng)4,5,6的用例集規(guī)模為混合覆蓋表,每個測試方面測試元素個數(shù)不同,由于CTCS故障降級場景每個方面的故障類型個數(shù)也不相同,因此,CTCS故障降級場景測試用例規(guī)模情況與待測系統(tǒng)4,5,6相同。
由圖5的試驗結(jié)果可得,本文提出的IRM-COM算法雖然在1,2,3中測試用例個數(shù)不是最少的,但在待測系統(tǒng)4,5,6中IRM-COM算法生成的測試用例個數(shù)分別比CTboMRD算法少9.5%,13.3%和14.3%,比AETG算法少26.9%,7.1%和9%。由試驗結(jié)果分析可得,IRM-COM算法生成的測試用例個數(shù)比CTboMRD算法和AETG算法都少,更適用于用例集規(guī)模為混合覆蓋表的CTCS故障降級場景測試用例的生成。
圖5 測試用例個數(shù)比較
本文提出的IRM-COM算法可以實現(xiàn)對測試元素個數(shù)不相同的測試用例的約簡,并且約簡效果優(yōu)于另外2種算法,因此更適用于CTCS故障注入組合測試用例表的生成。
1)本文通過對CTCS故障降級場景的故障類型進行矩陣形式化描述,形成故障注入組合測試表初始矩陣,再通過IRM-COM算法生成測試用例表,矩陣形式化的應用能更有效地表示復雜場景多個故障的組合情況。
2)通過利用組合測試的IRM-COM算法以及隨機測試、自適應隨機測試相關算法生成相同個數(shù)的測試用例,分別計算它們的組合覆蓋率和組合分散性,通過對比得出組合測試的故障檢測能力比其他2種平均高約10.2%,因此,本文提出的基于組合測試的故障組合注入方法比之前的單個故障注入能更有效地實現(xiàn)系統(tǒng)故障的檢測能力。
3) IRM-COM算法通過生成初始約簡矩陣1和組合遺漏矩陣2,從而得到故障注入組合測試用例表矩陣,在各個階段故障類型不同的情況下,IRM-COM算法生成的用例個數(shù)比CTboMRD算法和AETG算法平均低13.4%,因此,本文提出的算法更適用于CTCS復雜故障場景故障注入組合測試用例生成的實際情況。
4)本文提出了對CTCS故障降級場景故障注入測試用例生成方法的新認識,并且提出的IRM-COM算法更加貼近CTCS組合測試用例生成的實際情況,對CTCS相關功能的安全性驗證具有一定的參考意義。
[1] 劉雨, 陳建球, 龐彥知, 等. 基于元模型的通用性列控仿真平臺基礎環(huán)境研究[J]. 鐵道學報, 2018, 40(5): 82?89. LIU Yu, CHEN Jianqiu, PANG Yanzhi, et al. Research on basic operation environment of general train control simulation system based on meta model[J]. Journal of the China Railway Society, 2018, 40(5): 82?89.
[2] Kim M C, Seo J, Jung W, et al. Evaluation of effectiveness of fault-tolerant techniques in a digital instrumentation and control system with a fault injection experiment[J]. Journal of Nuclear Engineering and Technology,,2019, 51(3): 692?701.
[3] 蔡伯根, 尹青, 上官偉, 等. 列車運行控制系統(tǒng)仿真故障注入方法研究[J]. 鐵道學報, 2014, 36(6): 55?60. CAI Bogen, YIN Qing, SHANGGUAN Wei, et al. Research on fault injection method for train operation control system simulation[J]. Journal of the China Railway Society, 2014, 36(6): 55?60.
[4] Azimi S, DU B, Sterpone L. Evaluation of transient errors in GPGPUs for safety critical applications: An effective simulation-based fault injection environment[J]. Journal of Systems Architecture, 2017, 75(4): 95?106.
[5] Mostowski W. Model-based fault injection for testing gray-box systems[J]. Journal of Logical and Algebraic Methods in Programming, 2019, 103(2): 31?45.
[6] 伍振宇. 基于虛擬飛管系統(tǒng)的故障注入子系統(tǒng)的設計與實現(xiàn)[D]. 成都: 電子科技大學, 2017. WU Zhenyu. Design and implementation of fault injection subsystem based on virtual flight management system[D]. Chengdu:University of Electronic Science and Technology of China, 2017.
[7] 和貴恒. 復雜交互作用下RBC切換場景風險耦合分析方法研究[D]. 成都: 西南交通大學, 2018. HE Guiheng. Research on risk coupling analysis method for RBC handover under complex interaction[D]. Chengdu: Southwest Jiaotong University, 2018.
[8] Blancke O, Tahan A, Komljenovic D, et al. A holistic multi-failure mode prognosis approach for complex equipment[J]. Journal of Reliability Engineering & System Safety, 2018, 180(12): 136?151.
[9] Sabharwal S, Aggarwal M. A novel approach for deriving interactions for combinatorial testing[J]. International Journal of Engineering Science and Technology, 2017, 20(1): 59?71.
[10] TB/T 3530?2018, CTCS?3級列車運行控制系統(tǒng)系統(tǒng)需求規(guī)范[S]. TB/T 3530?2018, System requirements specification for CTCS?3 train control system[S].
[11] 董健, 戴勝華. 基于CPN的列控系統(tǒng)等級轉(zhuǎn)換建模與分析[J]. 計算機工程與應用, 2018, 54(2): 208?213. DONG Jian, DAI Shenghua. Modeling and analysis of grade conversion of train control system based on CPN[J]. Computer Engineering and Application, 2018, 54(2): 208?213.
[12] TB/T 3516?2018, CTCS?2級列控系統(tǒng)總體技術要求[S]. TB/T3516?2018, General technical specification for CTCS?2 train control system[S].
[13] Esfandyari S, Rafe V. A tuned version of genetic algorithm for efficient test suite generation in interactive t-way testing strategy[J]. Journal of Information and Software Technology, 2018, 94(2): 165?185.
[14] 聶長海. 組合測試[M]. 北京: 科學出版社, 2015. NIE Changhai. Combinatorial testing[M]. Beijing: Science Press, 2015.
[15] 王燕, 聶長海, 鈕鑫濤, 等. 覆蓋表生成的禁忌搜索算法[J].軟件學報, 2018, 29(12): 3665?3691. WANG Yan, NIE Changhai, NIU Xintao, et al. Tabu search in covering array generation[J]. Journal of Software, 2018, 29 (12): 3665?3691.
[16] Alves E L G, Massoni T, Patrícia Duarte de Lima Machado. Test coverage of impacted code elements for detecting refactoring faults: An exploratory study[J]. Journal of Systems & Software, 2017, 123(1): 223?238.
[17] 陳錦富, 蘇晨飛, 趙小磊, 等. 基于矩陣重復度的組合測試方法及其試驗分析[J]. 江蘇大學學報(自然科學版), 2016, 37(1): 67?73. CHEN Jinfu, SU Chenfei, ZHAO Xiaolei, et al. Combinatorial testing approach and experiment based on matrix repeat degree[J]. Journal of Jiangsu University (Natural Science Edition), 2016, 37(1): 67?73.
A method of test case generation based on IRM-COM for train control system
ZHANG Yanpeng1, 2, LIANG Chunyan1, 2, XIE Yingfeng3, ZHANG Zhenhai1, 2
(1. School of Automation & Electrical Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China;2. Gansu Provincial Engineering Research Center for Artificial Intelligence and Graphics & Image Processing, Lanzhou 730070, China;3. CRSC Research & Design Institute Group Co., Ltd., China Railway Signal & Communication Co., Ltd, Beijing 100070, China)
In order to verify the safety of CTCS for high-speed railway when multiple faults occur, a method of combinatorial fault injection based on the algorithm of test case generation of Initial Reduction Matrix and Combined Omission Matrix (IRM-COM) was proposed for the scenarios of fault degradation. After the description of matrix formalization for fault types, the initial test tables of combinatorial fault injection were formed to generate the test cases. The simulation results show the fault detection rate of the proposed test is 10.2% higher than that of the random test and the adaptive random test. And the number of test cases is 13.4% less than that of Automatic Efficient Test Generator (AETG) and Combinatorial Testing based on Matrix Repeat Degree (CTboMRD). The results prove that the proposed algorithm has stronger ability of reduction and can improve the test efficiency.
Chinese Train Control System (CTCS); test case generation; combinatorial test; fault injection
10.19713/j.cnki.43?1423/u.T20190928
U284.48
A
1672 ? 7029(2020)07 ? 1817 ? 08
2019?10?22
國家自然科學基金資助項目(61763025);甘肅省自然科學基金資助項目(18JR3RA106);教育部創(chuàng)新團隊發(fā)展計劃項目(IRT_16836)
張雁鵬(1980?),男,山西朔州人,副教授,博士,從事軌道交通列車控制的研究;E?mail:lanzhouzyp@126.com
(編輯 陽麗霞)