国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

城軌交通全自動(dòng)運(yùn)行系統(tǒng)組合測試用例生成方法

2023-11-21 10:00:08孫可心劉傳剛冉怡明李任宇
鐵道通信信號 2023年11期
關(guān)鍵詞:自動(dòng)機(jī)測試用例手柄

陳 爭,孫可心,劉傳剛,冉怡明,李任宇

全自動(dòng)運(yùn)行(Fully Automatic Operation,F(xiàn)AO)系統(tǒng)是基于計(jì)算機(jī)、通信、控制和系統(tǒng)集成等技術(shù),實(shí)現(xiàn)列車運(yùn)行全過程自動(dòng)化的新一代城市軌道交通系統(tǒng),不需要配置列車司機(jī),能夠有效地保證運(yùn)行安全,提高運(yùn)行效率,降低運(yùn)營成本,增強(qiáng)對客流變化的響應(yīng)能力[1]。

近年來,隨著車輛、信號、通信和綜合監(jiān)控等核心專業(yè)自動(dòng)化水平的不斷提高,F(xiàn)AO 系統(tǒng)已經(jīng)在我國大中城市的軌道交通中進(jìn)入了實(shí)際應(yīng)用階段,代表了智慧城軌的重要發(fā)展方向。相比較傳統(tǒng)的地鐵列車控制系統(tǒng),F(xiàn)AO 系統(tǒng)對可靠性、可用性、維修性、安全性指標(biāo)提出了更高要求,因此在投入運(yùn)營前需要進(jìn)行全面測試,而覆蓋全面的測試用例對保證全自動(dòng)運(yùn)行系統(tǒng)測試的完備性具有重要意義。

目前,F(xiàn)AO 系統(tǒng)的研究主要集中在系統(tǒng)方案設(shè)計(jì)、優(yōu)化和仿真平臺(tái)方面。如:文獻(xiàn)[2]從FAO 系統(tǒng)的運(yùn)營需求出發(fā),提出一套滿足全自動(dòng)運(yùn)行過程中清客控制管理的設(shè)計(jì)方案;文獻(xiàn)[3]研究FAO 系統(tǒng)場景驗(yàn)證平臺(tái),能夠在系統(tǒng)建設(shè)初期優(yōu)化場景設(shè)計(jì),指導(dǎo)功能開發(fā);文獻(xiàn)[4]對全自動(dòng)運(yùn)營場景進(jìn)行梳理,研究不同運(yùn)營場景對車輛、信號、通信和綜合監(jiān)控等關(guān)鍵裝備的功能需求及接口關(guān)系,為工程設(shè)計(jì)人員提供參考;文獻(xiàn)[5]研究正線休眠喚醒區(qū)域全覆蓋的設(shè)計(jì)要點(diǎn)和運(yùn)營效益,并提出相關(guān)的操作建議;文獻(xiàn)[6]將基于數(shù)據(jù)驅(qū)動(dòng)的測試方法引入到FAO 系統(tǒng)的測試中,簡化測試平臺(tái)的搭建,提高測試的有效性和完備性;文獻(xiàn)[7-8]研究FAO 系統(tǒng)典型運(yùn)營場景,提取功能與性能的需求,構(gòu)建時(shí)間自動(dòng)機(jī)網(wǎng)絡(luò)模型,并驗(yàn)證其功能屬性、性能屬性和安全屬性,為系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)奠定基礎(chǔ);文獻(xiàn)[9]研究FAO系統(tǒng)的互聯(lián)互通特點(diǎn),構(gòu)建適合互聯(lián)互通的FAO 系統(tǒng)測試環(huán)境,提出完備的互聯(lián)互通測試方案;文獻(xiàn)[10]研究全自動(dòng)運(yùn)行外場測試的功能需求和選址條件,提出不同條件下的測試方案;文獻(xiàn)[11]基于仿真測試平臺(tái),對全自動(dòng)無人駕駛系統(tǒng)的關(guān)鍵場景進(jìn)行分析,探討室內(nèi)仿真測試方案,并在上海軌道交通全自動(dòng)無人駕駛18號線和15號線進(jìn)行了應(yīng)用。

