999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV 的計算機聯鎖自動測試系統研究

2022-06-30 07:46:42曾舒宇曹阿俊
鐵路計算機應用 2022年6期
關鍵詞:計算機

曾舒宇,楊 揚,王 玥,曹阿俊

(西南交通大學 信息科學與技術學院,成都 611756)

鐵路計算機聯鎖系統是負責行車進路建立鐵路行車核心控制設備,具有較高可靠性和故障-安全性要求的實時控制系統[1]。鑒于故障-安全原則對于計算機聯鎖系統的特殊性和重要性,系統自身的全面測試就必不可少。目前,國內聯鎖軟件測試量較大,存在大量的重復性操作,測試人員知識水平、測試經驗參差不齊,難以保證測試的完備性。

文獻[2]根據高鐵列控接口規范提出了一種計算機聯鎖與列控中心(TCC,Train Control Center)接口自動化測試的方式;文獻[3]基于Prover iLock 形式化工具提出了一種形式化自動測試的方法;文獻[4]以灰盒測試為思想,設計了一種基于腳本驅動的自動測試系統;文獻[5]提出了一種基于有色Petri 網的聯鎖軟件測試用例生成方法;文獻[6]設計了一種計算機聯鎖系統測試平臺,可輔助測試用例開發和執行。以上研究雖然都能有效完成計算機聯鎖測試或計算機聯鎖用例生成,但是其測試大多是基于接口進行的測試,對于第三方測試來說不了解計算機聯鎖內部代碼,仍存在測試難度大的問題。同時未能將測試用例生成和測試用例執行兩個功能進行集成,仍存在不少操作需要人工介入。

為更好地解決以上問題,本文設計了一種將站場數據獲取、聯鎖表生成、測試用例生成和測試用例執行功能集成的計算機聯鎖自動測試系統。該計算機聯鎖自動測試系統采用黑盒測試的思想,基于OpenCV 庫[7]獲取站場數據,無須了解計算機聯鎖軟件內部代碼即可獲取站場數據并實現測試用例自動執行進而完成對計算機聯鎖系統的基本功能測試。本文從系統結構、系統核心功能實現和系統測試結果幾個方面介紹該系統的設計實現過程與測試結果。

1 計算機聯鎖系統

計算機聯鎖系統在信號操作員操作下實現站內道岔、信號機和軌道電路之間聯鎖控制,是鐵路安全高效行車不可缺少的保障裝備。其系統采用分層式結構,分為人機對話層、聯鎖運算層和執行表示層[1],計算機聯鎖系統結構,如圖1 所示。

圖1 計算機聯鎖系統結構

(1)人機對話層。由上位機和電務維修機構成,上位機負責接收車站值班員下達的進路操作命令,并將操作命令傳送給聯鎖運算層,同時接收聯鎖運算層輸出的反映信號設備工作狀態和行車情況的信息并進行實時顯示。

(2)聯鎖運算層。由聯鎖機軟件組成,聯鎖機接收來自上位機下達的操作命令,依據從執行表示層接收到的反映室外信號機、道岔和軌道電路實時狀態的信息,并結合內部的中間信息,進行聯鎖邏輯運算,根據運算結果產生相應的輸出信息。

(3)執行表示層。為聯鎖運算層和室外設備層的中間層,在二者之間起信息交互、硬件電路的轉換等作用,同時在硬件上進行隔離,以保證室內設備的安全性[1]。

2 計算機聯鎖自動測試系統設計

2.1 系統結構

計算機聯鎖自動測試系統結構,如圖2 所示。整個系統由測試用例生成、測試用例執行2 個客戶端組成。

圖2 計算機聯鎖自動測試系統結構

(1)測試用例生成客戶端。負責接收測試用例執行客戶端發來的開始測試前和測試過程中截取的計算機聯鎖上位機界面圖像,對開始測試前上位機界面圖像采用OpenCV 庫[7]提取站場數據,依據站場數據生成聯鎖表,通過聯鎖表和鐵路車站計算機聯鎖軟件功能測試大綱[8](簡稱:測試大綱)生成測試用例,測試過程中計算機聯鎖上位機界面圖像進行分析獲取測試結果并生成測試報告。

(2)測試用例執行客戶端。①應用AutoItX[9]自動測試組件開發不同類型的測試腳本;②接收測試用例生成客戶端下達的測試用例,對測試用例進行解析獲得測試用例類型和相關輸入參數,調用對應類型的測試腳本,通過執行測試腳本中的操作指令模擬人工對計算機聯鎖系統上位機界面操作進而完成計算機聯鎖的功能測試;③對測試過程中的計算機聯鎖上位機界面進行截圖記錄,以便測試用例生成客戶端獲取測試結果并生成測試報告。

