專利名稱:一種基于組件與腳本的航天器測試系統(tǒng)及測試方法
技術(shù)領(lǐng)域:
本發(fā)明屬于航天器測試領(lǐng)域,涉及一種基于組件與腳本的航天器測試系統(tǒng)及方法。
背景技術(shù):
航天器型號在研制過程中需要大量的測試工作,自動化測試技術(shù)已被廣泛采用。現(xiàn)有自動化測試技術(shù)可分為基于腳本和基于可視化組件兩種方式。腳本語法靈活,描述功能強,但易用性和直觀性較差,且不便維護(hù);可視化組件簡單直觀,能夠?qū)崿F(xiàn)所見即所得的測試用例編輯,但組件所包含的測試流程是固化的,系統(tǒng)功能受組件庫規(guī)模的制約,靈活性差,不易擴展。航天器測試項目眾多、邏輯復(fù)雜多變,編輯和維護(hù)大量測試腳本困難,而固化的可視化組件又不易滿足新的測試需求。自動化測試系統(tǒng)(公開號為10184711A)公開了一種支持不同自動化腳本語言實現(xiàn)的不同腳本的自動化測試系統(tǒng)。該系統(tǒng)僅支持腳本方式的測試用例編輯。一種基于測試原子的衛(wèi)星自動化測試方法(申請?zhí)枮镃N201010597273. 0)公開了一種基于組合最小測試單元組件進(jìn)行測試用例設(shè)計的方法。通過編輯組件屬性對測試用例各項參數(shù)進(jìn)行定制,最終生成測試用例腳本序列。該方法中每個原子的執(zhí)行流程是固化的,僅能定制原子內(nèi)的參數(shù),缺乏靈活性?;诠δ懿僮鞣庋b的自動化測試腳本實現(xiàn)方法及裝置(公開號為101141319)通過提取測試操作對象按功能操作分解為基本操作單元函數(shù)并建立基本操作單元函數(shù)庫;對同一個功能操作的基本操作單元函數(shù)進(jìn)行組合,并將該功能操作的所有基本操作單元函數(shù)的參數(shù)作為功能操作函數(shù)的參數(shù),建立功能操作函數(shù)庫;根據(jù)測試用例把功能操作函數(shù)進(jìn)行組合形成面向測試用例的自動化測試腳本。該方法和裝置提高了測試用例腳本的通用性,但腳本不夠直觀、不易維護(hù)。一種衛(wèi)星自動化測試框架系統(tǒng)(公開號為101216712)公開了一種基于指令與判據(jù)的衛(wèi)星自動化測試框架,其測試用例采用指令序列描述,與指令關(guān)聯(lián)的判據(jù)獨立存儲,與具體用例無關(guān)。但是,該方法不能描述復(fù)雜的流程和數(shù)據(jù)處理與分析邏輯。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是針對現(xiàn)有技術(shù)的不足,提供了一種基于組件與腳本的航天器測試系統(tǒng)及測試方法,將測試腳本與測試組件相結(jié)合形成測試用例,實現(xiàn)了對航天器的自動測試。本發(fā)明的技術(shù)解決方案是本發(fā)明所述基于組件與腳本的航天器測試系統(tǒng)支持在一個測試用例中同時加入可視化測試組件和測試腳本。對于常用的測試邏輯,采用拖拽組件、編輯組件參數(shù)的方式描述;對于特殊的、邏輯復(fù)雜的測試需求,采用編寫腳本的方式描述。組件、腳本可以混合在同一測試用例中,從而描述復(fù)雜多變的測試用例。最后,通過本發(fā)明的執(zhí)行環(huán)境模塊,自動執(zhí)行測試用例。所述自動化測試系統(tǒng)包括測試用例編輯環(huán)境模塊和測試用例執(zhí)行環(huán)境模塊。所述測試用例編輯環(huán)境模塊包括測試組件庫、腳本函數(shù)庫、測試用例圖形化界面,其中,所述測試組件庫包含測試組件;所述腳本函數(shù)庫包含腳本函數(shù);所述測試用例圖形化界面根據(jù)測試用例通過拖拽布置所述的測試組件、腳本函數(shù)和/或腳本占位符;并對布置的所述測試組件進(jìn)行參數(shù)設(shè)置以及對所述腳本占位符進(jìn)行腳本編輯,形成測試用例;所述測試用例執(zhí)行環(huán)境模塊對所述測試用例進(jìn)行解析,形成測試用例序列;并在測試過程中對所述測試用例序列進(jìn)行執(zhí)行完成測試。本發(fā)明所述測試方法包括以下步驟 根據(jù)測試目的在測試用例圖像化界面中通過拖拽布置測試組件、腳本函數(shù)和/或腳本占位符;根據(jù)測試流程調(diào)整所述測試組件、腳本函數(shù)和/或腳本占位符的邏輯關(guān)系形成測試用例框架;對所述測試組件的參數(shù)進(jìn)行設(shè)置,并在所述腳本占位符位置添加腳本函數(shù)代碼形成測試用例并存儲;在所述測試用例執(zhí)行環(huán)境中提取所述測試用例,并解析為測試用例序列;對所述測試用例序列進(jìn)行驅(qū)動執(zhí)行對航天器的測試。進(jìn)一步的,所述測試組件包括業(yè)務(wù)組件、流程組件和自封裝組件,所述業(yè)務(wù)組件用于封裝測試業(yè)務(wù);所述流程組件用于實現(xiàn)分支和流程控制;所述自封裝組件封裝有一組業(yè)務(wù)組件和/或流程組件,可實現(xiàn)封裝后的復(fù)用功能。進(jìn)一步的,所述測試用例執(zhí)行環(huán)境模塊在執(zhí)行所述測試用例序列時,通過建立線程執(zhí)行每個測試組件和/或腳本函數(shù),并為所述測試組件和/或腳本函數(shù)提供測試信息發(fā)布接口和測試結(jié)果提交接口,所述測試組件和腳本函數(shù)共享測試用例序列執(zhí)行過程中的全
局變量。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點本發(fā)明實現(xiàn)了通過拖拽測試用例和腳本占位符實現(xiàn)測試用例的編輯。通過拖拽測試組件和腳本并對其進(jìn)行排列組合,可以快速搭建測試用例框架。在測試用例框架基礎(chǔ)上,進(jìn)一步對測試組件和腳本函數(shù)進(jìn)行編輯,可以實現(xiàn)對測試用例的準(zhǔn)確描述,從而可以利用測試組件和腳本函數(shù)混合的方式描述航天器所需的測試用例,實現(xiàn)方式簡單、快捷、靈活的,并可適應(yīng)航天器復(fù)雜多變測試用例的設(shè)計。同時,在對測試用例進(jìn)行執(zhí)行時,通過測試用例執(zhí)行環(huán)境將由測試組件和腳本函數(shù)組成的測試用例進(jìn)行序列化,并對序列化后的測試用例序列進(jìn)行自動執(zhí)行,在執(zhí)行過程中,對測試用例和腳本函數(shù)進(jìn)行統(tǒng)一管理,并使測試用例和腳本函數(shù)共享全局變量。
圖I為本發(fā)明示意圖;圖2為本發(fā)明流程圖。
具體實施例方式下面就結(jié)合附圖對本發(fā)明做進(jìn)一步介紹。如圖I所示,為本發(fā)明結(jié)構(gòu)原理圖。系統(tǒng)連接到在衛(wèi)星測試網(wǎng)絡(luò)內(nèi),測試用例最終執(zhí)行時以指令形式控制前端硬件測試設(shè)備,并接收設(shè)備返回的測試數(shù)據(jù)。系統(tǒng)分為測試用例編輯環(huán)境和執(zhí)行環(huán)境兩部分。用例編輯環(huán)境包括測試組件庫、腳本函數(shù)庫、測試用例圖形化界面、組件參數(shù)編輯界面和腳本編輯界面5個模塊。測試組件庫提供一套圖形化、可拖拽的可視化測試組件,組件具體分為業(yè)務(wù)組件、流程組件和自封裝組件三種。其中,業(yè)務(wù)組件實現(xiàn)針對航天器測試業(yè)務(wù)的基本操作封裝;流程組件實現(xiàn)分支、循環(huán)流程控制;自封裝組件由用戶自定義,實現(xiàn)將一組業(yè)務(wù)組件和/或流程組件進(jìn)一步封裝的復(fù)用功能; 腳本函數(shù)庫中提供空白腳本、自封裝腳本和腳本函數(shù)??瞻啄_本不含任何腳本代碼,自封裝腳本則是由用戶編輯并保存的、可復(fù)用的一段成熟腳本程序。腳本函數(shù)庫為編輯測試腳本提供了豐富的、面向航天器測試的常用函數(shù)。測試用例圖形化界面以圖形化方式展示,支持從測試組件庫和腳本函數(shù)庫直接拖拽、排部測試組件和腳本占位符。組件參數(shù)編輯界面和腳本編輯界面分別用于編輯測試組件參數(shù)和編寫腳本代碼。測試用例存入測試用例庫。用例執(zhí)行環(huán)境能夠?qū)y試用例從測試用例庫讀取組件序列并翻譯為腳本序列,交給執(zhí)行引擎驅(qū)動執(zhí)行。執(zhí)行時按照用例流程,分別執(zhí)行每個組件或腳本內(nèi)部包裝好的執(zhí)行邏輯。組件和腳本共享被測設(shè)備下傳的測試數(shù)據(jù)。測試用例執(zhí)行環(huán)境模塊負(fù)責(zé)管理各測試組件和腳本的線程生命周期,并為測試組件和腳本提供公用的測試過程信息顯示接口和測試結(jié)果存儲接口。測試用例在執(zhí)行時最后體現(xiàn)為向航天器、地面設(shè)備發(fā)送指令,接收、處理測試數(shù)據(jù),將測試結(jié)果存入測試結(jié)果庫。如圖2所示,本發(fā)明流程如下(I)開始;(2)在測試用例編輯環(huán)境中向測試用例圖形化界面拖拽測試組件和腳本占位符;(3)調(diào)整組件和腳本占位符在測試用例中的位置關(guān)系(非必要操作),形成測試用例框架;(4)編輯測試組件參數(shù)、編寫測試用例腳本,完成測試用例參數(shù)定制和邏輯實現(xiàn);(5)生成測試用例并保存至測試用例庫;(6)在測試執(zhí)行環(huán)境中,從測試用例庫讀取測試用例,將其解析為測試腳本序列。腳本序列是整個測試序列的流程描述腳本,不涉及具體每一步的測試組件或測試腳本的內(nèi)部執(zhí)行邏輯;(7)由測試用例執(zhí)行環(huán)境模塊驅(qū)動測試用例序列的執(zhí)行。每執(zhí)行到一步測試組件或腳本函數(shù)時,為當(dāng)前步驟的測試組件或腳本函數(shù)創(chuàng)建一個新的線程,執(zhí)行測試組件或腳本函數(shù)內(nèi)部的邏輯;(8)按執(zhí)行流程中每一步測試組件或測試腳本內(nèi)部執(zhí)行邏輯,從測試數(shù)據(jù)共享內(nèi)存中讀取測試數(shù)據(jù),并存取測試組件、腳本共享的全局變量;(9)測試組件、腳本調(diào)用測試用例執(zhí)行環(huán)境模塊所提供的公共接口,在測試用例執(zhí)行環(huán)境模塊的監(jiān)控面板中,發(fā)布各自的測試過程信息。(10)測試組件、腳本調(diào)用測試用例執(zhí)行環(huán)境模塊所提供的公共接口將各自的執(zhí)行結(jié)果提交給測試用例執(zhí)行環(huán)境模塊并進(jìn)行顯示。(11)測試用例執(zhí)行環(huán)境模塊統(tǒng)一保存測試結(jié)果到測試結(jié)果庫;(12)結(jié)束。 本發(fā)明未詳細(xì)說明部分屬本領(lǐng)域技術(shù)人員公知常識。
權(quán)利要求
1.一種基于組件與腳本的航天器測試系統(tǒng),其特征在于包括測試用例編輯環(huán)境模塊和測試用例執(zhí)行環(huán)境模塊, 所述測試用例編輯環(huán)境模塊包括測試組件庫、腳本函數(shù)庫、測試用例圖形化界面,其中,所述測試組件庫包含測試組件;所述腳本函數(shù)庫包含腳本函數(shù); 所述測試用例圖形化界面根據(jù)測試用例通過拖拽布置所述的測試組件、腳本函數(shù)和/或腳本占位符;并對布置的所述測試組件進(jìn)行參數(shù)設(shè)置以及對所述腳本占位符進(jìn)行腳本編輯,形成測試用例; 所述測試用例執(zhí)行環(huán)境模塊對所述測試用例進(jìn)行解析,形成測試用例的可執(zhí)行序列;并在測試過程中對所述測試用例的可執(zhí)行序列進(jìn)行執(zhí)行完成測試。
2.如權(quán)利要求I所述的一種基于組件與腳本的航天器測試系統(tǒng),其特征在于所述測 試組件包括業(yè)務(wù)組件、流程組件和自封裝組件,所述業(yè)務(wù)組件用于封裝測試業(yè)務(wù);所述流程組件用于實現(xiàn)分支和循環(huán)流程控制;所述自封裝組件封裝有一組業(yè)務(wù)組件和/或流程組件,可實現(xiàn)封裝后的復(fù)用功能。
3.如權(quán)利要求I或2所述的一種基于組件與腳本的航天器測試系統(tǒng)統(tǒng),其特征在于所述測試用例執(zhí)行環(huán)境模塊在執(zhí)行所述測試用例序列時,通過建立線程執(zhí)行每個測試組件和/或腳本函數(shù),并為所述測試組件和/或腳本函數(shù)提供測試信息發(fā)布接口和測試結(jié)果提交接口,所述測試組件和腳本函數(shù)共享測試用例序列執(zhí)行過程中的全局變量。
4.一種采用權(quán)利要求I所述一種基于組件與腳本的航天器測試系統(tǒng)的測試方法,其特征在于包括以下步驟 根據(jù)測試目的在測試用例圖像化界面中通過拖拽布置測試組件、腳本函數(shù)和/或腳本占位符; 根據(jù)測試流程調(diào)整所述測試組件、腳本函數(shù)和/或腳本占位符的邏輯關(guān)系形成測試用例框架; 對所述測試組件的參數(shù)進(jìn)行設(shè)置,并在所述腳本占位符位置添加腳本函數(shù)代碼形成測試用例并存儲; 在所述測試用例執(zhí)行環(huán)境中提取所述測試用例,并解析為測試用例序列; 對所述測試用例序列進(jìn)行驅(qū)動執(zhí)行對航天器的測試。
5.如權(quán)利要求4所述的測試方法,其特征在于所述測試組件包括業(yè)務(wù)組件、流程組件和自封裝組件,所述業(yè)務(wù)組件用于封裝測試業(yè)務(wù);所述流程組件用于實現(xiàn)分支和流程控制;所述自封裝組件封裝有一組業(yè)務(wù)組件和/或流程組件,可實現(xiàn)封裝后的復(fù)用功能。
6.如權(quán)利要求4或5所述的測試方法,其特征在于所述測試用例執(zhí)行環(huán)境模塊在執(zhí)行所述測試用例序列時,通過建立線程執(zhí)行每個測試組件和/或腳本函數(shù),并為所述測試組件和/或腳本函數(shù)提供測試信息發(fā)布接口和測試結(jié)果提交接口,所述測試組件和腳本函數(shù)共享測試用例序列執(zhí)行過程中的全局變量。
全文摘要
本發(fā)明公開了一種基于組件與腳本的航天器測試系統(tǒng),包括測試用例編輯環(huán)境模塊和測試用例執(zhí)行環(huán)境模塊。所述測試用例編輯環(huán)境模塊包括測試組件庫、腳本函數(shù)庫、測試用例圖形化界面,其中,所述測試組件庫包含測試組件;所述腳本函數(shù)庫包含腳本函數(shù);所述測試用例圖形化界面根據(jù)測試用例通過拖拽布置所述的測試組件、腳本函數(shù)和/或腳本占位符;并對布置的所述測試組件進(jìn)行參數(shù)設(shè)置以及對所述腳本占位符進(jìn)行腳本編輯,形成測試用例;所述測試用例執(zhí)行環(huán)境模塊對所述測試用例進(jìn)行解析,形成測試用例的可執(zhí)行序列;并在測試過程中對所述測試用例序列進(jìn)行執(zhí)行完成測試。同時,還對應(yīng)的測試方法,本發(fā)明將測試腳本與測試組件相結(jié)合實現(xiàn)了對航天器的自動測試。
文檔編號G06F11/36GK102722437SQ201210173850
公開日2012年10月10日 申請日期2012年5月29日 優(yōu)先權(quán)日2012年5月29日
發(fā)明者何曉宇, 呂偉, 富小薇, 張海祥, 王華茂, 白少華, 閆金棟 申請人:北京空間飛行器總體設(shè)計部