組合測試是檢測系統(tǒng)各種交互組合的測試?yán)碚摗=陙?,該理論在軌道交通領(lǐng)域的測試中得到了深入的研究和廣泛應(yīng)用,如文獻(xiàn)[12-14]在高鐵信號系統(tǒng)的測試中引入了組合測試技術(shù)。本文基于時(shí)間自動(dòng)機(jī)建模方法和組合測試?yán)碚?,提出FAO 系統(tǒng)的組合測試用例生成方法,對保證FAO系統(tǒng)測試的全面性和完備性具有重要意義。

1 時(shí)間自動(dòng)機(jī)

時(shí)間自動(dòng)機(jī)(Timed Automata,TA)由Stanford大學(xué)的Rajeev Alur和David Dill于20世紀(jì)90年代提出。時(shí)間自動(dòng)機(jī)對有限自動(dòng)機(jī)進(jìn)行擴(kuò)展,使用時(shí)鐘變量表示有時(shí)間約束的狀態(tài)轉(zhuǎn)換關(guān)系,從而可以處理實(shí)時(shí)系統(tǒng)[15]。由Aalborg 大學(xué)和Uppsala 大學(xué)在1995年聯(lián)合研發(fā)的基于時(shí)間自動(dòng)機(jī)的實(shí)時(shí)系統(tǒng)模擬和驗(yàn)證工具UPPAAL,能夠?qū)?shí)時(shí)系統(tǒng)進(jìn)行建模、仿真、驗(yàn)證和生成測試用例,具有高效、簡便的特點(diǎn)[16]。UPPAAL 對時(shí)間自動(dòng)機(jī)理論進(jìn)行了擴(kuò)展,增加了int 變量、bool 變量、廣播通道(broadcast chan)等元素[17]。

定義1時(shí)間自動(dòng)機(jī)。TA 是一個(gè)六元組<L,B,C,V,E,I>,其中:L是狀態(tài)的集合,l0?L為初始狀態(tài);B為通道集合;C為時(shí)鐘變量集合,V為有界整型變量集合,設(shè)Φ(C,V)為條件表達(dá)式的集合,R(C,V)為所有時(shí)鐘變量的重置操作和整型變量賦值操作的集合;E為邊的集合,E?L×B?!×Φ(C,V)×R(C,V)×L;B?!為操作集合,B?!={a?|a∈B}∪{a!|a∈B};元素 (l,α,φ,γ,l')∈E描述了一條從狀態(tài)l到狀態(tài)l'的邊,其中α為邊上的操作,φ為轉(zhuǎn)移條件,γ為重置操作或賦值操作;I:L→Φ(C,V)表示狀態(tài)上的時(shí)間不變式。

定義2路徑。設(shè)l,l'∈L,TA 的一條路徑p是一個(gè)邊的序列:p=(l,α1,φ1,γ1,l1) ;(l1,α2,φ2,γ2,l2) ;……;(ln-1,αn,φn,γn,l')。

此時(shí),稱l通過路徑p可以到達(dá)l',簡稱l'從l可達(dá)。

UPPAAL 包括系統(tǒng)編輯器、模擬器、驗(yàn)證器和測試用例生成器(Yggdrasil)等模塊。其中,系統(tǒng)編輯器用于創(chuàng)建和編輯TA 模型,Yggdrasil以邊覆蓋為覆蓋準(zhǔn)則,提供序列文件(Query File)、深度搜索(Depth Search)和單步(Single Step)3 種方法,自動(dòng)從TA模型生成測試路徑[18]。

2 組合測試

作為系統(tǒng)安全性測試中的一種重要測試方法,組合測試圍繞系統(tǒng)輸入域的交互組合,在保證組合覆蓋的前提下,對系統(tǒng)實(shí)施高效、完備的測試。通常,組合測試重點(diǎn)檢測系統(tǒng)因各種交互組合而造成的系統(tǒng)故障[19]。

組合測試主要包括組合測試建模、測試用例生成、測試執(zhí)行、錯(cuò)誤定位和結(jié)果評估等步驟,見圖1。其中組合測試建模是根據(jù)被測系統(tǒng)的需求規(guī)格,辨識(shí)系統(tǒng)的輸入?yún)?shù)及其取值,確定約束條件,構(gòu)建系統(tǒng)的輸入模型;測試用例生成是根據(jù)構(gòu)建的輸入模型,利用各種組合測試用例生成方法,構(gòu)造被測系統(tǒng)的組合測試用例集。