(3)測試用例生成客戶端與測試用例執行客戶端之間采用Socket 接口實現TCP/IP 協議通信,完成二者之間數據傳輸。測試用例執行客戶端通過截圖獲取計算機聯鎖系統上位機界面;執行測試腳本模擬人工對上位機界面操作,進而實現自動選排進路、改變道岔位置、改變區段占用情況等功能測試。

2.2 系統功能模塊設計

基于計算機聯鎖自動測試系統結構,測試用例生成客戶端和測試用例執行客戶端分別要實現不同的功能,功能模塊如圖3 所示。

圖3 計算機聯鎖自動測試系統功能模塊

2.2.1 測試用例生成客戶端

(1)站場數據獲取模塊

完成站場信號設備(信號機、道岔、軌道區段)和功能按鈕(總取消、總人解按鈕等)數據的提取。站場數據獲取由站場圖獲取、站場數據提取和人工校正數據3 個步驟組成。①通過測試用例生成客戶端對計算機聯鎖上位機界面截圖獲取到站場圖;②應用OpenCV 庫[7]對其進行邏輯處理提取站場數據;③由人工介入,對提取到的站場數據進行修改校正,以保證站場數據的準確性。

(2)測試用例生成模塊

按照測試大綱[8]的要求生成進路、進路鎖閉與解鎖、信號機和道岔等測試用例。測試用例生成由站場拓撲圖生成、站場聯鎖表生成和測試用例生成組成。①應用拓撲生成算法[10]生成能表示站場信號設備位置關系和邏輯關系的站場拓撲圖;②采用進路搜索算法遍歷拓撲圖,生成站場聯鎖表;③依據聯鎖表中的進路信息和測試大綱要求的功能測試生成不同類型的測試用例。測試用例內容包括前提條件、測試步驟及預期結果等。此外,在開始測試后,將生成的測試用例下達給測試用例執行客戶端。

(3)測試結果分析模塊

對測試過程中計算機聯鎖上位機界面圖像進行分析,判定測試結果是否符合預期結果,并生成測試報告,以便工作人員查看。該模塊由信號設備狀態變更數據獲取、預期結果比對、輸出測試報告組成。①接收測試用例客戶端記錄的測試結果(測試過程中計算機聯鎖上位機界面的圖片集合),采用OpenCV 庫[7]對其邏輯分析,提取預期結果中的信號設備和其他狀態發生變化的信號設備的狀態變更數據;②將提取到的信號設備狀態變更數據與預期結果比對,判斷測試用例是否通過;③將所有測試用例的判定結果匯總成報告并寫入文件進行存儲。

2.2.2 測試用例執行客戶端

(1)上位機界面獲取模塊

負責網絡通信的初始化,同時對測試腳本執行前和執行中的計算機聯鎖上位機界面通過截圖方式進行記錄。測試腳本執行前和執行中的截取的上位機界面圖像分別用于測試執行客戶端的站場數據提取和測試結果分析。

(2)測試腳本生成模塊

實現選排進路、道岔操作和軌道區段操作等類型的測試腳本的生成。測試腳本生成模塊由測試腳本開發、腳本合并與聯調、異常處理與恢復3 個過程構成。①對測試大綱中的測試用例類型進行分析,獲取測試用例中的輸入數據和測試步驟,開發對應類型的測試腳本;②對輸入數據一致的測試腳本進行合并,同時對有先后順序的測試腳本進行聯調以提高測試效率;③對測試過程中可能出現的異常情況進行分析并編寫異常處理和恢復方法。

(3)測試腳本執行模塊

執行測試腳本中操作指令,對計算機聯鎖系統上位機界面進行人工操作實現自動測試,同時記錄測試結果以便測試用例生成模塊生成測試報告。測試腳本執行模塊由測試用例解析、操作指令執行和測試結果記錄3 個過程構成。①對生成的具體的測試用例進行解析獲得相關的輸入參數,調用相對應類型的測試腳本函數并傳入相關輸入參數,如位置坐標、按鈕坐標等參數;②執行測試腳本中的操作指令以達到自動測試的目的;③在測試過程中調用上位機界面獲取模塊對上位機界面進行截圖記錄并存儲為圖像進而發送給測試用例生成客戶端,以便分析測試結果并生成測試報告。

3 關鍵技術

3.1 基于OpenCV 庫提取站場數據

