林 磊,郭 鑄,羅方旋,余昌瑾
(株洲中車時(shí)代電氣股份有限公司軌道交通技術(shù)中心,湖南 株洲412001)
同時(shí)CRH2型網(wǎng)絡(luò)控制系統(tǒng)與MVB總線型集中控制網(wǎng)絡(luò)不同,該網(wǎng)絡(luò)為分布式環(huán)網(wǎng)結(jié)構(gòu)進(jìn)行分布式冗余,各節(jié)點(diǎn)均進(jìn)行參與控制邏輯,支持8輛編組、16輛編組及8+8重聯(lián)編組運(yùn)營,需按1∶1實(shí)物進(jìn)行測(cè)試設(shè)計(jì),測(cè)試所花費(fèi)的時(shí)間由于其復(fù)雜程度大導(dǎo)致相應(yīng)人工測(cè)試時(shí)間也長達(dá)數(shù)月,自動(dòng)化用例及平臺(tái)設(shè)計(jì)極大減輕人力成本及對(duì)細(xì)節(jié)一致性的把握,同步提升效率和質(zhì)量。
本文重點(diǎn)從車載網(wǎng)絡(luò)控制系統(tǒng)通信與人機(jī)界面全自動(dòng)化測(cè)試研究與應(yīng)用,實(shí)現(xiàn)測(cè)試過程無人化,同時(shí)進(jìn)一步保障車載網(wǎng)絡(luò)產(chǎn)品的正確性與可靠性,解決動(dòng)車領(lǐng)域快速響應(yīng)與高質(zhì)量之間的矛盾。
CRH2型動(dòng)車組網(wǎng)絡(luò)控制系統(tǒng)自動(dòng)化仿真測(cè)試平臺(tái)(圖1),由1∶1被測(cè)車載網(wǎng)絡(luò)設(shè)備,車輛設(shè)備仿真,自動(dòng)化測(cè)試集成開發(fā)環(huán)境組成。
網(wǎng)絡(luò)控制系統(tǒng)與車輛具備人機(jī)交互界面、速度傳感器、輸入輸出數(shù)字量與模擬量和第三方設(shè)備電流環(huán)/HDLC串行通信接口,短編動(dòng)車組由8節(jié)車廂組成,長編動(dòng)車組為16節(jié)車廂組成。司機(jī)臺(tái)人機(jī)交互界面或車輛交互信息對(duì)應(yīng)相應(yīng)設(shè)備仿真,將車輛網(wǎng)絡(luò)設(shè)備發(fā)出的信息轉(zhuǎn)換為以太網(wǎng)數(shù)據(jù)包傳輸至計(jì)算機(jī)測(cè)試環(huán)境進(jìn)行信息處理,同時(shí)將計(jì)算機(jī)測(cè)試環(huán)境發(fā)出的指令轉(zhuǎn)換成車輛網(wǎng)絡(luò)識(shí)別的用戶操作、硬線IO、串行通信數(shù)據(jù)等,實(shí)現(xiàn)車輛設(shè)備的仿真。
圖1 自動(dòng)化仿真測(cè)試平臺(tái)軟硬件框架結(jié)構(gòu)
模擬司機(jī)對(duì)車載顯示設(shè)備的操作與界面內(nèi)容確認(rèn)功能,通過通信接口,將界面實(shí)時(shí)截屏到遠(yuǎn)程計(jì)算機(jī),同時(shí)將遠(yuǎn)程計(jì)算機(jī)點(diǎn)擊輸入操作傳送至車載顯示設(shè)備執(zhí)行用戶請(qǐng)求,實(shí)現(xiàn)顯示設(shè)備自動(dòng)化基礎(chǔ)交互。
遠(yuǎn)程界面通常兩種實(shí)現(xiàn)方式:(1)實(shí)時(shí)視頻與機(jī)械手結(jié)合;(2)車載顯示設(shè)備中嵌入截屏和模擬操作功能。
視頻和機(jī)械手方案對(duì)視屏像素與車載顯示器真實(shí)像素將產(chǎn)生差異,直接影響圖像識(shí)別準(zhǔn)確率同時(shí)機(jī)械手操作顯示設(shè)備速度緩慢影響測(cè)試效率。
CRH2型動(dòng)車組網(wǎng)絡(luò)系統(tǒng)顯示器采用Proface觸摸屏,嵌入遠(yuǎn)程投影功能(圖2),將車載顯示界面,1∶1像素投影至計(jì)算機(jī),同時(shí)傳送鼠標(biāo)對(duì)界面的點(diǎn)擊操作,模擬人點(diǎn)擊觸摸屏操作。
本屆十杰評(píng)選,再一次提及人像精髓的理解:要有“精、氣、神”,人物要活靈活現(xiàn)!錯(cuò)把“技術(shù)”當(dāng)“藝術(shù)”,拍出來的照片是僵化的。而關(guān)于“好作品”的定義,又一次回歸到自然的“真我”理念上來。
圖2 司機(jī)顯示器遠(yuǎn)程界面
自動(dòng)化測(cè)試除IO點(diǎn)位、通信數(shù)據(jù)流等訪問與控制功能,還需要模擬與司機(jī)顯示設(shè)備人機(jī)交互,目前通用計(jì)算機(jī)UI自動(dòng)化測(cè)試框架比較成熟,但UI自動(dòng)化測(cè)試基于計(jì)算機(jī)程序界面為控件按不同層次組合而成,測(cè)試工具可通過枚舉指定界面中的各控件列表,提取關(guān)心的控件并獲得顯示信息進(jìn)行操作和確認(rèn)。
但車載顯示設(shè)備通常均為嵌入式系統(tǒng),僅能以圖片形式獲取整個(gè)界面的顯示,不能以控件列表進(jìn)行拆分及文字提取(圖3)。因此通用的計(jì)算機(jī)UI自動(dòng)化測(cè)試工具不能實(shí)現(xiàn)對(duì)嵌入式系統(tǒng)的界面測(cè)試。CRH2型自動(dòng)化仿真測(cè)試平臺(tái),通過圖像識(shí)別,對(duì)圖片中的各文字和非文字進(jìn)行識(shí)別,形式元素信息列表,用于確認(rèn)測(cè)試中關(guān)心的信息進(jìn)行操作和判斷。
圖3 車載顯示設(shè)備與計(jì)算機(jī)界面自動(dòng)化測(cè)試對(duì)比
對(duì)于傳統(tǒng)控件列表的識(shí)別,界面不存在識(shí)別率的概念,但適應(yīng)性存在限制,不支持以圖片非控件組成界面。而對(duì)以圖片識(shí)別為基礎(chǔ)的測(cè)試系統(tǒng),圖片的清晰度將直接影響到識(shí)別的準(zhǔn)確性,采用遠(yuǎn)程投影1∶1像素的遠(yuǎn)程界面,同時(shí)采用文字識(shí)別+符號(hào)圖片集像素匹配方式,彌補(bǔ)單純使用文字識(shí)別覆蓋不完全的缺陷。
CRH2型動(dòng)車組測(cè)試用例采用Excel編寫文本用例,對(duì)參數(shù)、操作、確認(rèn)分欄編輯以提高可讀性,使用例更接近自然語言,同時(shí)以腳本語言為基礎(chǔ),支持腳本語言的所有特性及擴(kuò)充特性。
目前主流自動(dòng)化測(cè)試軟件,均以腳本語言為基礎(chǔ),即用于描述和運(yùn)行相關(guān)用例,并提供無限擴(kuò)展能力,例如廣泛應(yīng)用的QTP自動(dòng)化測(cè)試軟件基于VBScript腳本語言[1-2]。由于腳本語言的發(fā)展及主流排行變化,腳本語言的選擇由語言的便捷性、易讀性及支持庫的多少?zèng)Q定,本測(cè)試平臺(tái)采用目前主流腳本語言Python作為腳本運(yùn)行環(huán)境,降低學(xué)習(xí)難度和設(shè)計(jì)難度,同時(shí)提高擴(kuò)展性。
為降低用例編制難度和易讀性,人工用例由情況、操作和確認(rèn)(表1),對(duì)應(yīng)的自動(dòng)化用例包含參數(shù)、操作和確認(rèn)(表2)。由于同一項(xiàng)功能,需要進(jìn)行多種條件下進(jìn)行測(cè)試,此時(shí)用例效率將遠(yuǎn)遠(yuǎn)大于直接編碼,編譯器的作用即將參數(shù)進(jìn)行展開生成Python腳本能夠支持的代碼后在腳本運(yùn)行環(huán)境調(diào)試運(yùn)行,以下對(duì)比人工測(cè)試用例和自動(dòng)化測(cè)試用例,由于編譯出來的腳本會(huì)大大超過用例本身,僅將參數(shù)1編譯后即將生成進(jìn)行對(duì)比(表2)。
表1 人工測(cè)試用例
表2 自動(dòng)化測(cè)試用例
從上對(duì)比可以發(fā)現(xiàn),用例參數(shù)化+編譯的方式可以基本統(tǒng)一人工測(cè)試用例和自動(dòng)化測(cè)試用例,在不增加用例編制工作和可讀性的同時(shí)實(shí)現(xiàn)用例自動(dòng)化。
在用例編制時(shí),需要明確對(duì)象和操作,例如人工測(cè)試用例“給定牽引為牽引3檔”,需指明3個(gè)要素即可確認(rèn)對(duì)象、屬性和操作,分別為“牽引”、“檔位”,“3檔”,為兼顧Python語言支持,用例寫為:牽引["檔位"]=3,可讀性和要素與人工測(cè)試用例等同。
為實(shí)現(xiàn)用例的可讀性,需要將“牽引“這個(gè)對(duì)象與仿真設(shè)備綁定,否則這行用例代碼對(duì)Python來說并無意義。
綁定實(shí)現(xiàn)初始化代碼如下,其中Memroy Mapper為實(shí)現(xiàn)綁定功能的Python類:
牽引=MemoryMapper(仿真設(shè)備地址)
牽引.AddMemory(“檔位”,信息所在偏移)
同時(shí)由于MemoryMapper類通過重載__setitem__(self,key,val) 和 __getitem__(self,key) 方法,當(dāng)Python執(zhí)行用例:牽引["檔位"]=3時(shí),MemoryMapper類會(huì)調(diào)用__setitem__方法,查找仿真設(shè)備的地址及相關(guān)屬性信息偏移,實(shí)現(xiàn)仿真設(shè)備向網(wǎng)絡(luò)控制系統(tǒng)給定真實(shí)信號(hào)。
用例執(zhí)行前的初始用綁定代碼,即實(shí)現(xiàn)數(shù)據(jù)綁定功能,可通過編譯器編譯Excel編制的協(xié)議自動(dòng)生成,提高自動(dòng)化程度。
集成開發(fā)環(huán)境核心思想為最大程度降低用戶操作并明確顯示用戶關(guān)注信息,如圖4所示,加載測(cè)試工程,顯示工程對(duì)應(yīng)測(cè)試用例集并顯示相關(guān)用例,同步顯示可編譯后的執(zhí)行代碼,單步或運(yùn)行跟蹤,同時(shí)將測(cè)試過程中的相關(guān)操作界面和問題日志實(shí)時(shí)顯示,用于用戶確認(rèn)測(cè)試進(jìn)度與測(cè)試異常狀態(tài)。采用類似Visual Studio等主流集成開發(fā)環(huán)境的dock布局,可實(shí)現(xiàn)同屏調(diào)整及分屏顯示,提搞自動(dòng)化測(cè)試過程的直觀度。
圖4 自動(dòng)化測(cè)試集成開發(fā)環(huán)境
用戶在進(jìn)行自動(dòng)化測(cè)試時(shí),僅需提供車輛設(shè)備與網(wǎng)絡(luò)通信協(xié)議和用例兩份Excel文檔,其余過程均由集成開發(fā)環(huán)境處理完成。并通過關(guān)系型數(shù)據(jù)庫,實(shí)現(xiàn)測(cè)試文本和圖片日志與代碼用例相關(guān)聯(lián),快速定位用例和代碼行。
自動(dòng)化調(diào)試過程為測(cè)試用例最終轉(zhuǎn)換為圖文并茂的測(cè)試報(bào)告的執(zhí)行過程,如圖5所示,自動(dòng)化調(diào)試過程除包含對(duì)被測(cè)對(duì)象的調(diào)試外,由于用例的編制也可能存在錯(cuò)誤,因此對(duì)用例的調(diào)試同樣重要。
圖5 自動(dòng)化測(cè)試流程
網(wǎng)絡(luò)控制系統(tǒng)自動(dòng)化測(cè)試平臺(tái)為適應(yīng)車載顯示設(shè)備與控制設(shè)備工業(yè)領(lǐng)域特殊要求并繼承主流計(jì)算機(jī)自動(dòng)化測(cè)試工具的優(yōu)點(diǎn),具備適應(yīng)車載網(wǎng)絡(luò)設(shè)備顯示與控制的全自動(dòng)化測(cè)試,解決具有人機(jī)交互界面參與的嵌入式控制系統(tǒng)不支持全自動(dòng)化測(cè)試的難題。目前已應(yīng)用于CRH2型動(dòng)車組網(wǎng)絡(luò)控制系統(tǒng)的軟件測(cè)試和硬件功能測(cè)試中,提高測(cè)試效率與質(zhì)量。