圖1 組合測試主要步驟

定義3t-維組合覆蓋。對于路徑p及其序列集T,給定組合強(qiáng)度t(t≤|p|),對于p的任意t-事件組合的任一t-值模式π,若T中都至少存在一條測試序列覆蓋π,那么T滿足t-維組合覆蓋,稱T為p的t-維組合測試用例集,簡稱t-維測試用例集。

t-維組合覆蓋通過構(gòu)造測試用例集,對被測系統(tǒng)任意t個(gè)輸入?yún)?shù)之間所有的交互取值組合至少覆蓋1次。假設(shè)某系統(tǒng)包括a,b,c3個(gè)輸入變量,每個(gè)輸入變量均包括2個(gè)取值,0和1,則全組合需要執(zhí)行2×2×2=8次測試。若采用組合測試,選用2-維組合覆蓋,應(yīng)用組合測試用例生成工具ACTS共生成4 條測試用例,即可完全覆蓋a,b,c中任意2個(gè)變量的取值組合,組合測試用例見表1。

表1 組合測試用例

3 全自動(dòng)運(yùn)行系統(tǒng)組合測試用例生成

通常采用UPPAAL 對FAO 系統(tǒng)進(jìn)行測試建模時(shí),主要是利用int、bool 和chan 等類型描述系統(tǒng)的功能流程,并依據(jù)TA 模型生成測試路徑,重點(diǎn)關(guān)注系統(tǒng)的功能邏輯。在實(shí)際執(zhí)行測試時(shí),需要提取測試路徑上信號或變量描述的具體工況,進(jìn)而將測試路徑實(shí)例化為具體的操作或測試數(shù)據(jù)。由于FAO 系統(tǒng)功能復(fù)雜,測試路徑通常為一系列的操作流程,涉及多個(gè)變量,每個(gè)變量代表的具體工況可能為1 個(gè)或多個(gè),如模式轉(zhuǎn)換,方向手柄和制動(dòng)手柄在“0位”或“非0位”等,因此為對FAO 系統(tǒng)進(jìn)行全面測試,需要覆蓋測試流程中變量值的各種組合,即:

測試需求= {(方向手柄0 位,制動(dòng)手柄0位),(方向手柄0 位,制動(dòng)手柄非0 位),(方向手柄非0 位,制動(dòng)手柄0 位),(方向手柄非0 位,制動(dòng)手柄非0位)}。

由于對所有組合情況全部進(jìn)行測試,在測試時(shí)間和測試開銷方面是不實(shí)際的,而組合測試技術(shù)可以在保障變量組合覆蓋的基礎(chǔ)上,大大降低測試用例數(shù)量,提高測試效率,因此結(jié)合FAO 系統(tǒng)的TA 建模流程和組合測試?yán)碚摚岢鯢AO 系統(tǒng)組合測試用例生成方法。

FAO系統(tǒng)組合測試用例生成流程見圖2,包括時(shí)間自動(dòng)機(jī)建模、基于時(shí)間自動(dòng)機(jī)模型的測試路徑生成和組合測試用例生成3個(gè)階段。

圖2 FAO系統(tǒng)組合測試用例生成流程

1)時(shí)間自動(dòng)機(jī)建模。首先,基于FAO系統(tǒng)的需求規(guī)范,依據(jù)時(shí)間自動(dòng)機(jī)語法,采用UPPAAL建立TA 模型;然后,采用UPPAAL 提供的仿真模擬和形式化驗(yàn)證技術(shù),檢測模型的正確性,如果模型不正確,則根據(jù)仿真和驗(yàn)證結(jié)果修正模型。

2)測試路徑生成。利用Yggdrasil 提供的測試路徑生成方法,結(jié)合形式化驗(yàn)證的性質(zhì)文件,利用Query File、Depth Search 和Single Step 3 種方法,自動(dòng)生成FAO系統(tǒng)的測試路徑。