計算機聯鎖系統上位機界面是依照車站計算機聯鎖操作顯示技術規范[11](簡稱:顯示規范)而繪制的,不同的鐵路站場在計算機聯鎖上位機中的顯示遵循的是同一顯示規范,因此不同鐵路站場的信號設備在聯鎖上位機中的顯示具有相同的特征。OpenCV 是一個計算機視覺庫,實現了圖像處理和計算機視覺的很多通用算法,并且支持跨平臺,同時支持C#、C++、Python 等編程語言[7]。本文采用OpenCV 庫[7]對被測計算機聯鎖系統上位機界面進行圖像處理,進而提取車站信號設備的數據。站場數據獲取流程,如圖4 所示。

圖4 站場數據獲取流程

對某計算機聯鎖系統上位機界面進行圖像處理和邏輯分析后提取得到的列車信號機數據如圖5所示。從圖5 可知,通過圖像處理和邏輯分析可以得到列車信號機名稱、坐標、高矮柱和進出站類型等信息。同理,對于道岔,可以提取到道岔坐標、道岔編號、道岔類型等數據;對于無岔區段和股道,可以提取到其坐標、名稱和類型等數據。

圖5 列車信號機數據提取結果

3.2 站場拓撲圖生成算法

測試用例的生成是在聯鎖表的基礎上實現的,而聯鎖表基于站場拓撲圖采用進路搜索算法生成。因此要生成測試用例,站場拓撲圖至關重要。通過人工輸入站場拓撲圖數據費時費力,所以在已經提取到站場數據的基礎上,提出一種基于站場設備坐標的站場拓撲圖生成算法,該算法具體過程如。

(1)確定道岔與道岔之間的連接關系。對所有道岔進行遍歷,搜索遍歷道岔岔尖、定位、反位x坐標距離20 像素點內,y坐標距離10 像素點內的道岔,若存在,則該道岔為遍歷道岔的相連道岔。將相連道岔設置為遍歷道岔對應位置(岔尖、定位、反位)的連接設備,同時將遍歷道岔設置為相連道岔對應位置的連接設備。

(2)確定區段與道岔的連接關系。所謂區段是指無岔區段和股道。遍歷所有區段,搜索與其左側和右側相連(道岔岔尖、定位、反位x、y坐標距離左側或右側均不超過10 像素點則認為相連)的道岔設備。若與區段相連道岔存在,則將道岔設置為區段的左側或右側設備,同時將區段設置為道岔對應位置的連接設備。

(3)確定區段與區段的連接關系。對于站場中離去和接近區段需要處理區段與區段的連接關系。遍歷所有區段,搜索與其左側或右側x、y坐標距離不超過10 像素點的區段,將搜索到的區段設置為該區段的左側或右側連接設備。

(4)確定信號機與道岔和區段的連接關系。遍歷所有道岔和區段,搜索道岔岔尖、定位、反位附近、區段左側和右側附近的信號機,若搜索到2 個信號機,則認為信號機是并置信號機。將信號機插入到道岔及與道岔相連設備之間或者是區段和與區段相連設備之間。

3.3 基于AutoItX 生成測試腳本

測試用例的執行可分為人工測試和自動測試。測試大綱[8]涉及到的測試用例種類較多,為提高測試效率,本系統采用自動測試。為實現自動測試,本系統基于AutoItX 庫采用c#高級程序語言編寫與測試用例對應類型的測試腳本。AutoIt[9]是用來在Windows GUI(用戶界面)中進行自動操作的軟件,通過它可以組合使用模擬鍵擊、鼠標移動和窗口/控件操作等來實現自動化任務。而AutoItX 是AutoIt 的一個標準DLL 庫,可以加入一些AutoIt 獨有的特性到其他的腳本語言或程序設計語言中而實現自動化任務[9]。

測試用例類型分為進路、進路鎖閉與解鎖、信號機、道岔等。其中進路鎖閉類型的測試用例的測試腳本內容,如圖6 所示。

圖6 進路鎖閉類型測試腳本內容

4 系統工作流程與測試結果

4.1 系統工作流程

本文設計的計算機聯鎖自動測試系統工作流程,如圖7 所示。

圖7 計算機聯鎖自動測試系統工作流程

(1)啟動測試用例生成客戶端和測試用例執行客戶端,并完成網絡通信初始化實現二者的網絡連接。

(2)接收測試用例執行客戶端截取的上位機界面,并判斷測試用例是否已經生成,若測試案例未生成,對上位機界面進行圖像處理,提取站場數據并生成聯鎖表,再生成測試用例,下達給測試用例執行客戶端進行解析,調用對應類型的測試腳本并自動執行,截取上位機界面發送給測試用例生成客戶端對上位機界面圖像處理提取信號設備狀態信息,并與預期結果比對,記錄測試結果。