3)組合測試用例生成。首先,提取TA 模型中的chan 和變量,基于FAO 系統(tǒng)的需求規(guī)范,采用輸入域建模理論[20],對chan 和變量的輸入空間進(jìn)行劃分,提取chan 和變量在測試執(zhí)行中代表的工況,作為組合測試的輸入?yún)?shù)值;然后,結(jié)合生成的測試路徑,采用組合測試算法或工具,生成FAO系統(tǒng)的組合測試用例。

下面以FAO 系統(tǒng)的喚醒場景為例,介紹FAO系統(tǒng)組合測試用例的生成過程。

4 喚醒場景組合測試用例生成

4.1 喚醒場景功能邏輯

列車在投入運(yùn)營前,F(xiàn)AO 系統(tǒng)需要進(jìn)行喚醒,激活列車,并對列車的實(shí)際情況進(jìn)行檢查,達(dá)到故障預(yù)警、緩解日常運(yùn)維對人力的需求、提高FAO系統(tǒng)運(yùn)維效率的目的。

行車綜合自動(dòng)化系統(tǒng)根據(jù)運(yùn)行時(shí)刻表,提前喚醒即將投入運(yùn)營的車輛;車載收到喚醒命令后,車載控制器(Vehicle On Board Controller,VOBC)和車輛進(jìn)行上電自檢。如果自檢成功,列車滿足靜態(tài)、動(dòng)態(tài)測試條件,則由VOBC 發(fā)起、車輛配合,進(jìn)行列車靜態(tài)、動(dòng)態(tài)測試;如果測試成功,VOBC將向行車綜合自動(dòng)化系統(tǒng)匯報(bào)喚醒成功。如果自檢失敗或不滿足測試條件,將不進(jìn)行列車靜態(tài)和動(dòng)態(tài)測試,列車喚醒失?。?1]。FAO 系統(tǒng)喚醒功能動(dòng)態(tài)測試序列見圖3。

圖3 喚醒功能動(dòng)態(tài)測試序列

1)FAO 系統(tǒng)接收到列車喚醒命令,由列車自動(dòng)防護(hù)系統(tǒng)(Automatic Train Protection,ATP)檢查列車預(yù)設(shè)最高駕駛模式為FAO 模式、車輛方向手柄設(shè)在0 位、車輛牽引制動(dòng)手柄在0 位、VOBC 頭尾通信正常、司機(jī)鑰匙在關(guān)閉位、檢修按鈕在非檢修位等條件滿足后,系統(tǒng)按預(yù)設(shè)的順序選擇駕駛端,進(jìn)行靜態(tài)測試。

2) 靜態(tài)測試完成后,ATP 通過列車自動(dòng)駕駛系統(tǒng)(Automatic Train Operation,ATO)向列車控制和管理系統(tǒng)(Train Control and Management System,TCMS)發(fā)送預(yù)設(shè)時(shí)長的鳴笛指令,車輛進(jìn)行鳴笛操作,提醒庫內(nèi)工作人員。

3) ATP向ATO發(fā)送向前跳躍指令,ATO判斷滿足動(dòng)態(tài)測試條件,向ATP 發(fā)送帶方向的跳躍指令。該指令通過輔助駕駛單元(Assistant Operation Module,AOM)傳輸給車輛,車輛收到帶方向的跳躍指令后,執(zhí)行動(dòng)態(tài)測試準(zhǔn)備,通過TCMS 向ATO 發(fā)送跳躍反饋指令;ATO 收到跳躍反饋指令后,向車輛輸出預(yù)設(shè)時(shí)長和大小的牽引。ATO 檢測到車輛處于零速狀態(tài)后,向ATP 發(fā)送跳躍完成標(biāo)志。

4) ATP 向ATO 發(fā)送向后跳躍指令,系統(tǒng)處理流程與向前跳躍類似。

5) ATP 接收到跳躍完成標(biāo)志后,判定完成本端動(dòng)態(tài)測試,進(jìn)行自動(dòng)換端操作,在另一端進(jìn)行靜態(tài)測試和動(dòng)態(tài)測試。當(dāng)兩端的靜態(tài)、動(dòng)態(tài)測試均通過后,ATP向控制中心匯報(bào)喚醒完成。

向前跳躍和向后跳躍的過程中,ATP 監(jiān)督列車跳躍過程中的速度、加速度和跳躍距離,若任一項(xiàng)超過預(yù)定義值,ATP 判斷跳躍異常,輸出緊急制動(dòng);若在規(guī)定時(shí)間內(nèi)未收到ATO 的跳躍完成指令,則認(rèn)為跳躍失敗。

4.2 喚醒場景時(shí)間自動(dòng)機(jī)建模

FAO 系統(tǒng)列車喚醒功能時(shí)間自動(dòng)機(jī)模型見圖4,記為AwakeTA,包括ATP 模型(ATPTA)、ATO 模型(ATOTA)、AOM 模型(AOMTA)、TCMS模型(TCMSTA)和列車模型(TrainTA)5個(gè)部分,即AwakeTA為這5個(gè)時(shí)間自動(dòng)機(jī)模型的積

圖4 全自動(dòng)運(yùn)行系統(tǒng)列車喚醒功能時(shí)間自動(dòng)機(jī)模型

AwakeTA包括61個(gè)節(jié)點(diǎn)、83條邊、31個(gè)broadcast chan、10 個(gè)int 變量和1 個(gè)時(shí)鐘變量,主要broadcast chan的含義見表2。

表2 AwakeTA主要broadcast chan含義

1)ATPTA模型描述ATP 與ATO、AOM 之間的交互信息,包括發(fā)送鳴笛、向前跳躍、向后跳躍等指令,接收并發(fā)送帶方向的跳躍指令和接收跳躍完成標(biāo)志。

2)ATOTA模型描述ATO 接收ATP 和TCMS的信息,運(yùn)算后進(jìn)行響應(yīng)的過程。

3)AOMTA模型描述AOM 與ATP、車輛的交互信息,AOM接收由ATP發(fā)來的帶方向的跳躍指令,并轉(zhuǎn)發(fā)給車輛。

4)TCMSTA模型描述TCMS與ATO、車輛的交互信息,TCMS 接收來自車輛的跳躍反饋指令,并轉(zhuǎn)發(fā)給ATO。

5)TrainTA模型描述車輛與AOM、TCMS 之間的交互信息,車輛接收到由AOM 發(fā)來的帶方向的跳躍指令后,將跳躍反饋指令發(fā)送給TCMS。

AwakeTA喚醒過程中包括靜態(tài)測試前的設(shè)備狀態(tài)條件不滿足、自檢失敗、向前跳躍異常、向后跳躍異常和跳躍超時(shí)5 類故障。AwakeTA檢測到異常后,發(fā)送喚醒失敗,結(jié)束喚醒操作。

4.3 喚醒場景測試路徑生成

采用Yggdrasil提供的Query File、Depth Search和Single Step 3 種測試路徑生成方法,結(jié)合文獻(xiàn)[18]提出的測試路徑生成算法,對AwakeTA一共生成14條測試路徑,其中Query File生成測試路徑8 條,Depth Search 生成測試路徑1 條,Single Step生成測試路徑5 條,節(jié)點(diǎn)覆蓋率和邊覆蓋率均為100%。

以向前跳躍失敗為例,在AwakeTA的14 條測試路徑中,包括2條相關(guān)的測試路徑。

1) 測試路徑p1:接收喚醒命令后,F(xiàn)AO系統(tǒng)自檢成功,選擇激活端,進(jìn)行向前跳躍,跳躍存在異常。

2) 測試路徑p2:接收喚醒命令后,F(xiàn)AO系統(tǒng)自檢成功,選擇激活端,進(jìn)行向前跳躍,跳躍成功;繼續(xù)向后跳躍,跳躍成功;列車切換激活端,進(jìn)行向前跳躍,但跳躍異常。

以測試路徑p1為例,其通過ATPTA模型的狀態(tài)為Init → WakeUp → ConPass → Header →Ready → MDing → ReadyJog → ForJog → For-Temp1 → ForJog_Fail。

4.4 喚醒場景組合測試用例生成

結(jié)合FAO 系統(tǒng)的需求規(guī)范,對AwakeTA模型中broadcast chan、int 變量和時(shí)鐘變量進(jìn)行輸入域建模。以向前跳躍失敗為例,組合測試用例生成過程如下。