(3)判斷是否所有的測試用例均下發,若均下發則輸出測試報告,否則繼續下發測試用例給測試用例執行客戶端進行測試用例解析與測試腳本執行。

4.2 系統測試結果

本系統以某計算機聯鎖系統作為被測對象,對其標準站下行咽喉列車進路進行進路鎖閉功能測試。測試過程中測試用例生成客戶端界面,如圖8 所示。

圖8 測試過程中測試用例生成客戶端界面

本次測試對生成的測試用例中的32 條列車進路測試了進路的辦理與取消功能。人工和系統分別測試了3 次,通過測試用例30 條,不通過2 條。由于進路鎖閉過程中道岔轉換過程花費時間較長,且這部分時間無法降低,導致自動測試平均一條進路用時需要近8 s,測試耗時,如表1 所示。由此可見,系統能有效地提高測試效率,降低對測試人員技術的要求。

表1 測試耗時

5 結束語

本文設計的計算機聯鎖自動測試系統實現了站場數據的獲取、聯鎖表的生成、測試用例的生成和測試用例的執行功能;能夠實現自動測試設計、測試執行和測試結果分析整個自動測試過程。

測試結果表明,該系統基于OpenCV 庫[7]獲取站場數據,可以解決第三方獲取站場數據困難的問題;能實現測試用例自動生成執行一體化,減少了人工操作步驟,降低對測試人員的技術要求;能對按照顯示規范設計[11]的計算機聯鎖系統進行測試,適用性強;能降低測試用例的執行時間,比人工測試用時少25.4%,提高了測試效率。

猜你喜歡
計算機
計算機操作系統
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
基于LabVIEW的計算機聯鎖仿真系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
計算機應用軟件開發技術的幾點探討
電子制作(2017年14期)2017-12-18 07:08:10
計算機網絡安全
iLOCK型計算機聯鎖開發中的需求開發管理
計算機聯鎖系統配置軟件設計與實現
主站蜘蛛池模板: 波多野结衣在线se| 亚洲国产无码有码| 亚洲av无码成人专区| 中文字幕在线看视频一区二区三区| 22sihu国产精品视频影视资讯| 91久久夜色精品| 精品久久蜜桃| 97青草最新免费精品视频| 欧美日本在线观看| 青青草久久伊人| 在线国产毛片手机小视频 | 成人亚洲国产| 深夜福利视频一区二区| 在线无码私拍| 人妻丝袜无码视频| 国产呦精品一区二区三区下载| 日韩高清中文字幕| 婷婷激情五月网| 久久黄色视频影| 中文字幕第4页| 国产精彩视频在线观看| 日本黄色不卡视频| 国产白浆在线| 制服丝袜在线视频香蕉| 在线综合亚洲欧美网站| 国产av一码二码三码无码| 午夜视频www| 情侣午夜国产在线一区无码| 宅男噜噜噜66国产在线观看| 91美女视频在线观看| 国产一区二区三区在线观看免费| 亚洲精品自拍区在线观看| av大片在线无码免费| 亚洲中文字幕无码爆乳| 日韩高清无码免费| 亚洲成综合人影院在院播放| 一级毛片在线播放| 天天做天天爱天天爽综合区| 91精品日韩人妻无码久久| 久久香蕉国产线看观看式| 人妻一本久道久久综合久久鬼色| 亚洲色图欧美| 久久久久人妻一区精品色奶水| 久久99国产乱子伦精品免| 亚洲精品色AV无码看| 毛片网站在线播放| 风韵丰满熟妇啪啪区老熟熟女| 香蕉国产精品视频| 亚洲精品大秀视频| 国产精品天干天干在线观看| 一本大道香蕉中文日本不卡高清二区 | 久久精品电影| 日本国产在线| 欧美一区福利| 精品久久香蕉国产线看观看gif | 久久精品国产在热久久2019| 久久特级毛片| 欧美日韩亚洲综合在线观看| 国产成人高精品免费视频| 亚洲国产综合自在线另类| 亚洲成人在线网| 国产精品成人啪精品视频| 91年精品国产福利线观看久久| 无码网站免费观看| 成人自拍视频在线观看| 精品综合久久久久久97| 欧亚日韩Av| 欧美午夜在线观看| 无码啪啪精品天堂浪潮av| 91在线无码精品秘九色APP| 中文字幕在线永久在线视频2020| 免费看美女自慰的网站| 国产精品99在线观看| 重口调教一区二区视频| 免费无码AV片在线观看国产| 日日拍夜夜操| 亚洲日韩欧美在线观看| 国产性爱网站| 国内毛片视频| 在线看国产精品| yjizz国产在线视频网| 国产精品无码作爱|