向前跳躍失敗涉及時(shí)鐘變量x,以及GetHeader 和ForJogFail 2 個(gè)broadcast chan。結(jié)合測試經(jīng)驗(yàn),時(shí)鐘變量x選取k1、k2 2 個(gè)時(shí)間值,broadcast chan 的輸入域建模見表3。選用2-維組合覆蓋,采用ACTS 組合測試用例生成工具,利用內(nèi)置的IPOG 算法,結(jié)合向前跳躍失敗的2 條測試路徑,一共生成6 條組合測試用例,覆蓋系統(tǒng)任意2 個(gè)輸入之間的組合,見表4。

表3 向前跳躍失敗broadcast chan輸入域建模

表4 向前跳躍失敗組合測試用例

以第1 條組合測試用例為例,其測試過程為:接收喚醒命令后,自檢成功,F(xiàn)AO 系統(tǒng)選擇前端為激活端,進(jìn)行向前跳躍,跳躍時(shí)間為k2,滿足跳躍時(shí)間約束,但跳躍距離異常。

通過FAO 系統(tǒng)測試用例生成算法,AwakeTA模型一共生成35 條組合測試用例,主要的測試用例統(tǒng)計(jì)見表5。

表5 全自動(dòng)運(yùn)行系統(tǒng)主要的組合測試用例統(tǒng)計(jì)

基于Yggdrasil的測試用例生成機(jī)制,AwakeTA的測試用例覆蓋了模型中所有的節(jié)點(diǎn)和邊;同時(shí),基于ACTS 的IPOG 等算法,覆蓋了模型中任意2 個(gè)輸入之間的組合,提升了FAO 系統(tǒng)測試用例的全面性和完備程度。

5 結(jié)論

本文提出FAO系統(tǒng)的組合測試用例生成方法,首先采用時(shí)間自動(dòng)機(jī)理論對FAO 系統(tǒng)進(jìn)行建模;然后基于時(shí)間自動(dòng)機(jī)模型生成測試路徑,結(jié)合輸入域建模方法提取測試模型描述的系統(tǒng)工況;最后結(jié)合組合測試?yán)碚?,自?dòng)生成組合測試用例。以喚醒功能為例,采用UPPAAL 建立喚醒功能的時(shí)間自動(dòng)機(jī)模型,利用Yggdrasil 插件生成喚醒功能的測試路徑,并利用ACTS 采用2-維組合覆蓋生成組合測試用例。結(jié)果表明,測試用例100%覆蓋時(shí)間自動(dòng)機(jī)模型的節(jié)點(diǎn)和邊,同時(shí)覆蓋系統(tǒng)任意2 個(gè)輸入之間的組合,對于FAO 系統(tǒng)測試的研究具有一定的參考價(jià)值。

猜你喜歡
自動(dòng)機(jī)測試用例手柄
{1,3,5}-{1,4,5}問題與鄰居自動(dòng)機(jī)
基于PLC控制的手柄座鉆孔攻絲一體機(jī)的研發(fā)
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
一種基于模糊細(xì)胞自動(dòng)機(jī)的新型疏散模型
基于混合遺傳算法的回歸測試用例集最小化研究
一種多功能無線手柄的設(shè)計(jì)
電子制作(2018年11期)2018-08-04 03:25:44
廣義標(biāo)準(zhǔn)自動(dòng)機(jī)及其商自動(dòng)機(jī)
為什么廚具的手柄不是金屬的?
銀行家
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
岳阳县| 灵寿县| 固镇县| 随州市| 名山县| 靖安县| 故城县| 乌鲁木齐县| 临泽县| 张家口市| 会同县| 吉木萨尔县| 松溪县| 湟源县| 怀远县| 曲靖市| 中西区| 关岭| 曲沃县| 交城县| 前郭尔| 丹凤县| 临桂县| 东方市| 光泽县| 平谷区| 安西县| 汶川县| 盐城市| 临夏县| 双峰县| 敦化市| 石阡县| 昌江| 宝应县| 班戈县| 平定县| 密云县| 湟源县| 康马县| 镇远县|